@public-ui/components 2.2.11-rc.3 → 2.2.11

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 (279) hide show
  1. package/custom-elements.json +1 -1
  2. package/dist/cjs/{Alert-c0a55270.js → Alert-96b369f4.js} +1 -1
  3. package/dist/cjs/{Alert-c0a55270.js.map → Alert-96b369f4.js.map} +1 -1
  4. package/dist/cjs/{Collapsible-a50b84ab.js → Collapsible-8b3c4050.js} +1 -1
  5. package/dist/cjs/{Collapsible-a50b84ab.js.map → Collapsible-8b3c4050.js.map} +1 -1
  6. package/dist/cjs/{FormFieldMsg-ee56cee5.js → FormFieldMsg-f54e236a.js} +1 -1
  7. package/dist/cjs/{FormFieldMsg-ee56cee5.js.map → FormFieldMsg-f54e236a.js.map} +1 -1
  8. package/dist/cjs/{InternalUnderlinedBadgeText-d241f75e.js → InternalUnderlinedBadgeText-5bf32805.js} +1 -1
  9. package/dist/cjs/{InternalUnderlinedBadgeText-d241f75e.js.map → InternalUnderlinedBadgeText-5bf32805.js.map} +1 -1
  10. package/dist/cjs/{app-globals-21703944.js → app-globals-52debe8b.js} +1 -1
  11. package/dist/cjs/{app-globals-21703944.js.map → app-globals-52debe8b.js.map} +1 -1
  12. package/dist/cjs/{dev.utils-b31047c8.js → dev.utils-17f58b75.js} +1 -1
  13. package/dist/cjs/{dev.utils-b31047c8.js.map → dev.utils-17f58b75.js.map} +1 -1
  14. package/dist/cjs/{devtools-6a09ba46.js → devtools-55284fd6.js} +1 -1
  15. package/dist/cjs/{devtools-6a09ba46.js.map → devtools-55284fd6.js.map} +1 -1
  16. package/dist/cjs/index-cb5cbda1.js +4 -0
  17. package/dist/cjs/index-cb5cbda1.js.map +1 -0
  18. package/dist/cjs/kol-abbr.cjs.entry.js +1 -1
  19. package/dist/cjs/kol-accordion.cjs.entry.js +1 -1
  20. package/dist/cjs/kol-alert-wc.cjs.entry.js +1 -1
  21. package/dist/cjs/kol-alert.cjs.entry.js +1 -1
  22. package/dist/cjs/kol-avatar-wc.cjs.entry.js +1 -1
  23. package/dist/cjs/kol-avatar.cjs.entry.js +1 -1
  24. package/dist/cjs/kol-badge.cjs.entry.js +1 -1
  25. package/dist/cjs/kol-breadcrumb.cjs.entry.js +1 -1
  26. package/dist/cjs/kol-button-group-wc.cjs.entry.js +1 -1
  27. package/dist/cjs/kol-button-group.cjs.entry.js +1 -1
  28. package/dist/cjs/kol-button-link.cjs.entry.js +1 -1
  29. package/dist/cjs/kol-button-wc.cjs.entry.js +1 -1
  30. package/dist/cjs/kol-button.cjs.entry.js +1 -1
  31. package/dist/cjs/kol-card.cjs.entry.js +1 -1
  32. package/dist/cjs/kol-combobox.cjs.entry.js +1 -1
  33. package/dist/cjs/kol-details.cjs.entry.js +1 -1
  34. package/dist/cjs/kol-drawer.cjs.entry.js +1 -1
  35. package/dist/cjs/kol-form.cjs.entry.js +1 -1
  36. package/dist/cjs/kol-heading-wc.cjs.entry.js +1 -1
  37. package/dist/cjs/kol-heading.cjs.entry.js +1 -1
  38. package/dist/cjs/kol-icon.cjs.entry.js +1 -1
  39. package/dist/cjs/kol-image.cjs.entry.js +1 -1
  40. package/dist/cjs/kol-indented-text-wc.cjs.entry.js +1 -1
  41. package/dist/cjs/kol-indented-text.cjs.entry.js +1 -1
  42. package/dist/cjs/kol-input-checkbox.cjs.entry.js +1 -1
  43. package/dist/cjs/kol-input-color.cjs.entry.js +1 -1
  44. package/dist/cjs/kol-input-date.cjs.entry.js +1 -1
  45. package/dist/cjs/kol-input-email.cjs.entry.js +1 -1
  46. package/dist/cjs/kol-input-file.cjs.entry.js +1 -1
  47. package/dist/cjs/kol-input-number.cjs.entry.js +1 -1
  48. package/dist/cjs/kol-input-password.cjs.entry.js +1 -1
  49. package/dist/cjs/kol-input-radio.cjs.entry.js +1 -1
  50. package/dist/cjs/kol-input-range.cjs.entry.js +1 -1
  51. package/dist/cjs/kol-input-text.cjs.entry.js +1 -1
  52. package/dist/cjs/kol-input.cjs.entry.js +1 -1
  53. package/dist/cjs/kol-kolibri.cjs.entry.js +1 -1
  54. package/dist/cjs/kol-link-button.cjs.entry.js +1 -1
  55. package/dist/cjs/kol-link-group.cjs.entry.js +1 -1
  56. package/dist/cjs/kol-link-wc.cjs.entry.js +1 -1
  57. package/dist/cjs/kol-link.cjs.entry.js +1 -1
  58. package/dist/cjs/kol-logo.cjs.entry.js +1 -1
  59. package/dist/cjs/kol-modal.cjs.entry.js +1 -1
  60. package/dist/cjs/kol-nav.cjs.entry.js +1 -1
  61. package/dist/cjs/kol-pagination.cjs.entry.js +1 -1
  62. package/dist/cjs/kol-popover-button.cjs.entry.js +1 -1
  63. package/dist/cjs/kol-popover-wc.cjs.entry.js +1 -1
  64. package/dist/cjs/kol-progress.cjs.entry.js +1 -1
  65. package/dist/cjs/kol-quote.cjs.entry.js +1 -1
  66. package/dist/cjs/kol-select.cjs.entry.js +1 -1
  67. package/dist/cjs/kol-single-select.cjs.entry.js +1 -1
  68. package/dist/cjs/kol-skip-nav.cjs.entry.js +1 -1
  69. package/dist/cjs/kol-span-wc.cjs.entry.js +1 -1
  70. package/dist/cjs/kol-spin.cjs.entry.js +1 -1
  71. package/dist/cjs/kol-split-button.cjs.entry.js +1 -1
  72. package/dist/cjs/kol-symbol.cjs.entry.js +1 -1
  73. package/dist/cjs/kol-table-stateful.cjs.entry.js +1 -1
  74. package/dist/cjs/kol-table-stateful.cjs.entry.js.map +1 -1
  75. package/dist/cjs/kol-table-stateless-wc.cjs.entry.js +1 -1
  76. package/dist/cjs/kol-table-stateless.cjs.entry.js +1 -1
  77. package/dist/cjs/kol-table.cjs.entry.js +1 -1
  78. package/dist/cjs/kol-tabs.cjs.entry.js +1 -1
  79. package/dist/cjs/kol-textarea.cjs.entry.js +1 -1
  80. package/dist/cjs/kol-toast-container.cjs.entry.js +1 -1
  81. package/dist/cjs/kol-toolbar.cjs.entry.js +1 -1
  82. package/dist/cjs/kol-tooltip-wc.cjs.entry.js +1 -1
  83. package/dist/cjs/kol-tree-item-wc.cjs.entry.js +1 -1
  84. package/dist/cjs/kol-tree-item.cjs.entry.js +1 -1
  85. package/dist/cjs/kol-tree-wc.cjs.entry.js +1 -1
  86. package/dist/cjs/kol-tree.cjs.entry.js +1 -1
  87. package/dist/cjs/kol-version.cjs.entry.js +1 -1
  88. package/dist/cjs/kolibri.cjs.js +1 -1
  89. package/dist/cjs/loader.cjs.js +1 -1
  90. package/dist/cjs/test-component.cjs.entry.js +1 -1
  91. package/dist/components/kol-table-stateful.js +1 -1
  92. package/dist/components/kol-table-stateful.js.map +1 -1
  93. package/dist/esm/{Alert-7cfc4360.js → Alert-69d3fb7c.js} +1 -1
  94. package/dist/esm/{Alert-7cfc4360.js.map → Alert-69d3fb7c.js.map} +1 -1
  95. package/dist/esm/{Collapsible-43a6407e.js → Collapsible-a6f9d7da.js} +1 -1
  96. package/dist/esm/{Collapsible-43a6407e.js.map → Collapsible-a6f9d7da.js.map} +1 -1
  97. package/dist/esm/{FormFieldMsg-eabe0c2c.js → FormFieldMsg-555f329f.js} +1 -1
  98. package/dist/esm/{FormFieldMsg-eabe0c2c.js.map → FormFieldMsg-555f329f.js.map} +1 -1
  99. package/dist/esm/InternalUnderlinedBadgeText-868a81c0.js +4 -0
  100. package/dist/esm/{InternalUnderlinedBadgeText-63c7c674.js.map → InternalUnderlinedBadgeText-868a81c0.js.map} +1 -1
  101. package/dist/esm/{app-globals-a3505337.js → app-globals-2d0926bd.js} +1 -1
  102. package/dist/esm/{app-globals-a3505337.js.map → app-globals-2d0926bd.js.map} +1 -1
  103. package/dist/esm/{dev.utils-5c8ee797.js → dev.utils-c278c4ae.js} +1 -1
  104. package/dist/esm/{dev.utils-5c8ee797.js.map → dev.utils-c278c4ae.js.map} +1 -1
  105. package/dist/esm/{devtools-9617ddfa.js → devtools-35fb12ed.js} +1 -1
  106. package/dist/esm/{devtools-9617ddfa.js.map → devtools-35fb12ed.js.map} +1 -1
  107. package/dist/esm/index-5879a66b.js +4 -0
  108. package/dist/esm/index-5879a66b.js.map +1 -0
  109. package/dist/esm/kol-abbr.entry.js +1 -1
  110. package/dist/esm/kol-accordion.entry.js +1 -1
  111. package/dist/esm/kol-alert-wc.entry.js +1 -1
  112. package/dist/esm/kol-alert.entry.js +1 -1
  113. package/dist/esm/kol-avatar-wc.entry.js +1 -1
  114. package/dist/esm/kol-avatar.entry.js +1 -1
  115. package/dist/esm/kol-badge.entry.js +1 -1
  116. package/dist/esm/kol-breadcrumb.entry.js +1 -1
  117. package/dist/esm/kol-button-group-wc.entry.js +1 -1
  118. package/dist/esm/kol-button-group.entry.js +1 -1
  119. package/dist/esm/kol-button-link.entry.js +1 -1
  120. package/dist/esm/kol-button-wc.entry.js +1 -1
  121. package/dist/esm/kol-button.entry.js +1 -1
  122. package/dist/esm/kol-card.entry.js +1 -1
  123. package/dist/esm/kol-combobox.entry.js +1 -1
  124. package/dist/esm/kol-details.entry.js +1 -1
  125. package/dist/esm/kol-drawer.entry.js +1 -1
  126. package/dist/esm/kol-form.entry.js +1 -1
  127. package/dist/esm/kol-heading-wc.entry.js +1 -1
  128. package/dist/esm/kol-heading.entry.js +1 -1
  129. package/dist/esm/kol-icon.entry.js +1 -1
  130. package/dist/esm/kol-image.entry.js +1 -1
  131. package/dist/esm/kol-indented-text-wc.entry.js +1 -1
  132. package/dist/esm/kol-indented-text.entry.js +1 -1
  133. package/dist/esm/kol-input-checkbox.entry.js +1 -1
  134. package/dist/esm/kol-input-color.entry.js +1 -1
  135. package/dist/esm/kol-input-date.entry.js +1 -1
  136. package/dist/esm/kol-input-email.entry.js +1 -1
  137. package/dist/esm/kol-input-file.entry.js +1 -1
  138. package/dist/esm/kol-input-number.entry.js +1 -1
  139. package/dist/esm/kol-input-password.entry.js +1 -1
  140. package/dist/esm/kol-input-radio.entry.js +1 -1
  141. package/dist/esm/kol-input-range.entry.js +1 -1
  142. package/dist/esm/kol-input-text.entry.js +1 -1
  143. package/dist/esm/kol-input.entry.js +1 -1
  144. package/dist/esm/kol-kolibri.entry.js +1 -1
  145. package/dist/esm/kol-link-button.entry.js +1 -1
  146. package/dist/esm/kol-link-group.entry.js +1 -1
  147. package/dist/esm/kol-link-wc.entry.js +1 -1
  148. package/dist/esm/kol-link.entry.js +1 -1
  149. package/dist/esm/kol-logo.entry.js +1 -1
  150. package/dist/esm/kol-modal.entry.js +1 -1
  151. package/dist/esm/kol-nav.entry.js +1 -1
  152. package/dist/esm/kol-pagination.entry.js +1 -1
  153. package/dist/esm/kol-popover-button.entry.js +1 -1
  154. package/dist/esm/kol-popover-wc.entry.js +1 -1
  155. package/dist/esm/kol-progress.entry.js +1 -1
  156. package/dist/esm/kol-quote.entry.js +1 -1
  157. package/dist/esm/kol-select.entry.js +1 -1
  158. package/dist/esm/kol-single-select.entry.js +1 -1
  159. package/dist/esm/kol-skip-nav.entry.js +1 -1
  160. package/dist/esm/kol-span-wc.entry.js +1 -1
  161. package/dist/esm/kol-spin.entry.js +1 -1
  162. package/dist/esm/kol-split-button.entry.js +1 -1
  163. package/dist/esm/kol-symbol.entry.js +1 -1
  164. package/dist/esm/kol-table-stateful.entry.js +1 -1
  165. package/dist/esm/kol-table-stateful.entry.js.map +1 -1
  166. package/dist/esm/kol-table-stateless-wc.entry.js +1 -1
  167. package/dist/esm/kol-table-stateless.entry.js +1 -1
  168. package/dist/esm/kol-table.entry.js +1 -1
  169. package/dist/esm/kol-tabs.entry.js +1 -1
  170. package/dist/esm/kol-textarea.entry.js +1 -1
  171. package/dist/esm/kol-toast-container.entry.js +1 -1
  172. package/dist/esm/kol-toolbar.entry.js +1 -1
  173. package/dist/esm/kol-tooltip-wc.entry.js +1 -1
  174. package/dist/esm/kol-tree-item-wc.entry.js +1 -1
  175. package/dist/esm/kol-tree-item.entry.js +1 -1
  176. package/dist/esm/kol-tree-wc.entry.js +1 -1
  177. package/dist/esm/kol-tree.entry.js +1 -1
  178. package/dist/esm/kol-version.entry.js +1 -1
  179. package/dist/esm/kolibri.js +1 -1
  180. package/dist/esm/loader.js +1 -1
  181. package/dist/esm/test-component.entry.js +1 -1
  182. package/dist/kolibri/{Alert-7cfc4360.js → Alert-69d3fb7c.js} +1 -1
  183. package/dist/kolibri/{Collapsible-43a6407e.js → Collapsible-a6f9d7da.js} +1 -1
  184. package/dist/kolibri/FormFieldMsg-555f329f.js +4 -0
  185. package/dist/kolibri/{InternalUnderlinedBadgeText-63c7c674.js → InternalUnderlinedBadgeText-868a81c0.js} +1 -1
  186. package/dist/kolibri/app-globals-2d0926bd.js +4 -0
  187. package/dist/kolibri/{dev.utils-5c8ee797.js → dev.utils-c278c4ae.js} +1 -1
  188. package/dist/kolibri/devtools-35fb12ed.js +4 -0
  189. package/dist/kolibri/{index-4f5f6f87.js → index-5879a66b.js} +2 -2
  190. package/dist/kolibri/index-5879a66b.js.map +1 -0
  191. package/dist/kolibri/kol-abbr.entry.js +1 -1
  192. package/dist/kolibri/kol-accordion.entry.js +1 -1
  193. package/dist/kolibri/kol-alert-wc.entry.js +1 -1
  194. package/dist/kolibri/kol-alert.entry.js +1 -1
  195. package/dist/kolibri/kol-avatar-wc.entry.js +1 -1
  196. package/dist/kolibri/kol-avatar.entry.js +1 -1
  197. package/dist/kolibri/kol-badge.entry.js +1 -1
  198. package/dist/kolibri/kol-breadcrumb.entry.js +1 -1
  199. package/dist/kolibri/kol-button-group-wc.entry.js +1 -1
  200. package/dist/kolibri/kol-button-group.entry.js +1 -1
  201. package/dist/kolibri/kol-button-link.entry.js +1 -1
  202. package/dist/kolibri/kol-button-wc.entry.js +1 -1
  203. package/dist/kolibri/kol-button.entry.js +1 -1
  204. package/dist/kolibri/kol-card.entry.js +1 -1
  205. package/dist/kolibri/kol-combobox.entry.js +1 -1
  206. package/dist/kolibri/kol-details.entry.js +1 -1
  207. package/dist/kolibri/kol-drawer.entry.js +1 -1
  208. package/dist/kolibri/kol-form.entry.js +1 -1
  209. package/dist/kolibri/kol-heading-wc.entry.js +1 -1
  210. package/dist/kolibri/kol-heading.entry.js +1 -1
  211. package/dist/kolibri/kol-icon.entry.js +1 -1
  212. package/dist/kolibri/kol-image.entry.js +1 -1
  213. package/dist/kolibri/kol-indented-text-wc.entry.js +1 -1
  214. package/dist/kolibri/kol-indented-text.entry.js +1 -1
  215. package/dist/kolibri/kol-input-checkbox.entry.js +1 -1
  216. package/dist/kolibri/kol-input-color.entry.js +1 -1
  217. package/dist/kolibri/kol-input-date.entry.js +1 -1
  218. package/dist/kolibri/kol-input-email.entry.js +1 -1
  219. package/dist/kolibri/kol-input-file.entry.js +1 -1
  220. package/dist/kolibri/kol-input-number.entry.js +1 -1
  221. package/dist/kolibri/kol-input-password.entry.js +1 -1
  222. package/dist/kolibri/kol-input-radio.entry.js +1 -1
  223. package/dist/kolibri/kol-input-range.entry.js +1 -1
  224. package/dist/kolibri/kol-input-text.entry.js +1 -1
  225. package/dist/kolibri/kol-input.entry.js +1 -1
  226. package/dist/kolibri/kol-kolibri.entry.js +1 -1
  227. package/dist/kolibri/kol-link-button.entry.js +1 -1
  228. package/dist/kolibri/kol-link-group.entry.js +1 -1
  229. package/dist/kolibri/kol-link-wc.entry.js +1 -1
  230. package/dist/kolibri/kol-link.entry.js +1 -1
  231. package/dist/kolibri/kol-logo.entry.js +1 -1
  232. package/dist/kolibri/kol-modal.entry.js +1 -1
  233. package/dist/kolibri/kol-nav.entry.js +1 -1
  234. package/dist/kolibri/kol-pagination.entry.js +1 -1
  235. package/dist/kolibri/kol-popover-button.entry.js +1 -1
  236. package/dist/kolibri/kol-popover-wc.entry.js +1 -1
  237. package/dist/kolibri/kol-progress.entry.js +1 -1
  238. package/dist/kolibri/kol-quote.entry.js +1 -1
  239. package/dist/kolibri/kol-select.entry.js +1 -1
  240. package/dist/kolibri/kol-single-select.entry.js +1 -1
  241. package/dist/kolibri/kol-skip-nav.entry.js +1 -1
  242. package/dist/kolibri/kol-span-wc.entry.js +1 -1
  243. package/dist/kolibri/kol-spin.entry.js +1 -1
  244. package/dist/kolibri/kol-split-button.entry.js +1 -1
  245. package/dist/kolibri/kol-symbol.entry.js +1 -1
  246. package/dist/kolibri/kol-table-stateful.entry.js +1 -1
  247. package/dist/kolibri/kol-table-stateful.entry.js.map +1 -1
  248. package/dist/kolibri/kol-table-stateless-wc.entry.js +1 -1
  249. package/dist/kolibri/kol-table-stateless.entry.js +1 -1
  250. package/dist/kolibri/kol-table.entry.js +1 -1
  251. package/dist/kolibri/kol-tabs.entry.js +1 -1
  252. package/dist/kolibri/kol-textarea.entry.js +1 -1
  253. package/dist/kolibri/kol-toast-container.entry.js +1 -1
  254. package/dist/kolibri/kol-toolbar.entry.js +1 -1
  255. package/dist/kolibri/kol-tooltip-wc.entry.js +1 -1
  256. package/dist/kolibri/kol-tree-item-wc.entry.js +1 -1
  257. package/dist/kolibri/kol-tree-item.entry.js +1 -1
  258. package/dist/kolibri/kol-tree-wc.entry.js +1 -1
  259. package/dist/kolibri/kol-tree.entry.js +1 -1
  260. package/dist/kolibri/kol-version.entry.js +1 -1
  261. package/dist/kolibri/kolibri.esm.js +1 -1
  262. package/dist/kolibri/test-component.entry.js +1 -1
  263. package/package.json +1 -1
  264. package/dist/cjs/index-d1b90d4f.js +0 -4
  265. package/dist/cjs/index-d1b90d4f.js.map +0 -1
  266. package/dist/esm/InternalUnderlinedBadgeText-63c7c674.js +0 -4
  267. package/dist/esm/index-4f5f6f87.js +0 -4
  268. package/dist/esm/index-4f5f6f87.js.map +0 -1
  269. package/dist/kolibri/FormFieldMsg-eabe0c2c.js +0 -4
  270. package/dist/kolibri/app-globals-a3505337.js +0 -4
  271. package/dist/kolibri/devtools-9617ddfa.js +0 -4
  272. package/dist/kolibri/index-4f5f6f87.js.map +0 -1
  273. /package/dist/kolibri/{Alert-7cfc4360.js.map → Alert-69d3fb7c.js.map} +0 -0
  274. /package/dist/kolibri/{Collapsible-43a6407e.js.map → Collapsible-a6f9d7da.js.map} +0 -0
  275. /package/dist/kolibri/{FormFieldMsg-eabe0c2c.js.map → FormFieldMsg-555f329f.js.map} +0 -0
  276. /package/dist/kolibri/{InternalUnderlinedBadgeText-63c7c674.js.map → InternalUnderlinedBadgeText-868a81c0.js.map} +0 -0
  277. /package/dist/kolibri/{app-globals-a3505337.js.map → app-globals-2d0926bd.js.map} +0 -0
  278. /package/dist/kolibri/{dev.utils-5c8ee797.js.map → dev.utils-c278c4ae.js.map} +0 -0
  279. /package/dist/kolibri/{devtools-9617ddfa.js.map → devtools-35fb12ed.js.map} +0 -0
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{proxyCustomElement,HTMLElement,h,Host}from"@stencil/core/internal/client";import{t as translate}from"./i18n2.js";import{q as KolPaginationTag,r as KolTableStatelessWcTag}from"./component-names.js";import{t as tryToDispatchKoliBriEvent}from"./events.js";import{v as validateTableData,a as validateTableDataFoot,b as validateTableSelection,c as validateTableStatefulCallbacks,E as Events}from"./events2.js";import{w as watchValidator,s as setState,y as emptyStringByArrayHandler,d as watchString,p as parseJson,e as objectObjectHandler,q as devHint}from"./prop.validators.js";import{v as validateLabel}from"./label.js";const paginationPositionPropTypeOptions=["top","bottom","both"],validatePaginationPosition=(t,e)=>{watchValidator(t,"_paginationPosition",(t=>"string"==typeof t&&paginationPositionPropTypeOptions.includes(t)),new Set([`PaginationPositionPropType {${paginationPositionPropTypeOptions.join(", ")}`]),e,{defaultValue:"bottom"})},defaultStyleCss="/*\n * This file contains all rules for accessibility.\n */\n@layer kol-global {\n :host {\n /*\n * Minimum size of interactive elements.\n */\n --a11y-min-size: calc(44rem / var(--kolibri-root-font-size, 16));\n /*\n * No element should be used without a background and font color whose contrast ratio has\n * not been checked. By initially setting the background color to white and the font color\n * to black, the contrast ratio is ensured and explicit adjustment is forced.\n */\n background-color: white;\n color: black;\n /*\n * Verdana is an accessible font that can be used without requiring additional loading time.\n */\n font-family: Verdana;\n }\n * {\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n hyphens: auto;\n /*\n * Letter spacing is required for all texts.\n */\n letter-spacing: inherit;\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n word-break: break-word;\n /*\n * Word spacing is required for all texts.\n */\n word-spacing: inherit;\n }\n /*\n * All interactive elements should have a minimum size of rem(44).\n */\n /* input:not([type='checkbox'], [type='radio'], [type='range']), */\n /* option, */\n /* select, */\n /* textarea, */\n [role=button],\n button:not([role=link]),\n .kol-input .input {\n min-height: var(--a11y-min-size);\n min-width: var(--a11y-min-size);\n }\n /*\n * Some interactive elements should not inherit the font-family and font-size.\n */\n a,\n button,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n input,\n option,\n select,\n textarea {\n /*\n * All elements should inherit the font family from his parent element.\n */\n font-family: inherit;\n /*\n * All elements should inherit the font size from his parent element.\n */\n font-size: inherit;\n }\n}\n/**\n * Sometimes we need the semantic element for accessibility reasons,\n * but we don't want to show it.\n *\n * - https://www.a11yproject.com/posts/how-to-hide-content/\n */\n.visually-hidden {\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: calc(1rem / var(--kolibri-root-font-size, 16));\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n width: calc(1rem / var(--kolibri-root-font-size, 16));\n}\n\n@layer kol-global {\n /*\n * Dieses CSS stellt sicher, dass der Standard-Style\n * von A und Button resettet werden.\n */\n :is(a, button) {\n background-color: transparent;\n border: none;\n margin: 0;\n padding: 0;\n width: 100%; /* 100% needed for custom width from outside */\n }\n /*\n * Ensure elements with hidden attribute to be actually not visible\n * @see https://meowni.ca/hidden.is.a.lie.html\n */\n [hidden] {\n display: none !important;\n }\n}\n@layer kol-global {\n :host {\n font-size: calc(16rem / var(--kolibri-root-font-size, 16));\n /*\n * The max-width is needed to prevent the table from overflowing the\n * parent node, if the table is wider than the parent node.\n */\n max-width: 100%;\n }\n * {\n /*\n * We prefer to box-sizing: border-box for all elements.\n */\n box-sizing: border-box;\n }\n /* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n .kol-span-wc {\n display: grid;\n place-items: center;\n }\n /* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n .kol-span-wc > span {\n display: flex;\n place-items: center;\n }\n a,\n button {\n cursor: pointer;\n }\n /* This is the text label. */\n .hide-label > .kol-span-wc > span > span {\n display: none;\n }\n /* Reset browser agent style. */\n button:disabled {\n color: unset;\n }\n .disabled label,\n .disabled:focus-within label,\n [aria-disabled=true],\n [aria-disabled=true]:focus,\n [disabled],\n [disabled]:focus {\n cursor: not-allowed;\n opacity: 0.5;\n outline: none;\n }\n [aria-disabled=true]:focus .kol-span-wc,\n [disabled]:focus .kol-span-wc {\n outline: none !important;\n }\n .badge-text-hint {\n background-color: lightgray;\n color: black;\n }\n}\n@layer kol-component {\n :host {\n display: block;\n }\n}\n@layer kol-component {\n .kol-tooltip-wc {\n display: contents;\n }\n .kol-tooltip-wc .tooltip-floating {\n animation-duration: 0.25s;\n animation-iteration-count: 1;\n animation-name: fadeInOpacity;\n animation-timing-function: ease-in;\n box-sizing: border-box;\n display: none;\n position: fixed;\n visibility: hidden;\n /* Avoid layout interference - see https://floating-ui.com/docs/computePosition */\n top: 0;\n left: 0;\n max-width: 90vw;\n max-height: 90vh;\n /* Can be used to specify the tooltip-width from the outside. Unset by default. */\n width: var(--kol-tooltip-width);\n }\n /* Shared between content and arrow */\n .kol-tooltip-wc .tooltip-area {\n background-color: #fff;\n color: #000;\n }\n .kol-tooltip-wc .tooltip-arrow {\n height: calc(10rem / var(--kolibri-root-font-size, 16));\n position: absolute;\n transform: rotate(45deg);\n width: calc(10rem / var(--kolibri-root-font-size, 16));\n z-index: 999;\n }\n .kol-tooltip-wc .tooltip-content {\n position: relative;\n z-index: 1000;\n }\n @keyframes fadeInOpacity {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n}\n@layer kol-component {\n div.pagination .kol-pagination {\n display: flex;\n flex-wrap: wrap;\n }\n div.pagination,\n div.pagination > div:last-child {\n display: grid;\n place-items: center;\n }\n @media (max-width: 1024px) {\n div.pagination .kol-pagination {\n flex-direction: column;\n }\n }\n @media (min-width: 1024px) {\n div.pagination,\n div.pagination > div:last-child {\n grid-auto-flow: column;\n }\n div.pagination .kol-pagination {\n display: flex;\n }\n }\n}\n@layer kol-component {\n :host,\n .kol-table-stateless-wc {\n display: block;\n }\n .table {\n max-width: 100%;\n overflow-x: auto;\n overflow-y: hidden;\n }\n table {\n width: 100%;\n }\n caption {\n text-align: start;\n }\n .focus-element {\n font-size: 0;\n }\n .focus-element:focus {\n outline: 0 !important;\n }\n .table:has(.focus-element:focus) {\n /* @see https://remysharp.com/til/css/focus-ring-default-styles */\n outline: 5px auto Highlight;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: 2px;\n }\n .table-sort-button .button {\n color: inherit;\n }\n tbody th,\n th.align-left {\n text-align: left;\n }\n tbody th .table-sort-button .button-inner,\n th.align-left .table-sort-button .button-inner {\n justify-items: start;\n }\n th.align-center {\n text-align: center;\n }\n th.align-center .table-sort-button .button-inner {\n justify-items: center;\n }\n th.align-right {\n text-align: right;\n }\n th.align-right .table-sort-button .button-inner {\n justify-items: end;\n }\n tr.foot-spacer,\n tr.head-spacer {\n display: none;\n }\n .selection-header-cell {\n width: 0;\n }\n .selection-cell {\n width: var(--a11y-min-size);\n height: var(--a11y-min-size);\n white-space: nowrap;\n }\n .input label {\n align-items: center;\n cursor: pointer;\n display: flex;\n height: var(--a11y-min-size);\n justify-content: center;\n position: relative;\n width: var(--a11y-min-size);\n }\n .input .icon {\n display: block;\n inset: auto;\n position: absolute;\n z-index: 1;\n }\n .input input {\n appearance: none;\n border-style: solid;\n cursor: pointer;\n margin: 0;\n }\n .input input:before {\n content: \"\";\n }\n .input input[type=checkbox] {\n position: relative;\n display: flex;\n height: calc(var(--a11y-min-size) / 2);\n width: calc(var(--a11y-min-size) / 2);\n align-items: center;\n justify-content: center;\n background-color: rgb(255, 255, 255);\n border-width: 2px;\n line-height: 1.5;\n transition: all 0.5s ease 0s;\n }\n .input input[type=radio] {\n display: flex;\n border-width: 2px;\n border-radius: 100%;\n height: 1.5em;\n min-height: 1.5em;\n min-width: 1.5em;\n padding: 0;\n width: 1.5em;\n }\n .input input[type=radio]:before {\n border-radius: 100%;\n margin: auto;\n height: 0.75em;\n width: 0.75em;\n }\n .input input[type=radio]:checked:before {\n background-color: #000;\n }\n @media (forced-colors: active) {\n .input input[type=radio]:checked:before {\n /* Give it a visible background in forced colors mode */\n background-color: selectedItem !important;\n }\n }\n}",KolTableStatefulDefaultStyle0=defaultStyleCss,PAGINATION_OPTIONS=[10,20,50,100],paginationValidator=t=>!0===t||""===t||"object"==typeof t&&null!==t,KolTableStateful$1=proxyCustomElement(class extends HTMLElement{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.catchRef=t=>{this.tableWcRef=t},this.sortDirections=new Map,this.sortData=[],this.showPagination=!1,this.pageStartSlice=0,this.pageEndSlice=10,this.disableSort=!1,this.sortedColumnHead={label:"",key:"",sortDirection:"NOS"},this.setSortDirection=(t,e)=>{this.sortDirections.clear(),this.sortDirections.set(t,e),this.sortFunction=t},this.handlePagination={onClick:(t,e)=>{var n;"function"==typeof(null===(n=this.state._pagination._on)||void 0===n?void 0:n.onClick)&&this.state._pagination._on.onClick(t,e),setState(this,"_pagination",Object.assign(Object.assign({},this.state._pagination),{_page:e}))},onChangePage:(t,e)=>{var n;"function"==typeof(null===(n=this.state._pagination._on)||void 0===n?void 0:n.onChangePage)&&this.state._pagination._on.onChangePage(t,e),setState(this,"_pagination",Object.assign(Object.assign({},this.state._pagination),{_page:e}))},onChangePageSize:(t,e)=>{var n;"function"==typeof(null===(n=this.state._pagination._on)||void 0===n?void 0:n.onChangePageSize)&&this.state._pagination._on.onChangePageSize(t,e),setState(this,"_pagination",Object.assign(Object.assign({},this.state._pagination),{_pageSize:e})),setState(this,"_pageSize",e)}},this.onSelectionChange=t=>{t.stopPropagation()},this.updateSortedData=(t=this.sortedColumnHead)=>{if(this.disableSort)return void setState(this,"_sortedData",this.state._data);let e=this.state._data;if(this.sortData.length>0)e=this.state._data.sort(((t,e)=>{for(let n=0;n<this.sortData.length;n++){const i=this.sortData[n],a=i.compareFn(t,e);if(0!==a)return"ASC"===i.direction?a:-a}return 0}));else if("function"==typeof this.sortFunction)switch(this.sortDirections.get(this.sortFunction)){case"ASC":e=this.sortFunction([...this.state._data]),this.sortedColumnHead={label:t.label,key:t.key,sortDirection:"ASC"};break;case"DESC":e=this.sortFunction([...this.state._data]).reverse(),this.sortedColumnHead={label:t.label,key:t.key,sortDirection:"DESC"};break;default:e=[...this.state._data],this.sortedColumnHead={label:"",key:"",sortDirection:"NOS"}}setState(this,"_sortedData",e)},this._allowMultiSort=void 0,this._data=void 0,this._dataFoot=void 0,this._headers=void 0,this._label=void 0,this._minWidth=void 0,this._pagination=void 0,this._paginationPosition="bottom",this._selection=void 0,this._on=void 0,this.state={_allowMultiSort:!1,_data:[],_dataFoot:[],_headers:{horizontal:[],vertical:[]},_label:"",_pagination:{_page:1,_pageSize:10,_max:0},_sortedData:[],_paginationPosition:"bottom"}}validateAllowMultiSort(t){watchValidator(this,"_allowMultiSort",(()=>!0),new Set(["boolean"]),t,{defaultValue:!1})}validateData(t){validateTableData(this,t,{afterPatch:()=>{setTimeout(this.updateSortedData)}})}validateDataFoot(t){validateTableDataFoot(this,t,{afterPatch:()=>{setTimeout(this.updateSortedData)}})}validatePaginationPosition(t){validatePaginationPosition(this,t)}changeCellSort(t){var e;if("function"==typeof t.compareFn){this.state._allowMultiSort||t.key==(null===(e=this.sortData[0])||void 0===e?void 0:e.key)||(this.sortData=[]);const n=this.sortData.findIndex((e=>e.key===t.key));if(n>=0){const t=this.sortData[n];switch(t.direction){case"ASC":t.direction="DESC";break;case"DESC":this.sortData.splice(n,1);break;default:t.direction="ASC"}}else t.key&&this.sortData.push({label:t.label,key:t.key,compareFn:t.compareFn,direction:"ASC"});this.updateSortedData(t)}else if("function"==typeof t.sort){switch(this.sortFunction=t.sort,this.sortDirections.get(this.sortFunction)){case"ASC":this.setSortDirection(this.sortFunction,"DESC");break;case"DESC":this.setSortDirection(this.sortFunction,"NOS");break;default:this.setSortDirection(this.sortFunction,"ASC")}this.updateSortedData(t)}}validateHeaders(t){emptyStringByArrayHandler(t,(()=>{objectObjectHandler(t,(()=>{try{t=parseJson(t)}catch(t){}watchValidator(this,"_headers",(t=>"object"==typeof t&&null!==t),new Set(["KoliBriTableHeaders"]),t,{hooks:{beforePatch:t=>{var e,n,i,a;const o=t=>{let e=!1;t.forEach((t=>{const n=t.key;if(!n)return;const i=t.sortDirection;"ASC"!==i&&"DESC"!==i||("function"==typeof t.compareFn?((this.state._allowMultiSort||0===this.sortData.length)&&this.sortData.push({label:t.label,key:n,compareFn:t.compareFn,direction:i}),e=!0):"function"==typeof t.sort&&(this.setSortDirection(t.sort,i),setTimeout((()=>this.updateSortedData({key:n,label:t.label,sortDirection:i})))))})),e&&setTimeout((()=>this.updateSortedData()))},s=t;null===(e=s.horizontal)||void 0===e||e.forEach(o),null===(n=s.vertical)||void 0===n||n.forEach(o),s.horizontal&&s.vertical&&(null===(i=s.horizontal)||void 0===i?void 0:i.length)>0&&(null===(a=s.vertical)||void 0===a?void 0:a.length)>0&&(this.disableSort=!0,devHint("Table: You can not sort the table data, if horizontal and vertical headers are defined at the same time. (https://github.com/public-ui/kolibri/issues/2372)"))}}})}))}))}validateLabel(t){validateLabel(this,t,{required:!0})}validateMinWidth(t){watchString(this,"_minWidth",t,{defaultValue:void 0})}validateSelection(t){validateTableSelection(this,t)}validateOn(t){validateTableStatefulCallbacks(this,t)}validatePagination(t){try{t=parseJson(t)}catch(t){}this.showPagination=paginationValidator(t),watchValidator(this,"_pagination",paginationValidator,new Set(["boolean","KoliBriTablePagination"]),t,{defaultValue:{_page:1,_pageSize:10,_max:0}})}componentDidLoad(){var t;null===(t=this.tableWcRef)||void 0===t||t.addEventListener("kol-selection-change",this.onSelectionChange)}disconnectedCallback(){var t;null===(t=this.tableWcRef)||void 0===t||t.removeEventListener("kol-selection-change",this.onSelectionChange)}componentWillLoad(){this.validateAllowMultiSort(this._allowMultiSort),this.validateData(this._data),this.validateDataFoot(this._dataFoot),this.validateHeaders(this._headers),this.validateLabel(this._label),this.validateMinWidth(this._minWidth),this.validatePagination(this._pagination),this.validatePaginationPosition(this._paginationPosition),this.validateSelection(this._selection),this.validateOn(this._on)}selectDisplayedData(t,e,n){return"number"==typeof e&&e>0&&"number"==typeof n&&n>0?(this.pageStartSlice=e*(n-1),this.pageEndSlice=e*n>t.length?t.length:e*n,t.slice(this.pageStartSlice,this.pageEndSlice)):(this.pageStartSlice=0,this.pageEndSlice=t.length,t)}renderPagination(t){const e=translate("kol-table-pagination-label",{placeholders:{label:`${this.state._label} (${translate(`kol-pagination-position-${t}`)})`}});return h("div",{class:"pagination"},h("span",null,translate("kol-table-visible-range",{placeholders:{start:this.pageEndSlice>0?(this.pageStartSlice+1).toString():"0",end:this.pageEndSlice.toString(),total:this.state._pagination&&this.state._pagination._max>0?this.state._pagination._max.toString():Array.isArray(this.state._data)?this.state._data.length.toString():"0"}})),h("div",null,h(KolPaginationTag,{_boundaryCount:this.state._pagination._boundaryCount,_customClass:this.state._pagination._customClass,_on:this.handlePagination,_page:this.state._pagination._page,_pageSize:this.state._pagination._pageSize,_pageSizeOptions:this.state._pagination._pageSizeOptions||PAGINATION_OPTIONS,_siblingCount:this.state._pagination._siblingCount,_tooltipAlign:"bottom",_max:this.state._pagination._max||this.state._pagination._max||this.state._data.length,_label:e})))}getHeaderCellSortState(t){if(!this.disableSort&&("function"==typeof t.compareFn||"function"==typeof t.sort)){if(t.key===this.sortedColumnHead.key)return this.sortedColumnHead.sortDirection;if(t.key){const e=this.sortData.find((e=>e.key===t.key));if(null==e?void 0:e.direction)return e.direction}return"NOS"}}handleSort({key:t}){const e=[...(this.state._headers.horizontal||[]).flat(),...(this.state._headers.vertical||[]).flat()].find((e=>e.key===t));e&&this.changeCellSort(e)}getSelectedData(t){var e;const n=this.state._selection;if(n){const i=null!==(e=n.keyPropertyName)&&void 0!==e?e:"id",a=this.state._sortedData.filter((e=>t.includes(e[i])));if(!1===(null==n?void 0:n.multiple))return a[0];if(i)return a}return null}handleSelectionChange(t,e){var n;const i=this.state._selection;i&&(this.state=Object.assign(Object.assign({},this.state),{_selection:Object.assign(Object.assign({},i),{selectedKeys:"object"==typeof e?e:[e]})}));const a=this.getSelectedData(e);tryToDispatchKoliBriEvent("selection-change",this.host,a),"function"==typeof(null===(n=this.state._on)||void 0===n?void 0:n[Events.onSelectionChange])&&this.state._on[Events.onSelectionChange](t,a)}async getSelection(){var t;const e=(null===(t=this.state._selection)||void 0===t?void 0:t.selectedKeys)||[];return this.getSelectedData(e)}render(){var t,e,n,i;const a=this.selectDisplayedData(this.state._sortedData,this.showPagination?null!==(e=null===(t=this.state._pagination)||void 0===t?void 0:t._pageSize)&&void 0!==e?e:10:this.state._sortedData.length,this.state._pagination._page||1),o="top"===this._paginationPosition||"both"===this._paginationPosition?this.renderPagination("top"):null,s="bottom"===this._paginationPosition||"both"===this._paginationPosition?this.renderPagination("bottom"):null,l={horizontal:null===(n=this.state._headers.horizontal)||void 0===n?void 0:n.map((t=>t.map((t=>Object.assign(Object.assign({},t),{sortDirection:this.getHeaderCellSortState(t)}))))),vertical:null===(i=this.state._headers.vertical)||void 0===i?void 0:i.map((t=>t.map((t=>Object.assign(Object.assign({},t),{sortDirection:this.getHeaderCellSortState(t)})))))};return h(Host,{key:"ce94996c6d7dec191d7b80661f9911dc9b511e82",class:"kol-table-stateful"},this.pageEndSlice>0&&this.showPagination&&o,h(KolTableStatelessWcTag,{key:"79b4c402e53f3348f015e7613821ea078b69f80d",ref:this.catchRef,_data:a,_headerCells:l,_label:this.state._label,_dataFoot:this.state._dataFoot,_minWidth:this.state._minWidth,_on:{onSort:(t,e)=>{this.handleSort(e)},onSelectionChange:(t,e)=>{this.handleSelectionChange(t,e)}},_selection:this.state._selection}),this.pageEndSlice>0&&this.showPagination&&s)}get host(){return this}static get watchers(){return{_allowMultiSort:["validateAllowMultiSort"],_data:["validateData"],_dataFoot:["validateDataFoot"],_paginationPosition:["validatePaginationPosition"],_headers:["validateHeaders"],_label:["validateLabel"],_minWidth:["validateMinWidth"],_selection:["validateSelection"],_on:["validateOn"],_pagination:["validatePagination"]}}static get style(){return{default:KolTableStatefulDefaultStyle0}}},[33,"kol-table-stateful",{_allowMultiSort:[4,"_allow-multi-sort"],_data:[1],_dataFoot:[1,"_data-foot"],_headers:[1],_label:[1],_minWidth:[1,"_min-width"],_pagination:[8],_paginationPosition:[1,"_pagination-position"],_selection:[1],_on:[16],state:[32],getSelection:[64]},void 0,{_allowMultiSort:["validateAllowMultiSort"],_data:["validateData"],_dataFoot:["validateDataFoot"],_paginationPosition:["validatePaginationPosition"],_headers:["validateHeaders"],_label:["validateLabel"],_minWidth:["validateMinWidth"],_selection:["validateSelection"],_on:["validateOn"],_pagination:["validatePagination"]}]);function defineCustomElement$1(){if("undefined"==typeof customElements)return;["kol-table-stateful"].forEach((t=>{if("kol-table-stateful"===t)customElements.get(t)||customElements.define(t,KolTableStateful$1)}))}const KolTableStateful=KolTableStateful$1,defineCustomElement=defineCustomElement$1;export{KolTableStateful,defineCustomElement};
4
+ import{proxyCustomElement,HTMLElement,h,Host}from"@stencil/core/internal/client";import{t as translate}from"./i18n2.js";import{q as KolPaginationTag,r as KolTableStatelessWcTag}from"./component-names.js";import{t as tryToDispatchKoliBriEvent}from"./events.js";import{v as validateTableData,a as validateTableDataFoot,b as validateTableSelection,c as validateTableStatefulCallbacks,E as Events}from"./events2.js";import{w as watchValidator,s as setState,y as emptyStringByArrayHandler,d as watchString,p as parseJson,e as objectObjectHandler,q as devHint}from"./prop.validators.js";import{v as validateLabel}from"./label.js";const paginationPositionPropTypeOptions=["top","bottom","both"],validatePaginationPosition=(t,e)=>{watchValidator(t,"_paginationPosition",(t=>"string"==typeof t&&paginationPositionPropTypeOptions.includes(t)),new Set([`PaginationPositionPropType {${paginationPositionPropTypeOptions.join(", ")}`]),e,{defaultValue:"bottom"})},defaultStyleCss="/*\n * This file contains all rules for accessibility.\n */\n@layer kol-global {\n :host {\n /*\n * Minimum size of interactive elements.\n */\n --a11y-min-size: calc(44rem / var(--kolibri-root-font-size, 16));\n /*\n * No element should be used without a background and font color whose contrast ratio has\n * not been checked. By initially setting the background color to white and the font color\n * to black, the contrast ratio is ensured and explicit adjustment is forced.\n */\n background-color: white;\n color: black;\n /*\n * Verdana is an accessible font that can be used without requiring additional loading time.\n */\n font-family: Verdana;\n }\n * {\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n hyphens: auto;\n /*\n * Letter spacing is required for all texts.\n */\n letter-spacing: inherit;\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n word-break: break-word;\n /*\n * Word spacing is required for all texts.\n */\n word-spacing: inherit;\n }\n /*\n * All interactive elements should have a minimum size of rem(44).\n */\n /* input:not([type='checkbox'], [type='radio'], [type='range']), */\n /* option, */\n /* select, */\n /* textarea, */\n [role=button],\n button:not([role=link]),\n .kol-input .input {\n min-height: var(--a11y-min-size);\n min-width: var(--a11y-min-size);\n }\n /*\n * Some interactive elements should not inherit the font-family and font-size.\n */\n a,\n button,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n input,\n option,\n select,\n textarea {\n /*\n * All elements should inherit the font family from his parent element.\n */\n font-family: inherit;\n /*\n * All elements should inherit the font size from his parent element.\n */\n font-size: inherit;\n }\n}\n/**\n * Sometimes we need the semantic element for accessibility reasons,\n * but we don't want to show it.\n *\n * - https://www.a11yproject.com/posts/how-to-hide-content/\n */\n.visually-hidden {\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: calc(1rem / var(--kolibri-root-font-size, 16));\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n width: calc(1rem / var(--kolibri-root-font-size, 16));\n}\n\n@layer kol-global {\n /*\n * Dieses CSS stellt sicher, dass der Standard-Style\n * von A und Button resettet werden.\n */\n :is(a, button) {\n background-color: transparent;\n border: none;\n margin: 0;\n padding: 0;\n width: 100%; /* 100% needed for custom width from outside */\n }\n /*\n * Ensure elements with hidden attribute to be actually not visible\n * @see https://meowni.ca/hidden.is.a.lie.html\n */\n [hidden] {\n display: none !important;\n }\n}\n@layer kol-global {\n :host {\n font-size: calc(16rem / var(--kolibri-root-font-size, 16));\n /*\n * The max-width is needed to prevent the table from overflowing the\n * parent node, if the table is wider than the parent node.\n */\n max-width: 100%;\n }\n * {\n /*\n * We prefer to box-sizing: border-box for all elements.\n */\n box-sizing: border-box;\n }\n /* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n .kol-span-wc {\n display: grid;\n place-items: center;\n }\n /* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n .kol-span-wc > span {\n display: flex;\n place-items: center;\n }\n a,\n button {\n cursor: pointer;\n }\n /* This is the text label. */\n .hide-label > .kol-span-wc > span > span {\n display: none;\n }\n /* Reset browser agent style. */\n button:disabled {\n color: unset;\n }\n .disabled label,\n .disabled:focus-within label,\n [aria-disabled=true],\n [aria-disabled=true]:focus,\n [disabled],\n [disabled]:focus {\n cursor: not-allowed;\n opacity: 0.5;\n outline: none;\n }\n [aria-disabled=true]:focus .kol-span-wc,\n [disabled]:focus .kol-span-wc {\n outline: none !important;\n }\n .badge-text-hint {\n background-color: lightgray;\n color: black;\n }\n}\n@layer kol-component {\n :host {\n display: block;\n }\n}\n@layer kol-component {\n .kol-tooltip-wc {\n display: contents;\n }\n .kol-tooltip-wc .tooltip-floating {\n animation-duration: 0.25s;\n animation-iteration-count: 1;\n animation-name: fadeInOpacity;\n animation-timing-function: ease-in;\n box-sizing: border-box;\n display: none;\n position: fixed;\n visibility: hidden;\n /* Avoid layout interference - see https://floating-ui.com/docs/computePosition */\n top: 0;\n left: 0;\n max-width: 90vw;\n max-height: 90vh;\n /* Can be used to specify the tooltip-width from the outside. Unset by default. */\n width: var(--kol-tooltip-width);\n }\n /* Shared between content and arrow */\n .kol-tooltip-wc .tooltip-area {\n background-color: #fff;\n color: #000;\n }\n .kol-tooltip-wc .tooltip-arrow {\n height: calc(10rem / var(--kolibri-root-font-size, 16));\n position: absolute;\n transform: rotate(45deg);\n width: calc(10rem / var(--kolibri-root-font-size, 16));\n z-index: 999;\n }\n .kol-tooltip-wc .tooltip-content {\n position: relative;\n z-index: 1000;\n }\n @keyframes fadeInOpacity {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n}\n@layer kol-component {\n div.pagination .kol-pagination {\n display: flex;\n flex-wrap: wrap;\n }\n div.pagination,\n div.pagination > div:last-child {\n display: grid;\n place-items: center;\n }\n @media (max-width: 1024px) {\n div.pagination .kol-pagination {\n flex-direction: column;\n }\n }\n @media (min-width: 1024px) {\n div.pagination,\n div.pagination > div:last-child {\n grid-auto-flow: column;\n }\n div.pagination .kol-pagination {\n display: flex;\n }\n }\n}\n@layer kol-component {\n :host,\n .kol-table-stateless-wc {\n display: block;\n }\n .table {\n max-width: 100%;\n overflow-x: auto;\n overflow-y: hidden;\n }\n table {\n width: 100%;\n }\n caption {\n text-align: start;\n }\n .focus-element {\n font-size: 0;\n }\n .focus-element:focus {\n outline: 0 !important;\n }\n .table:has(.focus-element:focus) {\n /* @see https://remysharp.com/til/css/focus-ring-default-styles */\n outline: 5px auto Highlight;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: 2px;\n }\n .table-sort-button .button {\n color: inherit;\n }\n tbody th,\n th.align-left {\n text-align: left;\n }\n tbody th .table-sort-button .button-inner,\n th.align-left .table-sort-button .button-inner {\n justify-items: start;\n }\n th.align-center {\n text-align: center;\n }\n th.align-center .table-sort-button .button-inner {\n justify-items: center;\n }\n th.align-right {\n text-align: right;\n }\n th.align-right .table-sort-button .button-inner {\n justify-items: end;\n }\n tr.foot-spacer,\n tr.head-spacer {\n display: none;\n }\n .selection-header-cell {\n width: 0;\n }\n .selection-cell {\n width: var(--a11y-min-size);\n height: var(--a11y-min-size);\n white-space: nowrap;\n }\n .input label {\n align-items: center;\n cursor: pointer;\n display: flex;\n height: var(--a11y-min-size);\n justify-content: center;\n position: relative;\n width: var(--a11y-min-size);\n }\n .input .icon {\n display: block;\n inset: auto;\n position: absolute;\n z-index: 1;\n }\n .input input {\n appearance: none;\n border-style: solid;\n cursor: pointer;\n margin: 0;\n }\n .input input:before {\n content: \"\";\n }\n .input input[type=checkbox] {\n position: relative;\n display: flex;\n height: calc(var(--a11y-min-size) / 2);\n width: calc(var(--a11y-min-size) / 2);\n align-items: center;\n justify-content: center;\n background-color: rgb(255, 255, 255);\n border-width: 2px;\n line-height: 1.5;\n transition: all 0.5s ease 0s;\n }\n .input input[type=radio] {\n display: flex;\n border-width: 2px;\n border-radius: 100%;\n height: 1.5em;\n min-height: 1.5em;\n min-width: 1.5em;\n padding: 0;\n width: 1.5em;\n }\n .input input[type=radio]:before {\n border-radius: 100%;\n margin: auto;\n height: 0.75em;\n width: 0.75em;\n }\n .input input[type=radio]:checked:before {\n background-color: #000;\n }\n @media (forced-colors: active) {\n .input input[type=radio]:checked:before {\n /* Give it a visible background in forced colors mode */\n background-color: selectedItem !important;\n }\n }\n}",KolTableStatefulDefaultStyle0=defaultStyleCss,PAGINATION_OPTIONS=[10,20,50,100],paginationValidator=t=>!0===t||""===t||"object"==typeof t&&null!==t,KolTableStateful$1=proxyCustomElement(class extends HTMLElement{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.catchRef=t=>{this.tableWcRef=t},this.sortDirections=new Map,this.sortData=[],this.showPagination=!1,this.pageStartSlice=0,this.pageEndSlice=10,this.disableSort=!1,this.sortedColumnHead={label:"",key:"",sortDirection:"NOS"},this.setSortDirection=(t,e)=>{this.sortDirections.clear(),this.sortDirections.set(t,e),this.sortFunction=t},this.handlePagination={onClick:(t,e)=>{var n;"function"==typeof(null===(n=this.state._pagination._on)||void 0===n?void 0:n.onClick)&&this.state._pagination._on.onClick(t,e),setState(this,"_pagination",Object.assign(Object.assign({},this.state._pagination),{_page:e}))},onChangePage:(t,e)=>{var n;"function"==typeof(null===(n=this.state._pagination._on)||void 0===n?void 0:n.onChangePage)&&this.state._pagination._on.onChangePage(t,e),setState(this,"_pagination",Object.assign(Object.assign({},this.state._pagination),{_page:e}))},onChangePageSize:(t,e)=>{var n;"function"==typeof(null===(n=this.state._pagination._on)||void 0===n?void 0:n.onChangePageSize)&&this.state._pagination._on.onChangePageSize(t,e),setState(this,"_pagination",Object.assign(Object.assign({},this.state._pagination),{_pageSize:e})),setState(this,"_pageSize",e)}},this.onSelectionChange=t=>{t.stopPropagation()},this.updateSortedData=(t=this.sortedColumnHead)=>{if(this.disableSort)return void setState(this,"_sortedData",this.state._data);let e=[...this.state._data];if(this.sortData.length>0)e.sort(((t,e)=>{for(let n=0;n<this.sortData.length;n++){const i=this.sortData[n],a=i.compareFn(t,e);if(0!==a)return"ASC"===i.direction?a:-a}return 0}));else if("function"==typeof this.sortFunction)switch(this.sortDirections.get(this.sortFunction)){case"ASC":e=this.sortFunction([...this.state._data]),this.sortedColumnHead={label:t.label,key:t.key,sortDirection:"ASC"};break;case"DESC":e=this.sortFunction([...this.state._data]).reverse(),this.sortedColumnHead={label:t.label,key:t.key,sortDirection:"DESC"};break;default:this.sortedColumnHead={label:"",key:"",sortDirection:"NOS"}}setState(this,"_sortedData",e)},this._allowMultiSort=void 0,this._data=void 0,this._dataFoot=void 0,this._headers=void 0,this._label=void 0,this._minWidth=void 0,this._pagination=void 0,this._paginationPosition="bottom",this._selection=void 0,this._on=void 0,this.state={_allowMultiSort:!1,_data:[],_dataFoot:[],_headers:{horizontal:[],vertical:[]},_label:"",_pagination:{_page:1,_pageSize:10,_max:0},_sortedData:[],_paginationPosition:"bottom"}}validateAllowMultiSort(t){watchValidator(this,"_allowMultiSort",(()=>!0),new Set(["boolean"]),t,{defaultValue:!1})}validateData(t){validateTableData(this,t,{afterPatch:()=>{setTimeout(this.updateSortedData)}})}validateDataFoot(t){validateTableDataFoot(this,t,{afterPatch:()=>{setTimeout(this.updateSortedData)}})}validatePaginationPosition(t){validatePaginationPosition(this,t)}changeCellSort(t){var e;if("function"==typeof t.compareFn){this.state._allowMultiSort||t.key==(null===(e=this.sortData[0])||void 0===e?void 0:e.key)||(this.sortData=[]);const n=this.sortData.findIndex((e=>e.key===t.key));if(n>=0){const t=this.sortData[n];switch(t.direction){case"ASC":t.direction="DESC";break;case"DESC":this.sortData.splice(n,1);break;default:t.direction="ASC"}}else t.key&&this.sortData.push({label:t.label,key:t.key,compareFn:t.compareFn,direction:"ASC"});this.updateSortedData(t)}else if("function"==typeof t.sort){switch(this.sortFunction=t.sort,this.sortDirections.get(this.sortFunction)){case"ASC":this.setSortDirection(this.sortFunction,"DESC");break;case"DESC":this.setSortDirection(this.sortFunction,"NOS");break;default:this.setSortDirection(this.sortFunction,"ASC")}this.updateSortedData(t)}}validateHeaders(t){emptyStringByArrayHandler(t,(()=>{objectObjectHandler(t,(()=>{try{t=parseJson(t)}catch(t){}watchValidator(this,"_headers",(t=>"object"==typeof t&&null!==t),new Set(["KoliBriTableHeaders"]),t,{hooks:{beforePatch:t=>{var e,n,i,a;const o=t=>{let e=!1;t.forEach((t=>{const n=t.key;if(!n)return;const i=t.sortDirection;"ASC"!==i&&"DESC"!==i||("function"==typeof t.compareFn?((this.state._allowMultiSort||0===this.sortData.length)&&this.sortData.push({label:t.label,key:n,compareFn:t.compareFn,direction:i}),e=!0):"function"==typeof t.sort&&(this.setSortDirection(t.sort,i),setTimeout((()=>this.updateSortedData({key:n,label:t.label,sortDirection:i})))))})),e&&setTimeout((()=>this.updateSortedData()))},s=t;null===(e=s.horizontal)||void 0===e||e.forEach(o),null===(n=s.vertical)||void 0===n||n.forEach(o),s.horizontal&&s.vertical&&(null===(i=s.horizontal)||void 0===i?void 0:i.length)>0&&(null===(a=s.vertical)||void 0===a?void 0:a.length)>0&&(this.disableSort=!0,devHint("Table: You can not sort the table data, if horizontal and vertical headers are defined at the same time. (https://github.com/public-ui/kolibri/issues/2372)"))}}})}))}))}validateLabel(t){validateLabel(this,t,{required:!0})}validateMinWidth(t){watchString(this,"_minWidth",t,{defaultValue:void 0})}validateSelection(t){validateTableSelection(this,t)}validateOn(t){validateTableStatefulCallbacks(this,t)}validatePagination(t){try{t=parseJson(t)}catch(t){}this.showPagination=paginationValidator(t),watchValidator(this,"_pagination",paginationValidator,new Set(["boolean","KoliBriTablePagination"]),t,{defaultValue:{_page:1,_pageSize:10,_max:0}})}componentDidLoad(){var t;null===(t=this.tableWcRef)||void 0===t||t.addEventListener("kol-selection-change",this.onSelectionChange)}disconnectedCallback(){var t;null===(t=this.tableWcRef)||void 0===t||t.removeEventListener("kol-selection-change",this.onSelectionChange)}componentWillLoad(){this.validateAllowMultiSort(this._allowMultiSort),this.validateData(this._data),this.validateDataFoot(this._dataFoot),this.validateHeaders(this._headers),this.validateLabel(this._label),this.validateMinWidth(this._minWidth),this.validatePagination(this._pagination),this.validatePaginationPosition(this._paginationPosition),this.validateSelection(this._selection),this.validateOn(this._on)}selectDisplayedData(t,e,n){return"number"==typeof e&&e>0&&"number"==typeof n&&n>0?(this.pageStartSlice=e*(n-1),this.pageEndSlice=e*n>t.length?t.length:e*n,t.slice(this.pageStartSlice,this.pageEndSlice)):(this.pageStartSlice=0,this.pageEndSlice=t.length,t)}renderPagination(t){const e=translate("kol-table-pagination-label",{placeholders:{label:`${this.state._label} (${translate(`kol-pagination-position-${t}`)})`}});return h("div",{class:"pagination"},h("span",null,translate("kol-table-visible-range",{placeholders:{start:this.pageEndSlice>0?(this.pageStartSlice+1).toString():"0",end:this.pageEndSlice.toString(),total:this.state._pagination&&this.state._pagination._max>0?this.state._pagination._max.toString():Array.isArray(this.state._data)?this.state._data.length.toString():"0"}})),h("div",null,h(KolPaginationTag,{_boundaryCount:this.state._pagination._boundaryCount,_customClass:this.state._pagination._customClass,_on:this.handlePagination,_page:this.state._pagination._page,_pageSize:this.state._pagination._pageSize,_pageSizeOptions:this.state._pagination._pageSizeOptions||PAGINATION_OPTIONS,_siblingCount:this.state._pagination._siblingCount,_tooltipAlign:"bottom",_max:this.state._pagination._max||this.state._pagination._max||this.state._data.length,_label:e})))}getHeaderCellSortState(t){if(!this.disableSort&&("function"==typeof t.compareFn||"function"==typeof t.sort)){if(t.key===this.sortedColumnHead.key)return this.sortedColumnHead.sortDirection;if(t.key){const e=this.sortData.find((e=>e.key===t.key));if(null==e?void 0:e.direction)return e.direction}return"NOS"}}handleSort({key:t}){const e=[...(this.state._headers.horizontal||[]).flat(),...(this.state._headers.vertical||[]).flat()].find((e=>e.key===t));e&&this.changeCellSort(e)}getSelectedData(t){var e;const n=this.state._selection;if(n){const i=null!==(e=n.keyPropertyName)&&void 0!==e?e:"id",a=this.state._sortedData.filter((e=>t.includes(e[i])));if(!1===(null==n?void 0:n.multiple))return a[0];if(i)return a}return null}handleSelectionChange(t,e){var n;const i=this.state._selection;i&&(this.state=Object.assign(Object.assign({},this.state),{_selection:Object.assign(Object.assign({},i),{selectedKeys:"object"==typeof e?e:[e]})}));const a=this.getSelectedData(e);tryToDispatchKoliBriEvent("selection-change",this.host,a),"function"==typeof(null===(n=this.state._on)||void 0===n?void 0:n[Events.onSelectionChange])&&this.state._on[Events.onSelectionChange](t,a)}async getSelection(){var t;const e=(null===(t=this.state._selection)||void 0===t?void 0:t.selectedKeys)||[];return this.getSelectedData(e)}render(){var t,e,n,i;const a=this.selectDisplayedData(this.state._sortedData,this.showPagination?null!==(e=null===(t=this.state._pagination)||void 0===t?void 0:t._pageSize)&&void 0!==e?e:10:this.state._sortedData.length,this.state._pagination._page||1),o="top"===this._paginationPosition||"both"===this._paginationPosition?this.renderPagination("top"):null,s="bottom"===this._paginationPosition||"both"===this._paginationPosition?this.renderPagination("bottom"):null,l={horizontal:null===(n=this.state._headers.horizontal)||void 0===n?void 0:n.map((t=>t.map((t=>Object.assign(Object.assign({},t),{sortDirection:this.getHeaderCellSortState(t)}))))),vertical:null===(i=this.state._headers.vertical)||void 0===i?void 0:i.map((t=>t.map((t=>Object.assign(Object.assign({},t),{sortDirection:this.getHeaderCellSortState(t)})))))};return h(Host,{key:"c26b8fd4eadc144bf4a4f10adfd6feaf0cba9ff8",class:"kol-table-stateful"},this.pageEndSlice>0&&this.showPagination&&o,h(KolTableStatelessWcTag,{key:"c2cee411489eed9f0e249185ad820f03fecfffe8",ref:this.catchRef,_data:a,_headerCells:l,_label:this.state._label,_dataFoot:this.state._dataFoot,_minWidth:this.state._minWidth,_on:{onSort:(t,e)=>{this.handleSort(e)},onSelectionChange:(t,e)=>{this.handleSelectionChange(t,e)}},_selection:this.state._selection}),this.pageEndSlice>0&&this.showPagination&&s)}get host(){return this}static get watchers(){return{_allowMultiSort:["validateAllowMultiSort"],_data:["validateData"],_dataFoot:["validateDataFoot"],_paginationPosition:["validatePaginationPosition"],_headers:["validateHeaders"],_label:["validateLabel"],_minWidth:["validateMinWidth"],_selection:["validateSelection"],_on:["validateOn"],_pagination:["validatePagination"]}}static get style(){return{default:KolTableStatefulDefaultStyle0}}},[33,"kol-table-stateful",{_allowMultiSort:[4,"_allow-multi-sort"],_data:[1],_dataFoot:[1,"_data-foot"],_headers:[1],_label:[1],_minWidth:[1,"_min-width"],_pagination:[8],_paginationPosition:[1,"_pagination-position"],_selection:[1],_on:[16],state:[32],getSelection:[64]},void 0,{_allowMultiSort:["validateAllowMultiSort"],_data:["validateData"],_dataFoot:["validateDataFoot"],_paginationPosition:["validatePaginationPosition"],_headers:["validateHeaders"],_label:["validateLabel"],_minWidth:["validateMinWidth"],_selection:["validateSelection"],_on:["validateOn"],_pagination:["validatePagination"]}]);function defineCustomElement$1(){if("undefined"==typeof customElements)return;["kol-table-stateful"].forEach((t=>{if("kol-table-stateful"===t)customElements.get(t)||customElements.define(t,KolTableStateful$1)}))}const KolTableStateful=KolTableStateful$1,defineCustomElement=defineCustomElement$1;export{KolTableStateful,defineCustomElement};
@@ -1 +1 @@
1
- {"file":"kol-table-stateful.js","mappings":"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","names":["KolTableStateful"],"sources":["src/schema/props/pagination-position.ts","src/components/table-stateful/style.scss?tag=kol-table-stateful&mode=default&encapsulation=shadow","src/components/table-stateful/shadow.tsx"],"sourcesContent":["/* types */\nimport type { Generic } from 'adopted-style-sheets';\nimport { watchValidator } from '../utils/prop.validators';\n\nconst paginationPositionPropTypeOptions = ['top', 'bottom', 'both'] as const;\nexport type PaginationPositionPropType = (typeof paginationPositionPropTypeOptions)[number];\n\n/**\n * Defines which position should be used for presentation.\n */\nexport type PropPaginationPosition = {\n\tpaginationPosition: PaginationPositionPropType;\n};\n\n/* validator */\nexport const validatePaginationPosition = (component: Generic.Element.Component, value?: PaginationPositionPropType): void => {\n\twatchValidator(\n\t\tcomponent,\n\t\t`_paginationPosition`,\n\t\t(value) => typeof value === 'string' && paginationPositionPropTypeOptions.includes(value),\n\t\tnew Set([`PaginationPositionPropType {${paginationPositionPropTypeOptions.join(', ')}`]),\n\t\tvalue,\n\t\t{\n\t\t\tdefaultValue: 'bottom',\n\t\t},\n\t);\n};\n","@use '../style' as *;\n@use '../@shared/kol-table-stateless-mixin' as *;\n\n@layer kol-component {\n\tdiv.pagination .kol-pagination {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t}\n\n\tdiv.pagination,\n\tdiv.pagination > div:last-child {\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\t}\n\n\t@media (max-width: 1024px) {\n\t\tdiv.pagination .kol-pagination {\n\t\t\tflex-direction: column;\n\t\t}\n\t}\n\n\t@media (min-width: 1024px) {\n\t\tdiv.pagination,\n\t\tdiv.pagination > div:last-child {\n\t\t\tgrid-auto-flow: column;\n\t\t}\n\n\t\tdiv.pagination .kol-pagination {\n\t\t\tdisplay: flex;\n\t\t}\n\t}\n}\n\n@include kol-table-stateless-styles;\n","/* eslint-disable jsx-a11y/no-noninteractive-tabindex */\nimport type {\n\tKoliBriDataCompareFn,\n\tKoliBriPaginationButtonCallbacks,\n\tKoliBriSortDirection,\n\tKoliBriSortFunction,\n\tKoliBriTableDataType,\n\tKoliBriTableHeaderCellWithLogic,\n\tKoliBriTableHeaders,\n\tKoliBriTablePaginationProps,\n\tKoliBriTableSelectedHead,\n\tLabelPropType,\n\tPaginationPositionPropType,\n\tStringified,\n\tTableAPI,\n\tTableStatefulCallbacksPropType,\n\tTableDataFootPropType,\n\tTableDataPropType,\n\tTableHeaderCells,\n\tTableSelectionPropType,\n\tTableStates,\n} from '../../schema';\nimport {\n\tdevHint,\n\temptyStringByArrayHandler,\n\tobjectObjectHandler,\n\tparseJson,\n\tsetState,\n\tvalidateLabel,\n\tvalidatePaginationPosition,\n\tvalidateTableData,\n\tvalidateTableDataFoot,\n\tvalidateTableSelection,\n\tvalidateTableStatefulCallbacks,\n\twatchString,\n\twatchValidator,\n} from '../../schema';\nimport type { JSX } from '@stencil/core';\nimport { Component, h, Host, Method, Prop, State, Watch, Element } from '@stencil/core';\n\nimport { translate } from '../../i18n';\nimport { KolPaginationTag, KolTableStatelessWcTag } from '../../core/component-names';\nimport type { SortEventPayload } from '../../schema';\nimport { tryToDispatchKoliBriEvent } from '../../utils/events';\nimport { Events } from '../../schema/enums';\n\nconst PAGINATION_OPTIONS = [10, 20, 50, 100];\n\nconst paginationValidator = (value: unknown) => value === true || value === '' /* true */ || (typeof value === 'object' && value !== null);\n\ntype SortData = {\n\tlabel: string;\n\tkey: string;\n\tcompareFn: KoliBriDataCompareFn;\n\tdirection: KoliBriSortDirection;\n};\n\n@Component({\n\ttag: 'kol-table-stateful',\n\tstyleUrls: {\n\t\tdefault: './style.scss',\n\t},\n\tshadow: true,\n})\nexport class KolTableStateful implements TableAPI {\n\t@Element() private readonly host?: HTMLKolTableStatelessWcElement;\n\tprivate tableWcRef?: HTMLKolTableStatelessWcElement;\n\n\tprivate readonly catchRef = (ref?: HTMLKolTableStatelessWcElement) => {\n\t\tthis.tableWcRef = ref;\n\t};\n\n\t/**\n\t * @deprecated only for backward compatibility\n\t */\n\tprivate sortFunction?: KoliBriSortFunction;\n\t/**\n\t * @deprecated only for backward compatibility\n\t */\n\tprivate sortDirections: Map<KoliBriSortFunction, KoliBriSortDirection> = new Map();\n\tprivate sortData: SortData[] = [];\n\tprivate showPagination = false;\n\tprivate pageStartSlice = 0;\n\tprivate pageEndSlice = 10;\n\tprivate disableSort = false;\n\n\t/**\n\t * @deprecated only for backward compatibility\n\t */\n\tprivate sortedColumnHead: KoliBriTableSelectedHead = { label: '', key: '', sortDirection: 'NOS' };\n\n\t/**\n\t * Defines whether to allow multi sort.\n\t */\n\t@Prop() public _allowMultiSort?: boolean;\n\n\t/**\n\t * Defines the primary table data.\n\t */\n\t@Prop() public _data!: Stringified<KoliBriTableDataType[]>;\n\n\t/**\n\t * Defines the data for the table footer.\n\t */\n\t@Prop() public _dataFoot?: Stringified<KoliBriTableDataType[]>;\n\n\t/**\n\t * Defines the horizontal and vertical table headers.\n\t */\n\t@Prop() public _headers!: Stringified<KoliBriTableHeaders>;\n\n\t/**\n\t * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.).\n\t */\n\t@Prop() public _label!: string;\n\n\t/**\n\t * Defines the table min-width.\n\t * @deprecated This property is deprecated and will be removed in the next major release.\n\t */\n\t@Prop() public _minWidth?: string;\n\n\t/**\n\t * Defines whether to show the data distributed over multiple pages.\n\t */\n\t@Prop() public _pagination?: boolean | Stringified<KoliBriTablePaginationProps>;\n\t/**\n\t * Controls the position of the pagination.\n\t */\n\t@Prop() public _paginationPosition?: PaginationPositionPropType = 'bottom';\n\t/**\n\t * Defines how rows can be selected and the current selection.\n\t */\n\t@Prop() public _selection?: TableSelectionPropType;\n\t/**\n\t * Defines the callback functions for table events.\n\t */\n\t@Prop() public _on?: TableStatefulCallbacksPropType;\n\n\t@State() public state: TableStates = {\n\t\t_allowMultiSort: false,\n\t\t_data: [],\n\t\t_dataFoot: [],\n\t\t_headers: {\n\t\t\thorizontal: [],\n\t\t\tvertical: [],\n\t\t},\n\t\t_label: '', // ⚠ required\n\t\t_pagination: {\n\t\t\t_page: 1,\n\t\t\t_pageSize: 10,\n\t\t\t_max: 0,\n\t\t},\n\t\t_sortedData: [],\n\t\t_paginationPosition: 'bottom',\n\t};\n\n\t@Watch('_allowMultiSort')\n\tpublic validateAllowMultiSort(value?: boolean): void {\n\t\twatchValidator(this, '_allowMultiSort', () => true, new Set(['boolean']), value, {\n\t\t\tdefaultValue: false,\n\t\t});\n\t}\n\n\t@Watch('_data')\n\tpublic validateData(value?: TableDataPropType): void {\n\t\tvalidateTableData(this, value, {\n\t\t\tafterPatch: () => {\n\t\t\t\t// TODO: kein guter Hack (endless loop)\n\t\t\t\tsetTimeout(this.updateSortedData);\n\t\t\t},\n\t\t});\n\t}\n\n\t@Watch('_dataFoot')\n\tpublic validateDataFoot(value?: TableDataFootPropType): void {\n\t\tvalidateTableDataFoot(this, value, {\n\t\t\tafterPatch: () => {\n\t\t\t\tsetTimeout(this.updateSortedData);\n\t\t\t},\n\t\t});\n\t}\n\n\t@Watch('_paginationPosition')\n\tpublic validatePaginationPosition(value?: PaginationPositionPropType): void {\n\t\tvalidatePaginationPosition(this, value);\n\t}\n\n\t/**\n\t * @deprecated only for backward compatibility\n\t */\n\tprivate setSortDirection = (sort: KoliBriSortFunction, direction: KoliBriSortDirection) => {\n\t\t/**\n\t\t * Durch des Clearen, ist es nicht möglich eine Mehr-Spalten-Sortierung\n\t\t * darzustellen. Das wäre der Fall, wenn man ggf. Daten in außerhalb der\n\t\t * Komponente sortiert und diese sortiert von außen rein gibt und der\n\t\t * Sortierungsalgorithmus mehrere Spalten zusammen sortierte.\n\t\t *\n\t\t * Beachte auch col.sort !== this.sortFunction\n\t\t */\n\t\tthis.sortDirections.clear();\n\t\tthis.sortDirections.set(sort, direction);\n\t\tthis.sortFunction = sort;\n\t};\n\n\t/**\n\t * Handles sorting logic for table columns.\n\t * If multi-sort is enabled (`_allowMultiSort`), multiple columns can be sorted at once.\n\t * Otherwise, sorting is cleared when switching between columns.\n\t */\n\n\tprivate changeCellSort(headerCell: KoliBriTableHeaderCellWithLogic) {\n\t\tif (typeof headerCell.compareFn === 'function') {\n\t\t\tif (!this.state._allowMultiSort && headerCell.key != this.sortData[0]?.key) {\n\t\t\t\t// clear when another column is sorted and multi sort is not allowed\n\t\t\t\tthis.sortData = [];\n\t\t\t}\n\n\t\t\tconst index = this.sortData.findIndex((value) => value.key === headerCell.key);\n\t\t\tif (index >= 0) {\n\t\t\t\tconst settings = this.sortData[index];\n\t\t\t\tswitch (settings.direction) {\n\t\t\t\t\tcase 'ASC':\n\t\t\t\t\t\tsettings.direction = 'DESC';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'DESC':\n\t\t\t\t\t\tthis.sortData.splice(index, 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsettings.direction = 'ASC';\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if (headerCell.key) {\n\t\t\t\tthis.sortData.push({\n\t\t\t\t\tlabel: headerCell.label,\n\t\t\t\t\tkey: headerCell.key,\n\t\t\t\t\tcompareFn: headerCell.compareFn,\n\t\t\t\t\tdirection: 'ASC',\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.updateSortedData(headerCell as KoliBriTableSelectedHead);\n\t\t} else if (typeof headerCell.sort === 'function') {\n\t\t\tthis.sortFunction = headerCell.sort;\n\t\t\tswitch (this.sortDirections.get(this.sortFunction)) {\n\t\t\t\tcase 'ASC':\n\t\t\t\t\tthis.setSortDirection(this.sortFunction, 'DESC');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'DESC':\n\t\t\t\t\tthis.setSortDirection(this.sortFunction, 'NOS');\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthis.setSortDirection(this.sortFunction, 'ASC');\n\t\t\t}\n\t\t\tthis.updateSortedData(headerCell as KoliBriTableSelectedHead);\n\t\t}\n\t}\n\n\t@Watch('_headers')\n\tpublic validateHeaders(value?: Stringified<KoliBriTableHeaders>): void {\n\t\t/**\n\t\t * - es darf maximal ein Header als primary markiert werden (last win)\n\t\t * - der primary-Header entscheidet implizit über _order und _orientation\n\t\t * - primary-Headers müssen das key-Property setzen\n\t\t * - nicht primary-Headers müssen das key-Property nicht setzen (wird ignoriert)\n\t\t * - _order: wird durch den primary-Header geregelt\n\t\t * - _orientation: wird durch den primary-Header geregelt\n\t\t * - sobald ein Header sortierbar ist, darf es nur noch entweder horizontale\n\t\t * oder vertikale Header geben, aber nicht mehr beides\n\t\t */\n\t\temptyStringByArrayHandler(value, () => {\n\t\t\tobjectObjectHandler(value, () => {\n\t\t\t\ttry {\n\t\t\t\t\tvalue = parseJson<KoliBriTableHeaders>(value);\n\t\t\t\t\t// eslint-disable-next-line no-empty\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// value behält den ursprünglichen Wert\n\t\t\t\t}\n\t\t\t\twatchValidator(this, '_headers', (value): boolean => typeof value === 'object' && value !== null, new Set(['KoliBriTableHeaders']), value, {\n\t\t\t\t\thooks: {\n\t\t\t\t\t\tbeforePatch: (nextValue: unknown) => {\n\t\t\t\t\t\t\tconst applySort = (headers: KoliBriTableHeaderCellWithLogic[]) => {\n\t\t\t\t\t\t\t\tlet hasSortedCells = false;\n\t\t\t\t\t\t\t\theaders.forEach((cell) => {\n\t\t\t\t\t\t\t\t\tconst key = cell.key;\n\t\t\t\t\t\t\t\t\tif (!key) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tconst sortDirection = cell.sortDirection;\n\t\t\t\t\t\t\t\t\tif (sortDirection === 'ASC' || sortDirection === 'DESC') {\n\t\t\t\t\t\t\t\t\t\tif (typeof cell.compareFn === 'function') {\n\t\t\t\t\t\t\t\t\t\t\tif (this.state._allowMultiSort || this.sortData.length === 0) {\n\t\t\t\t\t\t\t\t\t\t\t\tthis.sortData.push({ label: cell.label, key, compareFn: cell.compareFn, direction: sortDirection });\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\thasSortedCells = true;\n\t\t\t\t\t\t\t\t\t\t} else if (typeof cell.sort === 'function') {\n\t\t\t\t\t\t\t\t\t\t\tthis.setSortDirection(cell.sort, sortDirection);\n\t\t\t\t\t\t\t\t\t\t\tsetTimeout(() => this.updateSortedData({ key, label: cell.label, sortDirection }));\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tif (hasSortedCells) {\n\t\t\t\t\t\t\t\t\tsetTimeout(() => this.updateSortedData());\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tconst headers: KoliBriTableHeaders = nextValue as KoliBriTableHeaders;\n\t\t\t\t\t\t\theaders.horizontal?.forEach(applySort);\n\t\t\t\t\t\t\theaders.vertical?.forEach(applySort);\n\n\t\t\t\t\t\t\tif (headers.horizontal && headers.vertical && headers.horizontal?.length > 0 && headers.vertical?.length > 0) {\n\t\t\t\t\t\t\t\tthis.disableSort = true;\n\t\t\t\t\t\t\t\tdevHint(\n\t\t\t\t\t\t\t\t\t`Table: You can not sort the table data, if horizontal and vertical headers are defined at the same time. (https://github.com/public-ui/kolibri/issues/2372)`,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t@Watch('_label')\n\tpublic validateLabel(value?: LabelPropType): void {\n\t\tvalidateLabel(this, value, {\n\t\t\trequired: true,\n\t\t});\n\t}\n\n\t/**\n\t * @deprecated This property is deprecated and will be removed in the next major release.\n\t */\n\t@Watch('_minWidth')\n\tpublic validateMinWidth(value?: string): void {\n\t\twatchString(this, '_minWidth', value, {\n\t\t\tdefaultValue: undefined,\n\t\t});\n\t}\n\n\t@Watch('_selection')\n\tpublic validateSelection(value?: TableSelectionPropType): void {\n\t\tvalidateTableSelection(this, value);\n\t}\n\t@Watch('_on')\n\tpublic validateOn(value?: TableStatefulCallbacksPropType): void {\n\t\tvalidateTableStatefulCallbacks(this, value);\n\t}\n\n\tprivate readonly handlePagination: KoliBriPaginationButtonCallbacks = {\n\t\tonClick: (event: Event, page: number) => {\n\t\t\tif (typeof this.state._pagination._on?.onClick === 'function') {\n\t\t\t\tthis.state._pagination._on.onClick(event, page);\n\t\t\t}\n\t\t\tsetState(this, '_pagination', {\n\t\t\t\t...this.state._pagination,\n\t\t\t\t_page: page,\n\t\t\t});\n\t\t},\n\t\tonChangePage: (event: Event, page: number) => {\n\t\t\tif (typeof this.state._pagination._on?.onChangePage === 'function') {\n\t\t\t\tthis.state._pagination._on.onChangePage(event, page);\n\t\t\t}\n\t\t\tsetState(this, '_pagination', {\n\t\t\t\t...this.state._pagination,\n\t\t\t\t_page: page,\n\t\t\t});\n\t\t},\n\t\tonChangePageSize: (event: Event, pageSize: number) => {\n\t\t\tif (typeof this.state._pagination._on?.onChangePageSize === 'function') {\n\t\t\t\tthis.state._pagination._on.onChangePageSize(event, pageSize);\n\t\t\t}\n\t\t\tsetState(this, '_pagination', {\n\t\t\t\t...this.state._pagination,\n\t\t\t\t_pageSize: pageSize,\n\t\t\t});\n\t\t\tsetState(this, '_pageSize', pageSize);\n\t\t},\n\t};\n\n\t@Watch('_pagination')\n\tpublic validatePagination(value?: boolean | Stringified<KoliBriTablePaginationProps>): void {\n\t\ttry {\n\t\t\tvalue = parseJson<boolean | KoliBriTablePaginationProps>(value);\n\t\t\t// eslint-disable-next-line no-empty\n\t\t} catch (e) {\n\t\t\t// value behält den ursprünglichen Wert\n\t\t}\n\n\t\tthis.showPagination = paginationValidator(value);\n\n\t\twatchValidator<boolean | Stringified<KoliBriTablePaginationProps>>(\n\t\t\tthis,\n\t\t\t'_pagination',\n\t\t\tpaginationValidator,\n\t\t\tnew Set(['boolean', 'KoliBriTablePagination']),\n\t\t\tvalue,\n\t\t\t{\n\t\t\t\tdefaultValue: {\n\t\t\t\t\t_page: 1,\n\t\t\t\t\t_pageSize: 10,\n\t\t\t\t\t_max: 0,\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\t}\n\n\tprivate onSelectionChange = (event: Event): void => {\n\t\tevent.stopPropagation();\n\t};\n\n\tpublic componentDidLoad(): void {\n\t\tthis.tableWcRef?.addEventListener('kol-selection-change', this.onSelectionChange);\n\t}\n\n\tpublic disconnectedCallback(): void {\n\t\tthis.tableWcRef?.removeEventListener('kol-selection-change', this.onSelectionChange);\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateAllowMultiSort(this._allowMultiSort);\n\t\tthis.validateData(this._data);\n\t\tthis.validateDataFoot(this._dataFoot);\n\t\tthis.validateHeaders(this._headers);\n\t\tthis.validateLabel(this._label);\n\t\tthis.validateMinWidth(this._minWidth);\n\t\tthis.validatePagination(this._pagination);\n\t\tthis.validatePaginationPosition(this._paginationPosition);\n\t\tthis.validateSelection(this._selection);\n\t\tthis.validateOn(this._on);\n\t}\n\n\tprivate selectDisplayedData(data: KoliBriTableDataType[], pageSize: number, page: number): KoliBriTableDataType[] {\n\t\tif (typeof pageSize === 'number' && pageSize > 0 && typeof page === 'number' && page > 0) {\n\t\t\tthis.pageStartSlice = pageSize * (page - 1);\n\t\t\tthis.pageEndSlice = pageSize * page > data.length ? data.length : pageSize * page;\n\t\t\treturn data.slice(this.pageStartSlice, this.pageEndSlice);\n\t\t} else {\n\t\t\tthis.pageStartSlice = 0;\n\t\t\tthis.pageEndSlice = data.length;\n\t\t\treturn data;\n\t\t}\n\t}\n\n\t/**\n\t *\n\t * @param cell only used for old single sort. Can be removed when sort is removed.\n\t */\n\tprivate updateSortedData = (cell: KoliBriTableSelectedHead = this.sortedColumnHead) => {\n\t\tif (this.disableSort) {\n\t\t\tsetState(this, '_sortedData', this.state._data);\n\t\t\treturn;\n\t\t}\n\n\t\tlet sortedData: KoliBriTableDataType[] = this.state._data;\n\t\tif (this.sortData.length > 0) {\n\t\t\tsortedData = this.state._data.sort((a: KoliBriTableDataType, b: KoliBriTableDataType) => {\n\t\t\t\tfor (let index = 0; index < this.sortData.length; index++) {\n\t\t\t\t\tconst data = this.sortData[index];\n\t\t\t\t\tconst result = data.compareFn(a, b);\n\t\t\t\t\tif (result !== 0) {\n\t\t\t\t\t\treturn data.direction === 'ASC' ? result : -result;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn 0;\n\t\t\t});\n\t\t} else if (typeof this.sortFunction === 'function') {\n\t\t\tswitch (this.sortDirections.get(this.sortFunction)) {\n\t\t\t\tcase 'ASC':\n\t\t\t\t\tsortedData = this.sortFunction([...this.state._data]);\n\t\t\t\t\tthis.sortedColumnHead = { label: cell.label, key: cell.key, sortDirection: 'ASC' };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'DESC':\n\t\t\t\t\tsortedData = this.sortFunction([...this.state._data]).reverse();\n\t\t\t\t\tthis.sortedColumnHead = { label: cell.label, key: cell.key, sortDirection: 'DESC' };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'NOS':\n\t\t\t\tdefault:\n\t\t\t\t\tsortedData = [...this.state._data];\n\t\t\t\t\tthis.sortedColumnHead = { label: '', key: '', sortDirection: 'NOS' };\n\t\t\t}\n\t\t}\n\t\tsetState(this, '_sortedData', sortedData);\n\t};\n\n\t/**\n\t * Renders the pagination controls for the table, showing the current visible data range\n\t * and providing navigation between different pages.\n\t *\n\t * @returns {JSX.Element} The rendered pagination controls including page range and navigation.\n\t */\n\tprivate renderPagination(position: 'top' | 'bottom'): JSX.Element {\n\t\tconst label = translate('kol-table-pagination-label', {\n\t\t\tplaceholders: {\n\t\t\t\tlabel: `${this.state._label} (${translate(`kol-pagination-position-${position}`)})`,\n\t\t\t},\n\t\t});\n\n\t\treturn (\n\t\t\t<div class=\"pagination\">\n\t\t\t\t<span>\n\t\t\t\t\t{translate('kol-table-visible-range', {\n\t\t\t\t\t\tplaceholders: {\n\t\t\t\t\t\t\tstart: this.pageEndSlice > 0 ? (this.pageStartSlice + 1).toString() : '0',\n\t\t\t\t\t\t\tend: this.pageEndSlice.toString(),\n\t\t\t\t\t\t\ttotal:\n\t\t\t\t\t\t\t\tthis.state._pagination && this.state._pagination._max > 0\n\t\t\t\t\t\t\t\t\t? this.state._pagination._max.toString()\n\t\t\t\t\t\t\t\t\t: Array.isArray(this.state._data)\n\t\t\t\t\t\t\t\t\t\t? this.state._data.length.toString()\n\t\t\t\t\t\t\t\t\t\t: '0',\n\t\t\t\t\t\t},\n\t\t\t\t\t})}\n\t\t\t\t</span>\n\t\t\t\t<div>\n\t\t\t\t\t<KolPaginationTag\n\t\t\t\t\t\t_boundaryCount={this.state._pagination._boundaryCount}\n\t\t\t\t\t\t_customClass={this.state._pagination._customClass}\n\t\t\t\t\t\t_on={this.handlePagination}\n\t\t\t\t\t\t_page={this.state._pagination._page}\n\t\t\t\t\t\t_pageSize={this.state._pagination._pageSize}\n\t\t\t\t\t\t_pageSizeOptions={this.state._pagination._pageSizeOptions || PAGINATION_OPTIONS}\n\t\t\t\t\t\t_siblingCount={this.state._pagination._siblingCount}\n\t\t\t\t\t\t_tooltipAlign=\"bottom\"\n\t\t\t\t\t\t_max={this.state._pagination._max || this.state._pagination._max || this.state._data.length}\n\t\t\t\t\t\t_label={label}\n\t\t\t\t\t></KolPaginationTag>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tprivate getHeaderCellSortState(headerCell: KoliBriTableHeaderCellWithLogic): KoliBriSortDirection | undefined {\n\t\tif (!this.disableSort && (typeof headerCell.compareFn === 'function' || typeof headerCell.sort === 'function')) {\n\t\t\tif (headerCell.key === this.sortedColumnHead.key) {\n\t\t\t\treturn this.sortedColumnHead.sortDirection;\n\t\t\t}\n\t\t\tif (headerCell.key) {\n\t\t\t\tconst data = this.sortData.find((value) => value.key === headerCell.key);\n\t\t\t\tif (data?.direction) {\n\t\t\t\t\treturn data.direction;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn 'NOS';\n\t\t}\n\t}\n\n\tprivate handleSort({ key }: SortEventPayload) {\n\t\tconst headerCell = [...(this.state._headers.horizontal || []).flat(), ...(this.state._headers.vertical || []).flat()].find((cell) => cell.key === key);\n\t\tif (headerCell) {\n\t\t\tthis.changeCellSort(headerCell);\n\t\t}\n\t}\n\n\tprivate getSelectedData(selectedKeys: string[] | string): null | KoliBriTableDataType | KoliBriTableDataType[] {\n\t\tconst selection = this.state._selection;\n\t\tif (selection) {\n\t\t\tconst keyPropertyName = selection.keyPropertyName ?? 'id';\n\t\t\tconst data = this.state._sortedData.filter((item) => selectedKeys.includes(item[keyPropertyName] as string));\n\t\t\tif (selection?.multiple === false) {\n\t\t\t\treturn data[0];\n\t\t\t}\n\n\t\t\tif (keyPropertyName) return data;\n\t\t}\n\t\treturn null;\n\t}\n\tprivate handleSelectionChange(event: Event, value: string[] | string): void {\n\t\tconst selection = this.state._selection;\n\t\tif (selection)\n\t\t\tthis.state = {\n\t\t\t\t...this.state,\n\t\t\t\t_selection: {\n\t\t\t\t\t...selection,\n\t\t\t\t\tselectedKeys: typeof value === 'object' ? value : [value],\n\t\t\t\t},\n\t\t\t};\n\t\tconst selectedData = this.getSelectedData(value);\n\n\t\ttryToDispatchKoliBriEvent('selection-change', this.host, selectedData);\n\n\t\tif (typeof this.state._on?.[Events.onSelectionChange] === 'function') {\n\t\t\tthis.state._on[Events.onSelectionChange](event, selectedData);\n\t\t}\n\t}\n\n\t@Method()\n\t// eslint-disable-next-line @typescript-eslint/require-await\n\tpublic async getSelection(): Promise<KoliBriTableDataType[] | KoliBriTableDataType | null> {\n\t\tconst selectedKeys: string[] = this.state._selection?.selectedKeys || [];\n\t\treturn this.getSelectedData(selectedKeys);\n\t}\n\n\tpublic render(): JSX.Element {\n\t\tconst displayedData: KoliBriTableDataType[] = this.selectDisplayedData(\n\t\t\tthis.state._sortedData,\n\t\t\tthis.showPagination ? (this.state._pagination?._pageSize ?? 10) : this.state._sortedData.length,\n\t\t\tthis.state._pagination._page || 1,\n\t\t);\n\t\tconst paginationTop = this._paginationPosition === 'top' || this._paginationPosition === 'both' ? this.renderPagination('top') : null;\n\t\tconst paginationBottom = this._paginationPosition === 'bottom' || this._paginationPosition === 'both' ? this.renderPagination('bottom') : null;\n\n\t\tconst headerCells: TableHeaderCells = {\n\t\t\thorizontal: this.state._headers.horizontal?.map((row) => row.map((cell) => ({ ...cell, sortDirection: this.getHeaderCellSortState(cell) }))),\n\t\t\tvertical: this.state._headers.vertical?.map((column) => column.map((cell) => ({ ...cell, sortDirection: this.getHeaderCellSortState(cell) }))),\n\t\t};\n\t\treturn (\n\t\t\t<Host class=\"kol-table-stateful\">\n\t\t\t\t{this.pageEndSlice > 0 && this.showPagination && paginationTop}\n\t\t\t\t<KolTableStatelessWcTag\n\t\t\t\t\tref={this.catchRef}\n\t\t\t\t\t_data={displayedData}\n\t\t\t\t\t_headerCells={headerCells}\n\t\t\t\t\t_label={this.state._label}\n\t\t\t\t\t_dataFoot={this.state._dataFoot}\n\t\t\t\t\t_minWidth={this.state._minWidth}\n\t\t\t\t\t_on={{\n\t\t\t\t\t\tonSort: (_: MouseEvent, payload: SortEventPayload) => {\n\t\t\t\t\t\t\tthis.handleSort(payload);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonSelectionChange: (event: Event, value: string[] | string) => {\n\t\t\t\t\t\t\tthis.handleSelectionChange(event, value);\n\t\t\t\t\t\t},\n\t\t\t\t\t}}\n\t\t\t\t\t_selection={this.state._selection}\n\t\t\t\t/>\n\t\t\t\t{this.pageEndSlice > 0 && this.showPagination && paginationBottom}\n\t\t\t</Host>\n\t\t);\n\t}\n}\n"],"version":3}
1
+ {"file":"kol-table-stateful.js","mappings":";;;;;;;;;;;AAIA,MAAM,iCAAiC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AAWtE,MAAM,0BAA0B,GAAG,CAAC,SAAoC,EAAE,KAAkC;IAClH,cAAc,CACb,SAAS,EACT,qBAAqB,EACrB,CAAC,KAAK,KAAK,OAAO,KAAK,KAAK,QAAQ,IAAI,iCAAiC,CAAC,QAAQ,CAAC,KAAK,CAAC,EACzF,IAAI,GAAG,CAAC,CAAC,+BAA+B,iCAAiC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EACxF,KAAK,EACL;QACC,YAAY,EAAE,QAAQ;KACtB,CACD,CAAC;AACH,CAAC;;AC1BD,MAAM,eAAe,GAAG,0uRAA0uR,CAAC;AACnwR,sCAAe,eAAe;;AC6C9B,MAAM,kBAAkB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAE7C,MAAM,mBAAmB,GAAG,CAAC,KAAc,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,KAAgB,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC;MAgB9HA,kBAAgB;;;;;QAIX,aAAQ,GAAG,CAAC,GAAoC;YAChE,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;SACtB,CAAC;QASM,mBAAc,GAAmD,IAAI,GAAG,EAAE,CAAC;QAC3E,aAAQ,GAAe,EAAE,CAAC;QAC1B,mBAAc,GAAG,KAAK,CAAC;QACvB,mBAAc,GAAG,CAAC,CAAC;QACnB,iBAAY,GAAG,EAAE,CAAC;QAClB,gBAAW,GAAG,KAAK,CAAC;QAKpB,qBAAgB,GAA6B,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;QAsG1F,qBAAgB,GAAG,CAAC,IAAyB,EAAE,SAA+B;YASrF,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACzC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SACzB,CAAC;QAkJe,qBAAgB,GAAqC;YACrE,OAAO,EAAE,CAAC,KAAY,EAAE,IAAY;;gBACnC,IAAI,QAAO,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,0CAAE,OAAO,CAAA,KAAK,UAAU,EAAE;oBAC9D,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;iBAChD;gBACD,QAAQ,CAAC,IAAI,EAAE,aAAa,kCACxB,IAAI,CAAC,KAAK,CAAC,WAAW,KACzB,KAAK,EAAE,IAAI,IACV,CAAC;aACH;YACD,YAAY,EAAE,CAAC,KAAY,EAAE,IAAY;;gBACxC,IAAI,QAAO,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,0CAAE,YAAY,CAAA,KAAK,UAAU,EAAE;oBACnE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;iBACrD;gBACD,QAAQ,CAAC,IAAI,EAAE,aAAa,kCACxB,IAAI,CAAC,KAAK,CAAC,WAAW,KACzB,KAAK,EAAE,IAAI,IACV,CAAC;aACH;YACD,gBAAgB,EAAE,CAAC,KAAY,EAAE,QAAgB;;gBAChD,IAAI,QAAO,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,0CAAE,gBAAgB,CAAA,KAAK,UAAU,EAAE;oBACvE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;iBAC7D;gBACD,QAAQ,CAAC,IAAI,EAAE,aAAa,kCACxB,IAAI,CAAC,KAAK,CAAC,WAAW,KACzB,SAAS,EAAE,QAAQ,IAClB,CAAC;gBACH,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;aACtC;SACD,CAAC;QA6BM,sBAAiB,GAAG,CAAC,KAAY;YACxC,KAAK,CAAC,eAAe,EAAE,CAAC;SACxB,CAAC;QAuCM,qBAAgB,GAAG,CAAC,OAAiC,IAAI,CAAC,gBAAgB;YACjF,IAAI,IAAI,CAAC,WAAW,EAAE;gBACrB,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAChD,OAAO;aACP;YAED,IAAI,UAAU,GAA2B,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC/D,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7B,UAAU,CAAC,IAAI,CAAC,CAAC,CAAuB,EAAE,CAAuB;oBAChE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;wBAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;wBAClC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACpC,IAAI,MAAM,KAAK,CAAC,EAAE;4BACjB,OAAO,IAAI,CAAC,SAAS,KAAK,KAAK,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC;yBACnD;qBACD;oBACD,OAAO,CAAC,CAAC;iBACT,CAAC,CAAC;aACH;iBAAM,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE;gBACnD,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;oBACjD,KAAK,KAAK;wBACT,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;wBACtD,IAAI,CAAC,gBAAgB,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;wBACnF,MAAM;oBACP,KAAK,MAAM;wBACV,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;wBAChE,IAAI,CAAC,gBAAgB,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;wBACpF,MAAM;oBACP,KAAK,KAAK,CAAC;oBACX;wBACC,IAAI,CAAC,gBAAgB,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;iBACtE;aACD;YACD,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;SAC1C,CAAC;;;;;;;;mCAjWgE,QAAQ;;;qBAUrC;YACpC,eAAe,EAAE,KAAK;YACtB,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE;gBACT,UAAU,EAAE,EAAE;gBACd,QAAQ,EAAE,EAAE;aACZ;YACD,MAAM,EAAE,EAAE;YACV,WAAW,EAAE;gBACZ,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE,EAAE;gBACb,IAAI,EAAE,CAAC;aACP;YACD,WAAW,EAAE,EAAE;YACf,mBAAmB,EAAE,QAAQ;SAC7B;;IAGM,sBAAsB,CAAC,KAAe;QAC5C,cAAc,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE;YAChF,YAAY,EAAE,KAAK;SACnB,CAAC,CAAC;KACH;IAGM,YAAY,CAAC,KAAyB;QAC5C,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE;YAC9B,UAAU,EAAE;gBAEX,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aAClC;SACD,CAAC,CAAC;KACH;IAGM,gBAAgB,CAAC,KAA6B;QACpD,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE;YAClC,UAAU,EAAE;gBACX,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aAClC;SACD,CAAC,CAAC;KACH;IAGM,0BAA0B,CAAC,KAAkC;QACnE,0BAA0B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACxC;IAyBO,cAAc,CAAC,UAA2C;;QACjE,IAAI,OAAO,UAAU,CAAC,SAAS,KAAK,UAAU,EAAE;YAC/C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,UAAU,CAAC,GAAG,KAAI,MAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,0CAAE,GAAG,CAAA,EAAE;gBAE3E,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;aACnB;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,GAAG,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC;YAC/E,IAAI,KAAK,IAAI,CAAC,EAAE;gBACf,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACtC,QAAQ,QAAQ,CAAC,SAAS;oBACzB,KAAK,KAAK;wBACT,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC;wBAC5B,MAAM;oBACP,KAAK,MAAM;wBACV,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBAC/B,MAAM;oBACP;wBACC,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC;wBAC3B,MAAM;iBACP;aACD;iBAAM,IAAI,UAAU,CAAC,GAAG,EAAE;gBAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAClB,KAAK,EAAE,UAAU,CAAC,KAAK;oBACvB,GAAG,EAAE,UAAU,CAAC,GAAG;oBACnB,SAAS,EAAE,UAAU,CAAC,SAAS;oBAC/B,SAAS,EAAE,KAAK;iBAChB,CAAC,CAAC;aACH;YAED,IAAI,CAAC,gBAAgB,CAAC,UAAsC,CAAC,CAAC;SAC9D;aAAM,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE;YACjD,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC;YACpC,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;gBACjD,KAAK,KAAK;oBACT,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;oBACjD,MAAM;gBACP,KAAK,MAAM;oBACV,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;oBAChD,MAAM;gBACP;oBACC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;aACjD;YACD,IAAI,CAAC,gBAAgB,CAAC,UAAsC,CAAC,CAAC;SAC9D;KACD;IAGM,eAAe,CAAC,KAAwC;QAW9D,yBAAyB,CAAC,KAAK,EAAE;YAChC,mBAAmB,CAAC,KAAK,EAAE;gBAC1B,IAAI;oBACH,KAAK,GAAG,SAAS,CAAsB,KAAK,CAAC,CAAC;iBAE9C;gBAAC,OAAO,CAAC,EAAE;iBAEX;gBACD,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,KAAK,KAAc,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,EAAE,KAAK,EAAE;oBAC1I,KAAK,EAAE;wBACN,WAAW,EAAE,CAAC,SAAkB;;4BAC/B,MAAM,SAAS,GAAG,CAAC,OAA0C;gCAC5D,IAAI,cAAc,GAAG,KAAK,CAAC;gCAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI;oCACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;oCACrB,IAAI,CAAC,GAAG,EAAE;wCACT,OAAO;qCACP;oCACD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;oCACzC,IAAI,aAAa,KAAK,KAAK,IAAI,aAAa,KAAK,MAAM,EAAE;wCACxD,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,UAAU,EAAE;4CACzC,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gDAC7D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;6CACpG;4CACD,cAAc,GAAG,IAAI,CAAC;yCACtB;6CAAM,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;4CAC3C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;4CAChD,UAAU,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;yCACnF;qCACD;iCACD,CAAC,CAAC;gCACH,IAAI,cAAc,EAAE;oCACnB,UAAU,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;iCAC1C;6BACD,CAAC;4BAEF,MAAM,OAAO,GAAwB,SAAgC,CAAC;4BACtE,MAAA,OAAO,CAAC,UAAU,0CAAE,OAAO,CAAC,SAAS,CAAC,CAAC;4BACvC,MAAA,OAAO,CAAC,QAAQ,0CAAE,OAAO,CAAC,SAAS,CAAC,CAAC;4BAErC,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAA,MAAA,OAAO,CAAC,UAAU,0CAAE,MAAM,IAAG,CAAC,IAAI,CAAA,MAAA,OAAO,CAAC,QAAQ,0CAAE,MAAM,IAAG,CAAC,EAAE;gCAC7G,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gCACxB,OAAO,CACN,6JAA6J,CAC7J,CAAC;6BACF;yBACD;qBACD;iBACD,CAAC,CAAC;aACH,CAAC,CAAC;SACH,CAAC,CAAC;KACH;IAGM,aAAa,CAAC,KAAqB;QACzC,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE;YAC1B,QAAQ,EAAE,IAAI;SACd,CAAC,CAAC;KACH;IAMM,gBAAgB,CAAC,KAAc;QACrC,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;YACrC,YAAY,EAAE,SAAS;SACvB,CAAC,CAAC;KACH;IAGM,iBAAiB,CAAC,KAA8B;QACtD,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACpC;IAEM,UAAU,CAAC,KAAsC;QACvD,8BAA8B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KAC5C;IAkCM,kBAAkB,CAAC,KAA0D;QACnF,IAAI;YACH,KAAK,GAAG,SAAS,CAAwC,KAAK,CAAC,CAAC;SAEhE;QAAC,OAAO,CAAC,EAAE;SAEX;QAED,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAEjD,cAAc,CACb,IAAI,EACJ,aAAa,EACb,mBAAmB,EACnB,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC,EAC9C,KAAK,EACL;YACC,YAAY,EAAE;gBACb,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE,EAAE;gBACb,IAAI,EAAE,CAAC;aACP;SACD,CACD,CAAC;KACF;IAMM,gBAAgB;;QACtB,MAAA,IAAI,CAAC,UAAU,0CAAE,gBAAgB,CAAC,sBAAsB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;KAClF;IAEM,oBAAoB;;QAC1B,MAAA,IAAI,CAAC,UAAU,0CAAE,mBAAmB,CAAC,sBAAsB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;KACrF;IAEM,iBAAiB;QACvB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAClD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC1D,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC1B;IAEO,mBAAmB,CAAC,IAA4B,EAAE,QAAgB,EAAE,IAAY;QACvF,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,GAAG,CAAC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,GAAG,CAAC,EAAE;YACzF,IAAI,CAAC,cAAc,GAAG,QAAQ,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,YAAY,GAAG,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC;YAClF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;SAC1D;aAAM;YACN,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;YAChC,OAAO,IAAI,CAAC;SACZ;KACD;IAgDO,gBAAgB,CAAC,QAA0B;QAClD,MAAM,KAAK,GAAG,SAAS,CAAC,4BAA4B,EAAE;YACrD,YAAY,EAAE;gBACb,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,2BAA2B,QAAQ,EAAE,CAAC,GAAG;aACnF;SACD,CAAC,CAAC;QAEH,QACC,WAAK,KAAK,EAAC,YAAY,IACtB,gBACE,SAAS,CAAC,yBAAyB,EAAE;YACrC,YAAY,EAAE;gBACb,KAAK,EAAE,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,QAAQ,EAAE,GAAG,GAAG;gBACzE,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;gBACjC,KAAK,EACJ,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC;sBACtD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE;sBACtC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;0BAC9B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE;0BAClC,GAAG;aACR;SACD,CAAC,CACI,EACP,eACC,EAAC,gBAAgB,IAChB,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,EACrD,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EACjD,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAC1B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EACnC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAC3C,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,IAAI,kBAAkB,EAC/E,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EACnD,aAAa,EAAC,QAAQ,EACtB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAC3F,MAAM,EAAE,KAAK,GACM,CACf,CACD,EACL;KACF;IAEO,sBAAsB,CAAC,UAA2C;QACzE,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,OAAO,UAAU,CAAC,SAAS,KAAK,UAAU,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE;YAC/G,IAAI,UAAU,CAAC,GAAG,KAAK,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE;gBACjD,OAAO,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;aAC3C;YACD,IAAI,UAAU,CAAC,GAAG,EAAE;gBACnB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,GAAG,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC;gBACzE,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,EAAE;oBACpB,OAAO,IAAI,CAAC,SAAS,CAAC;iBACtB;aACD;YACD,OAAO,KAAK,CAAC;SACb;KACD;IAEO,UAAU,CAAC,EAAE,GAAG,EAAoB;QAC3C,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACvJ,IAAI,UAAU,EAAE;YACf,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;SAChC;KACD;IAEO,eAAe,CAAC,YAA+B;;QACtD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QACxC,IAAI,SAAS,EAAE;YACd,MAAM,eAAe,GAAG,MAAA,SAAS,CAAC,eAAe,mCAAI,IAAI,CAAC;YAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAW,CAAC,CAAC,CAAC;YAC7G,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,QAAQ,MAAK,KAAK,EAAE;gBAClC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;aACf;YAED,IAAI,eAAe;gBAAE,OAAO,IAAI,CAAC;SACjC;QACD,OAAO,IAAI,CAAC;KACZ;IACO,qBAAqB,CAAC,KAAY,EAAE,KAAwB;;QACnE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QACxC,IAAI,SAAS;YACZ,IAAI,CAAC,KAAK,mCACN,IAAI,CAAC,KAAK,KACb,UAAU,kCACN,SAAS,KACZ,YAAY,EAAE,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,MAE1D,CAAC;QACH,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAEjD,yBAAyB,CAAC,kBAAkB,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAEvE,IAAI,QAAO,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,0CAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA,KAAK,UAAU,EAAE;YACrE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;SAC9D;KACD;IAIM,MAAM,YAAY;;QACxB,MAAM,YAAY,GAAa,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,UAAU,0CAAE,YAAY,KAAI,EAAE,CAAC;QACzE,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;KAC1C;IAEM,MAAM;;QACZ,MAAM,aAAa,GAA2B,IAAI,CAAC,mBAAmB,CACrE,IAAI,CAAC,KAAK,CAAC,WAAW,EACtB,IAAI,CAAC,cAAc,IAAI,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,SAAS,mCAAI,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAC/F,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,CACjC,CAAC;QACF,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,KAAK,KAAK,IAAI,IAAI,CAAC,mBAAmB,KAAK,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QACtI,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,KAAK,QAAQ,IAAI,IAAI,CAAC,mBAAmB,KAAK,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;QAE/I,MAAM,WAAW,GAAqB;YACrC,UAAU,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,0CAAE,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,sCAAW,IAAI,KAAE,aAAa,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAG,CAAC,CAAC;YAC5I,QAAQ,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,0CAAE,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,sCAAW,IAAI,KAAE,aAAa,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAG,CAAC,CAAC;SAC9I,CAAC;QACF,QACC,EAAC,IAAI,qDAAC,KAAK,EAAC,oBAAoB,IAC9B,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,aAAa,EAC9D,EAAC,sBAAsB,qDACtB,GAAG,EAAE,IAAI,CAAC,QAAQ,EAClB,KAAK,EAAE,aAAa,EACpB,YAAY,EAAE,WAAW,EACzB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EACzB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAC/B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAC/B,GAAG,EAAE;gBACJ,MAAM,EAAE,CAAC,CAAa,EAAE,OAAyB;oBAChD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;iBACzB;gBACD,iBAAiB,EAAE,CAAC,KAAY,EAAE,KAAwB;oBACzD,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;iBACzC;aACD,EACD,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAChC,EACD,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,gBAAgB,CAC3D,EACN;KACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["KolTableStateful"],"sources":["src/schema/props/pagination-position.ts","src/components/table-stateful/style.scss?tag=kol-table-stateful&mode=default&encapsulation=shadow","src/components/table-stateful/shadow.tsx"],"sourcesContent":["/* types */\nimport type { Generic } from 'adopted-style-sheets';\nimport { watchValidator } from '../utils/prop.validators';\n\nconst paginationPositionPropTypeOptions = ['top', 'bottom', 'both'] as const;\nexport type PaginationPositionPropType = (typeof paginationPositionPropTypeOptions)[number];\n\n/**\n * Defines which position should be used for presentation.\n */\nexport type PropPaginationPosition = {\n\tpaginationPosition: PaginationPositionPropType;\n};\n\n/* validator */\nexport const validatePaginationPosition = (component: Generic.Element.Component, value?: PaginationPositionPropType): void => {\n\twatchValidator(\n\t\tcomponent,\n\t\t`_paginationPosition`,\n\t\t(value) => typeof value === 'string' && paginationPositionPropTypeOptions.includes(value),\n\t\tnew Set([`PaginationPositionPropType {${paginationPositionPropTypeOptions.join(', ')}`]),\n\t\tvalue,\n\t\t{\n\t\t\tdefaultValue: 'bottom',\n\t\t},\n\t);\n};\n","@use '../style' as *;\n@use '../@shared/kol-table-stateless-mixin' as *;\n\n@layer kol-component {\n\tdiv.pagination .kol-pagination {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t}\n\n\tdiv.pagination,\n\tdiv.pagination > div:last-child {\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\t}\n\n\t@media (max-width: 1024px) {\n\t\tdiv.pagination .kol-pagination {\n\t\t\tflex-direction: column;\n\t\t}\n\t}\n\n\t@media (min-width: 1024px) {\n\t\tdiv.pagination,\n\t\tdiv.pagination > div:last-child {\n\t\t\tgrid-auto-flow: column;\n\t\t}\n\n\t\tdiv.pagination .kol-pagination {\n\t\t\tdisplay: flex;\n\t\t}\n\t}\n}\n\n@include kol-table-stateless-styles;\n","/* eslint-disable jsx-a11y/no-noninteractive-tabindex */\nimport type {\n\tKoliBriDataCompareFn,\n\tKoliBriPaginationButtonCallbacks,\n\tKoliBriSortDirection,\n\tKoliBriSortFunction,\n\tKoliBriTableDataType,\n\tKoliBriTableHeaderCellWithLogic,\n\tKoliBriTableHeaders,\n\tKoliBriTablePaginationProps,\n\tKoliBriTableSelectedHead,\n\tLabelPropType,\n\tPaginationPositionPropType,\n\tStringified,\n\tTableAPI,\n\tTableStatefulCallbacksPropType,\n\tTableDataFootPropType,\n\tTableDataPropType,\n\tTableHeaderCells,\n\tTableSelectionPropType,\n\tTableStates,\n} from '../../schema';\nimport {\n\tdevHint,\n\temptyStringByArrayHandler,\n\tobjectObjectHandler,\n\tparseJson,\n\tsetState,\n\tvalidateLabel,\n\tvalidatePaginationPosition,\n\tvalidateTableData,\n\tvalidateTableDataFoot,\n\tvalidateTableSelection,\n\tvalidateTableStatefulCallbacks,\n\twatchString,\n\twatchValidator,\n} from '../../schema';\nimport type { JSX } from '@stencil/core';\nimport { Component, h, Host, Method, Prop, State, Watch, Element } from '@stencil/core';\n\nimport { translate } from '../../i18n';\nimport { KolPaginationTag, KolTableStatelessWcTag } from '../../core/component-names';\nimport type { SortEventPayload } from '../../schema';\nimport { tryToDispatchKoliBriEvent } from '../../utils/events';\nimport { Events } from '../../schema/enums';\n\nconst PAGINATION_OPTIONS = [10, 20, 50, 100];\n\nconst paginationValidator = (value: unknown) => value === true || value === '' /* true */ || (typeof value === 'object' && value !== null);\n\ntype SortData = {\n\tlabel: string;\n\tkey: string;\n\tcompareFn: KoliBriDataCompareFn;\n\tdirection: KoliBriSortDirection;\n};\n\n@Component({\n\ttag: 'kol-table-stateful',\n\tstyleUrls: {\n\t\tdefault: './style.scss',\n\t},\n\tshadow: true,\n})\nexport class KolTableStateful implements TableAPI {\n\t@Element() private readonly host?: HTMLKolTableStatelessWcElement;\n\tprivate tableWcRef?: HTMLKolTableStatelessWcElement;\n\n\tprivate readonly catchRef = (ref?: HTMLKolTableStatelessWcElement) => {\n\t\tthis.tableWcRef = ref;\n\t};\n\n\t/**\n\t * @deprecated only for backward compatibility\n\t */\n\tprivate sortFunction?: KoliBriSortFunction;\n\t/**\n\t * @deprecated only for backward compatibility\n\t */\n\tprivate sortDirections: Map<KoliBriSortFunction, KoliBriSortDirection> = new Map();\n\tprivate sortData: SortData[] = [];\n\tprivate showPagination = false;\n\tprivate pageStartSlice = 0;\n\tprivate pageEndSlice = 10;\n\tprivate disableSort = false;\n\n\t/**\n\t * @deprecated only for backward compatibility\n\t */\n\tprivate sortedColumnHead: KoliBriTableSelectedHead = { label: '', key: '', sortDirection: 'NOS' };\n\n\t/**\n\t * Defines whether to allow multi sort.\n\t */\n\t@Prop() public _allowMultiSort?: boolean;\n\n\t/**\n\t * Defines the primary table data.\n\t */\n\t@Prop() public _data!: Stringified<KoliBriTableDataType[]>;\n\n\t/**\n\t * Defines the data for the table footer.\n\t */\n\t@Prop() public _dataFoot?: Stringified<KoliBriTableDataType[]>;\n\n\t/**\n\t * Defines the horizontal and vertical table headers.\n\t */\n\t@Prop() public _headers!: Stringified<KoliBriTableHeaders>;\n\n\t/**\n\t * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.).\n\t */\n\t@Prop() public _label!: string;\n\n\t/**\n\t * Defines the table min-width.\n\t * @deprecated This property is deprecated and will be removed in the next major release.\n\t */\n\t@Prop() public _minWidth?: string;\n\n\t/**\n\t * Defines whether to show the data distributed over multiple pages.\n\t */\n\t@Prop() public _pagination?: boolean | Stringified<KoliBriTablePaginationProps>;\n\t/**\n\t * Controls the position of the pagination.\n\t */\n\t@Prop() public _paginationPosition?: PaginationPositionPropType = 'bottom';\n\t/**\n\t * Defines how rows can be selected and the current selection.\n\t */\n\t@Prop() public _selection?: TableSelectionPropType;\n\t/**\n\t * Defines the callback functions for table events.\n\t */\n\t@Prop() public _on?: TableStatefulCallbacksPropType;\n\n\t@State() public state: TableStates = {\n\t\t_allowMultiSort: false,\n\t\t_data: [],\n\t\t_dataFoot: [],\n\t\t_headers: {\n\t\t\thorizontal: [],\n\t\t\tvertical: [],\n\t\t},\n\t\t_label: '', // ⚠ required\n\t\t_pagination: {\n\t\t\t_page: 1,\n\t\t\t_pageSize: 10,\n\t\t\t_max: 0,\n\t\t},\n\t\t_sortedData: [],\n\t\t_paginationPosition: 'bottom',\n\t};\n\n\t@Watch('_allowMultiSort')\n\tpublic validateAllowMultiSort(value?: boolean): void {\n\t\twatchValidator(this, '_allowMultiSort', () => true, new Set(['boolean']), value, {\n\t\t\tdefaultValue: false,\n\t\t});\n\t}\n\n\t@Watch('_data')\n\tpublic validateData(value?: TableDataPropType): void {\n\t\tvalidateTableData(this, value, {\n\t\t\tafterPatch: () => {\n\t\t\t\t// TODO: kein guter Hack (endless loop)\n\t\t\t\tsetTimeout(this.updateSortedData);\n\t\t\t},\n\t\t});\n\t}\n\n\t@Watch('_dataFoot')\n\tpublic validateDataFoot(value?: TableDataFootPropType): void {\n\t\tvalidateTableDataFoot(this, value, {\n\t\t\tafterPatch: () => {\n\t\t\t\tsetTimeout(this.updateSortedData);\n\t\t\t},\n\t\t});\n\t}\n\n\t@Watch('_paginationPosition')\n\tpublic validatePaginationPosition(value?: PaginationPositionPropType): void {\n\t\tvalidatePaginationPosition(this, value);\n\t}\n\n\t/**\n\t * @deprecated only for backward compatibility\n\t */\n\tprivate setSortDirection = (sort: KoliBriSortFunction, direction: KoliBriSortDirection) => {\n\t\t/**\n\t\t * Durch des Clearen, ist es nicht möglich eine Mehr-Spalten-Sortierung\n\t\t * darzustellen. Das wäre der Fall, wenn man ggf. Daten in außerhalb der\n\t\t * Komponente sortiert und diese sortiert von außen rein gibt und der\n\t\t * Sortierungsalgorithmus mehrere Spalten zusammen sortierte.\n\t\t *\n\t\t * Beachte auch col.sort !== this.sortFunction\n\t\t */\n\t\tthis.sortDirections.clear();\n\t\tthis.sortDirections.set(sort, direction);\n\t\tthis.sortFunction = sort;\n\t};\n\n\t/**\n\t * Handles sorting logic for table columns.\n\t * If multi-sort is enabled (`_allowMultiSort`), multiple columns can be sorted at once.\n\t * Otherwise, sorting is cleared when switching between columns.\n\t */\n\n\tprivate changeCellSort(headerCell: KoliBriTableHeaderCellWithLogic) {\n\t\tif (typeof headerCell.compareFn === 'function') {\n\t\t\tif (!this.state._allowMultiSort && headerCell.key != this.sortData[0]?.key) {\n\t\t\t\t// clear when another column is sorted and multi sort is not allowed\n\t\t\t\tthis.sortData = [];\n\t\t\t}\n\n\t\t\tconst index = this.sortData.findIndex((value) => value.key === headerCell.key);\n\t\t\tif (index >= 0) {\n\t\t\t\tconst settings = this.sortData[index];\n\t\t\t\tswitch (settings.direction) {\n\t\t\t\t\tcase 'ASC':\n\t\t\t\t\t\tsettings.direction = 'DESC';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'DESC':\n\t\t\t\t\t\tthis.sortData.splice(index, 1);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsettings.direction = 'ASC';\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if (headerCell.key) {\n\t\t\t\tthis.sortData.push({\n\t\t\t\t\tlabel: headerCell.label,\n\t\t\t\t\tkey: headerCell.key,\n\t\t\t\t\tcompareFn: headerCell.compareFn,\n\t\t\t\t\tdirection: 'ASC',\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.updateSortedData(headerCell as KoliBriTableSelectedHead);\n\t\t} else if (typeof headerCell.sort === 'function') {\n\t\t\tthis.sortFunction = headerCell.sort;\n\t\t\tswitch (this.sortDirections.get(this.sortFunction)) {\n\t\t\t\tcase 'ASC':\n\t\t\t\t\tthis.setSortDirection(this.sortFunction, 'DESC');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'DESC':\n\t\t\t\t\tthis.setSortDirection(this.sortFunction, 'NOS');\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthis.setSortDirection(this.sortFunction, 'ASC');\n\t\t\t}\n\t\t\tthis.updateSortedData(headerCell as KoliBriTableSelectedHead);\n\t\t}\n\t}\n\n\t@Watch('_headers')\n\tpublic validateHeaders(value?: Stringified<KoliBriTableHeaders>): void {\n\t\t/**\n\t\t * - es darf maximal ein Header als primary markiert werden (last win)\n\t\t * - der primary-Header entscheidet implizit über _order und _orientation\n\t\t * - primary-Headers müssen das key-Property setzen\n\t\t * - nicht primary-Headers müssen das key-Property nicht setzen (wird ignoriert)\n\t\t * - _order: wird durch den primary-Header geregelt\n\t\t * - _orientation: wird durch den primary-Header geregelt\n\t\t * - sobald ein Header sortierbar ist, darf es nur noch entweder horizontale\n\t\t * oder vertikale Header geben, aber nicht mehr beides\n\t\t */\n\t\temptyStringByArrayHandler(value, () => {\n\t\t\tobjectObjectHandler(value, () => {\n\t\t\t\ttry {\n\t\t\t\t\tvalue = parseJson<KoliBriTableHeaders>(value);\n\t\t\t\t\t// eslint-disable-next-line no-empty\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// value behält den ursprünglichen Wert\n\t\t\t\t}\n\t\t\t\twatchValidator(this, '_headers', (value): boolean => typeof value === 'object' && value !== null, new Set(['KoliBriTableHeaders']), value, {\n\t\t\t\t\thooks: {\n\t\t\t\t\t\tbeforePatch: (nextValue: unknown) => {\n\t\t\t\t\t\t\tconst applySort = (headers: KoliBriTableHeaderCellWithLogic[]) => {\n\t\t\t\t\t\t\t\tlet hasSortedCells = false;\n\t\t\t\t\t\t\t\theaders.forEach((cell) => {\n\t\t\t\t\t\t\t\t\tconst key = cell.key;\n\t\t\t\t\t\t\t\t\tif (!key) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tconst sortDirection = cell.sortDirection;\n\t\t\t\t\t\t\t\t\tif (sortDirection === 'ASC' || sortDirection === 'DESC') {\n\t\t\t\t\t\t\t\t\t\tif (typeof cell.compareFn === 'function') {\n\t\t\t\t\t\t\t\t\t\t\tif (this.state._allowMultiSort || this.sortData.length === 0) {\n\t\t\t\t\t\t\t\t\t\t\t\tthis.sortData.push({ label: cell.label, key, compareFn: cell.compareFn, direction: sortDirection });\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\thasSortedCells = true;\n\t\t\t\t\t\t\t\t\t\t} else if (typeof cell.sort === 'function') {\n\t\t\t\t\t\t\t\t\t\t\tthis.setSortDirection(cell.sort, sortDirection);\n\t\t\t\t\t\t\t\t\t\t\tsetTimeout(() => this.updateSortedData({ key, label: cell.label, sortDirection }));\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tif (hasSortedCells) {\n\t\t\t\t\t\t\t\t\tsetTimeout(() => this.updateSortedData());\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tconst headers: KoliBriTableHeaders = nextValue as KoliBriTableHeaders;\n\t\t\t\t\t\t\theaders.horizontal?.forEach(applySort);\n\t\t\t\t\t\t\theaders.vertical?.forEach(applySort);\n\n\t\t\t\t\t\t\tif (headers.horizontal && headers.vertical && headers.horizontal?.length > 0 && headers.vertical?.length > 0) {\n\t\t\t\t\t\t\t\tthis.disableSort = true;\n\t\t\t\t\t\t\t\tdevHint(\n\t\t\t\t\t\t\t\t\t`Table: You can not sort the table data, if horizontal and vertical headers are defined at the same time. (https://github.com/public-ui/kolibri/issues/2372)`,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t@Watch('_label')\n\tpublic validateLabel(value?: LabelPropType): void {\n\t\tvalidateLabel(this, value, {\n\t\t\trequired: true,\n\t\t});\n\t}\n\n\t/**\n\t * @deprecated This property is deprecated and will be removed in the next major release.\n\t */\n\t@Watch('_minWidth')\n\tpublic validateMinWidth(value?: string): void {\n\t\twatchString(this, '_minWidth', value, {\n\t\t\tdefaultValue: undefined,\n\t\t});\n\t}\n\n\t@Watch('_selection')\n\tpublic validateSelection(value?: TableSelectionPropType): void {\n\t\tvalidateTableSelection(this, value);\n\t}\n\t@Watch('_on')\n\tpublic validateOn(value?: TableStatefulCallbacksPropType): void {\n\t\tvalidateTableStatefulCallbacks(this, value);\n\t}\n\n\tprivate readonly handlePagination: KoliBriPaginationButtonCallbacks = {\n\t\tonClick: (event: Event, page: number) => {\n\t\t\tif (typeof this.state._pagination._on?.onClick === 'function') {\n\t\t\t\tthis.state._pagination._on.onClick(event, page);\n\t\t\t}\n\t\t\tsetState(this, '_pagination', {\n\t\t\t\t...this.state._pagination,\n\t\t\t\t_page: page,\n\t\t\t});\n\t\t},\n\t\tonChangePage: (event: Event, page: number) => {\n\t\t\tif (typeof this.state._pagination._on?.onChangePage === 'function') {\n\t\t\t\tthis.state._pagination._on.onChangePage(event, page);\n\t\t\t}\n\t\t\tsetState(this, '_pagination', {\n\t\t\t\t...this.state._pagination,\n\t\t\t\t_page: page,\n\t\t\t});\n\t\t},\n\t\tonChangePageSize: (event: Event, pageSize: number) => {\n\t\t\tif (typeof this.state._pagination._on?.onChangePageSize === 'function') {\n\t\t\t\tthis.state._pagination._on.onChangePageSize(event, pageSize);\n\t\t\t}\n\t\t\tsetState(this, '_pagination', {\n\t\t\t\t...this.state._pagination,\n\t\t\t\t_pageSize: pageSize,\n\t\t\t});\n\t\t\tsetState(this, '_pageSize', pageSize);\n\t\t},\n\t};\n\n\t@Watch('_pagination')\n\tpublic validatePagination(value?: boolean | Stringified<KoliBriTablePaginationProps>): void {\n\t\ttry {\n\t\t\tvalue = parseJson<boolean | KoliBriTablePaginationProps>(value);\n\t\t\t// eslint-disable-next-line no-empty\n\t\t} catch (e) {\n\t\t\t// value behält den ursprünglichen Wert\n\t\t}\n\n\t\tthis.showPagination = paginationValidator(value);\n\n\t\twatchValidator<boolean | Stringified<KoliBriTablePaginationProps>>(\n\t\t\tthis,\n\t\t\t'_pagination',\n\t\t\tpaginationValidator,\n\t\t\tnew Set(['boolean', 'KoliBriTablePagination']),\n\t\t\tvalue,\n\t\t\t{\n\t\t\t\tdefaultValue: {\n\t\t\t\t\t_page: 1,\n\t\t\t\t\t_pageSize: 10,\n\t\t\t\t\t_max: 0,\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\t}\n\n\tprivate onSelectionChange = (event: Event): void => {\n\t\tevent.stopPropagation();\n\t};\n\n\tpublic componentDidLoad(): void {\n\t\tthis.tableWcRef?.addEventListener('kol-selection-change', this.onSelectionChange);\n\t}\n\n\tpublic disconnectedCallback(): void {\n\t\tthis.tableWcRef?.removeEventListener('kol-selection-change', this.onSelectionChange);\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateAllowMultiSort(this._allowMultiSort);\n\t\tthis.validateData(this._data);\n\t\tthis.validateDataFoot(this._dataFoot);\n\t\tthis.validateHeaders(this._headers);\n\t\tthis.validateLabel(this._label);\n\t\tthis.validateMinWidth(this._minWidth);\n\t\tthis.validatePagination(this._pagination);\n\t\tthis.validatePaginationPosition(this._paginationPosition);\n\t\tthis.validateSelection(this._selection);\n\t\tthis.validateOn(this._on);\n\t}\n\n\tprivate selectDisplayedData(data: KoliBriTableDataType[], pageSize: number, page: number): KoliBriTableDataType[] {\n\t\tif (typeof pageSize === 'number' && pageSize > 0 && typeof page === 'number' && page > 0) {\n\t\t\tthis.pageStartSlice = pageSize * (page - 1);\n\t\t\tthis.pageEndSlice = pageSize * page > data.length ? data.length : pageSize * page;\n\t\t\treturn data.slice(this.pageStartSlice, this.pageEndSlice);\n\t\t} else {\n\t\t\tthis.pageStartSlice = 0;\n\t\t\tthis.pageEndSlice = data.length;\n\t\t\treturn data;\n\t\t}\n\t}\n\n\t/**\n\t *\n\t * @param cell only used for old single sort. Can be removed when sort is removed.\n\t */\n\tprivate updateSortedData = (cell: KoliBriTableSelectedHead = this.sortedColumnHead) => {\n\t\tif (this.disableSort) {\n\t\t\tsetState(this, '_sortedData', this.state._data);\n\t\t\treturn;\n\t\t}\n\n\t\tlet sortedData: KoliBriTableDataType[] = [...this.state._data];\n\t\tif (this.sortData.length > 0) {\n\t\t\tsortedData.sort((a: KoliBriTableDataType, b: KoliBriTableDataType) => {\n\t\t\t\tfor (let index = 0; index < this.sortData.length; index++) {\n\t\t\t\t\tconst data = this.sortData[index];\n\t\t\t\t\tconst result = data.compareFn(a, b);\n\t\t\t\t\tif (result !== 0) {\n\t\t\t\t\t\treturn data.direction === 'ASC' ? result : -result;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn 0;\n\t\t\t});\n\t\t} else if (typeof this.sortFunction === 'function') {\n\t\t\tswitch (this.sortDirections.get(this.sortFunction)) {\n\t\t\t\tcase 'ASC':\n\t\t\t\t\tsortedData = this.sortFunction([...this.state._data]);\n\t\t\t\t\tthis.sortedColumnHead = { label: cell.label, key: cell.key, sortDirection: 'ASC' };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'DESC':\n\t\t\t\t\tsortedData = this.sortFunction([...this.state._data]).reverse();\n\t\t\t\t\tthis.sortedColumnHead = { label: cell.label, key: cell.key, sortDirection: 'DESC' };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'NOS':\n\t\t\t\tdefault:\n\t\t\t\t\tthis.sortedColumnHead = { label: '', key: '', sortDirection: 'NOS' };\n\t\t\t}\n\t\t}\n\t\tsetState(this, '_sortedData', sortedData);\n\t};\n\n\t/**\n\t * Renders the pagination controls for the table, showing the current visible data range\n\t * and providing navigation between different pages.\n\t *\n\t * @returns {JSX.Element} The rendered pagination controls including page range and navigation.\n\t */\n\tprivate renderPagination(position: 'top' | 'bottom'): JSX.Element {\n\t\tconst label = translate('kol-table-pagination-label', {\n\t\t\tplaceholders: {\n\t\t\t\tlabel: `${this.state._label} (${translate(`kol-pagination-position-${position}`)})`,\n\t\t\t},\n\t\t});\n\n\t\treturn (\n\t\t\t<div class=\"pagination\">\n\t\t\t\t<span>\n\t\t\t\t\t{translate('kol-table-visible-range', {\n\t\t\t\t\t\tplaceholders: {\n\t\t\t\t\t\t\tstart: this.pageEndSlice > 0 ? (this.pageStartSlice + 1).toString() : '0',\n\t\t\t\t\t\t\tend: this.pageEndSlice.toString(),\n\t\t\t\t\t\t\ttotal:\n\t\t\t\t\t\t\t\tthis.state._pagination && this.state._pagination._max > 0\n\t\t\t\t\t\t\t\t\t? this.state._pagination._max.toString()\n\t\t\t\t\t\t\t\t\t: Array.isArray(this.state._data)\n\t\t\t\t\t\t\t\t\t\t? this.state._data.length.toString()\n\t\t\t\t\t\t\t\t\t\t: '0',\n\t\t\t\t\t\t},\n\t\t\t\t\t})}\n\t\t\t\t</span>\n\t\t\t\t<div>\n\t\t\t\t\t<KolPaginationTag\n\t\t\t\t\t\t_boundaryCount={this.state._pagination._boundaryCount}\n\t\t\t\t\t\t_customClass={this.state._pagination._customClass}\n\t\t\t\t\t\t_on={this.handlePagination}\n\t\t\t\t\t\t_page={this.state._pagination._page}\n\t\t\t\t\t\t_pageSize={this.state._pagination._pageSize}\n\t\t\t\t\t\t_pageSizeOptions={this.state._pagination._pageSizeOptions || PAGINATION_OPTIONS}\n\t\t\t\t\t\t_siblingCount={this.state._pagination._siblingCount}\n\t\t\t\t\t\t_tooltipAlign=\"bottom\"\n\t\t\t\t\t\t_max={this.state._pagination._max || this.state._pagination._max || this.state._data.length}\n\t\t\t\t\t\t_label={label}\n\t\t\t\t\t></KolPaginationTag>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tprivate getHeaderCellSortState(headerCell: KoliBriTableHeaderCellWithLogic): KoliBriSortDirection | undefined {\n\t\tif (!this.disableSort && (typeof headerCell.compareFn === 'function' || typeof headerCell.sort === 'function')) {\n\t\t\tif (headerCell.key === this.sortedColumnHead.key) {\n\t\t\t\treturn this.sortedColumnHead.sortDirection;\n\t\t\t}\n\t\t\tif (headerCell.key) {\n\t\t\t\tconst data = this.sortData.find((value) => value.key === headerCell.key);\n\t\t\t\tif (data?.direction) {\n\t\t\t\t\treturn data.direction;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn 'NOS';\n\t\t}\n\t}\n\n\tprivate handleSort({ key }: SortEventPayload) {\n\t\tconst headerCell = [...(this.state._headers.horizontal || []).flat(), ...(this.state._headers.vertical || []).flat()].find((cell) => cell.key === key);\n\t\tif (headerCell) {\n\t\t\tthis.changeCellSort(headerCell);\n\t\t}\n\t}\n\n\tprivate getSelectedData(selectedKeys: string[] | string): null | KoliBriTableDataType | KoliBriTableDataType[] {\n\t\tconst selection = this.state._selection;\n\t\tif (selection) {\n\t\t\tconst keyPropertyName = selection.keyPropertyName ?? 'id';\n\t\t\tconst data = this.state._sortedData.filter((item) => selectedKeys.includes(item[keyPropertyName] as string));\n\t\t\tif (selection?.multiple === false) {\n\t\t\t\treturn data[0];\n\t\t\t}\n\n\t\t\tif (keyPropertyName) return data;\n\t\t}\n\t\treturn null;\n\t}\n\tprivate handleSelectionChange(event: Event, value: string[] | string): void {\n\t\tconst selection = this.state._selection;\n\t\tif (selection)\n\t\t\tthis.state = {\n\t\t\t\t...this.state,\n\t\t\t\t_selection: {\n\t\t\t\t\t...selection,\n\t\t\t\t\tselectedKeys: typeof value === 'object' ? value : [value],\n\t\t\t\t},\n\t\t\t};\n\t\tconst selectedData = this.getSelectedData(value);\n\n\t\ttryToDispatchKoliBriEvent('selection-change', this.host, selectedData);\n\n\t\tif (typeof this.state._on?.[Events.onSelectionChange] === 'function') {\n\t\t\tthis.state._on[Events.onSelectionChange](event, selectedData);\n\t\t}\n\t}\n\n\t@Method()\n\t// eslint-disable-next-line @typescript-eslint/require-await\n\tpublic async getSelection(): Promise<KoliBriTableDataType[] | KoliBriTableDataType | null> {\n\t\tconst selectedKeys: string[] = this.state._selection?.selectedKeys || [];\n\t\treturn this.getSelectedData(selectedKeys);\n\t}\n\n\tpublic render(): JSX.Element {\n\t\tconst displayedData: KoliBriTableDataType[] = this.selectDisplayedData(\n\t\t\tthis.state._sortedData,\n\t\t\tthis.showPagination ? (this.state._pagination?._pageSize ?? 10) : this.state._sortedData.length,\n\t\t\tthis.state._pagination._page || 1,\n\t\t);\n\t\tconst paginationTop = this._paginationPosition === 'top' || this._paginationPosition === 'both' ? this.renderPagination('top') : null;\n\t\tconst paginationBottom = this._paginationPosition === 'bottom' || this._paginationPosition === 'both' ? this.renderPagination('bottom') : null;\n\n\t\tconst headerCells: TableHeaderCells = {\n\t\t\thorizontal: this.state._headers.horizontal?.map((row) => row.map((cell) => ({ ...cell, sortDirection: this.getHeaderCellSortState(cell) }))),\n\t\t\tvertical: this.state._headers.vertical?.map((column) => column.map((cell) => ({ ...cell, sortDirection: this.getHeaderCellSortState(cell) }))),\n\t\t};\n\t\treturn (\n\t\t\t<Host class=\"kol-table-stateful\">\n\t\t\t\t{this.pageEndSlice > 0 && this.showPagination && paginationTop}\n\t\t\t\t<KolTableStatelessWcTag\n\t\t\t\t\tref={this.catchRef}\n\t\t\t\t\t_data={displayedData}\n\t\t\t\t\t_headerCells={headerCells}\n\t\t\t\t\t_label={this.state._label}\n\t\t\t\t\t_dataFoot={this.state._dataFoot}\n\t\t\t\t\t_minWidth={this.state._minWidth}\n\t\t\t\t\t_on={{\n\t\t\t\t\t\tonSort: (_: MouseEvent, payload: SortEventPayload) => {\n\t\t\t\t\t\t\tthis.handleSort(payload);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonSelectionChange: (event: Event, value: string[] | string) => {\n\t\t\t\t\t\t\tthis.handleSelectionChange(event, value);\n\t\t\t\t\t\t},\n\t\t\t\t\t}}\n\t\t\t\t\t_selection={this.state._selection}\n\t\t\t\t/>\n\t\t\t\t{this.pageEndSlice > 0 && this.showPagination && paginationBottom}\n\t\t\t</Host>\n\t\t);\n\t}\n}\n"],"version":3}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{_ as __rest}from"./tslib.es6-1173d062.js";import{h,F as Fragment}from"./index-4f5f6f87.js";import{c as clsx}from"./clsx-09a06a12.js";import{t as translate}from"./i18n-31adef87.js";import{g as KolIconTag,b as KolHeadingWcTag,c as KolButtonWcTag}from"./component-names-4cb1c62b.js";import{L as Log}from"./dev.utils-fab45cbc.js";const Icon=({ariaLabel:o,icon:a})=>h(Fragment,null,h("span",{class:"visually-hidden"},o),h(KolIconTag,{class:"heading-icon",_label:"",_icons:a})),AlertIcon=({type:o,label:a})=>{switch(o){case"error":return h(Icon,{ariaLabel:translate("kol-error"),icon:"codicon codicon-error",label:a});case"info":return h(Icon,{ariaLabel:translate("kol-info"),icon:"codicon codicon-info",label:a});case"warning":return h(Icon,{ariaLabel:translate("kol-warning"),icon:"codicon codicon-warning",label:a});case"success":return h(Icon,{ariaLabel:translate("kol-success"),icon:"codicon codicon-pass",label:a});default:return h(Icon,{ariaLabel:translate("kol-message"),icon:"codicon codicon-comment",label:a})}},AlertIcon$1=AlertIcon,KolAlertFc=(o,a)=>{const{class:l={},type:e="default",variant:c="msg",label:n,hasCloser:t,alert:s,onAlertTimeout:r,onCloserClick:i,level:d}=o,b=__rest(o,["class","type","variant","label","hasCloser","alert","onAlertTimeout","onCloserClick","level"]);if(s){try{Log.debug(["Navigator should vibrate ...",navigator.vibrate([100,75,100,75,100])])}catch(o){Log.debug("Navigator does not support vibration.")}setTimeout((()=>{null==r||r()}),1e4)}const g=Object.assign({class:clsx("kol-alert-wc","alert",e,c,{hasCloser:!!t},l),role:s?"alert":void 0},b);return h("div",Object.assign({},g),h("div",{class:"heading"},h(AlertIcon$1,{label:n,type:e}),h("div",{class:"heading-content"},n?h(KolHeadingWcTag,{_label:n,_level:d}):null,"msg"===c&&h("div",{class:"content"},a)),t&&h(KolButtonWcTag,{class:"close",_ariaDescription:(null==n?void 0:n.trim())||"",_hideLabel:!0,_icons:{left:{icon:"codicon codicon-close"}},_label:translate("kol-close-alert"),_on:{onClick:i},_tooltipAlign:"left"})),"card"===c&&h("div",{class:"content"},a))},KolAlertFc$1=KolAlertFc;export{KolAlertFc$1 as K};
4
+ import{_ as __rest}from"./tslib.es6-1173d062.js";import{h,F as Fragment}from"./index-5879a66b.js";import{c as clsx}from"./clsx-09a06a12.js";import{t as translate}from"./i18n-31adef87.js";import{g as KolIconTag,b as KolHeadingWcTag,c as KolButtonWcTag}from"./component-names-4cb1c62b.js";import{L as Log}from"./dev.utils-fab45cbc.js";const Icon=({ariaLabel:o,icon:a})=>h(Fragment,null,h("span",{class:"visually-hidden"},o),h(KolIconTag,{class:"heading-icon",_label:"",_icons:a})),AlertIcon=({type:o,label:a})=>{switch(o){case"error":return h(Icon,{ariaLabel:translate("kol-error"),icon:"codicon codicon-error",label:a});case"info":return h(Icon,{ariaLabel:translate("kol-info"),icon:"codicon codicon-info",label:a});case"warning":return h(Icon,{ariaLabel:translate("kol-warning"),icon:"codicon codicon-warning",label:a});case"success":return h(Icon,{ariaLabel:translate("kol-success"),icon:"codicon codicon-pass",label:a});default:return h(Icon,{ariaLabel:translate("kol-message"),icon:"codicon codicon-comment",label:a})}},AlertIcon$1=AlertIcon,KolAlertFc=(o,a)=>{const{class:l={},type:e="default",variant:c="msg",label:n,hasCloser:t,alert:s,onAlertTimeout:r,onCloserClick:i,level:d}=o,b=__rest(o,["class","type","variant","label","hasCloser","alert","onAlertTimeout","onCloserClick","level"]);if(s){try{Log.debug(["Navigator should vibrate ...",navigator.vibrate([100,75,100,75,100])])}catch(o){Log.debug("Navigator does not support vibration.")}setTimeout((()=>{null==r||r()}),1e4)}const g=Object.assign({class:clsx("kol-alert-wc","alert",e,c,{hasCloser:!!t},l),role:s?"alert":void 0},b);return h("div",Object.assign({},g),h("div",{class:"heading"},h(AlertIcon$1,{label:n,type:e}),h("div",{class:"heading-content"},n?h(KolHeadingWcTag,{_label:n,_level:d}):null,"msg"===c&&h("div",{class:"content"},a)),t&&h(KolButtonWcTag,{class:"close",_ariaDescription:(null==n?void 0:n.trim())||"",_hideLabel:!0,_icons:{left:{icon:"codicon codicon-close"}},_label:translate("kol-close-alert"),_on:{onClick:i},_tooltipAlign:"left"})),"card"===c&&h("div",{class:"content"},a))},KolAlertFc$1=KolAlertFc;export{KolAlertFc$1 as K};
@@ -1 +1 @@
1
- {"file":"Alert-7cfc4360.js","mappings":";;;;;;;;;;AAUA,MAAM,IAAI,GAA4D,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;IACzF,QACC;QACC,YAAM,KAAK,EAAC,iBAAiB,IAAE,SAAS,CAAQ;QAChD,EAAC,UAAU,IAAC,KAAK,EAAC,cAAc,EAAC,MAAM,EAAC,EAAE,EAAC,MAAM,EAAE,IAAI,GAAI,CACzD,EACF;AACH,CAAC,CAAC;AAEF,MAAM,SAAS,GAA6C,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;IAC3E,QAAQ,IAAI;QACX,KAAK,OAAO;YACX,OAAO,EAAC,IAAI,IAAC,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,EAAE,IAAI,EAAC,uBAAuB,EAAC,KAAK,EAAE,KAAK,GAAI,CAAC;QAC/F,KAAK,MAAM;YACV,OAAO,EAAC,IAAI,IAAC,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI,EAAC,sBAAsB,EAAC,KAAK,EAAE,KAAK,GAAI,CAAC;QAC7F,KAAK,SAAS;YACb,OAAO,EAAC,IAAI,IAAC,SAAS,EAAE,SAAS,CAAC,aAAa,CAAC,EAAE,IAAI,EAAC,yBAAyB,EAAC,KAAK,EAAE,KAAK,GAAI,CAAC;QACnG,KAAK,SAAS;YACb,OAAO,EAAC,IAAI,IAAC,SAAS,EAAE,SAAS,CAAC,aAAa,CAAC,EAAE,IAAI,EAAC,sBAAsB,EAAC,KAAK,EAAE,KAAK,GAAI,CAAC;QAChG;YACC,OAAO,EAAC,IAAI,IAAC,SAAS,EAAE,SAAS,CAAC,aAAa,CAAC,EAAE,IAAI,EAAC,yBAAyB,EAAC,KAAK,EAAE,KAAK,GAAI,CAAC;KACnG;AACF,CAAC,CAAC;AAEF,oBAAe,SAAS;;ACnBxB,MAAM,UAAU,GAAwB,CAAC,KAAK,EAAE,QAAQ;IACvD,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,EAAE,EAAE,IAAI,GAAG,SAAS,EAAE,OAAO,GAAG,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,KAAK,KAAe,KAAK,EAAf,KAAK,UAAK,KAAK,EAA9I,uGAAsI,CAAQ,CAAC;IAErJ,IAAI,KAAK,EAAE;QAKV,IAAI;YACH,GAAG,CAAC,KAAK,CAAC,CAAC,8BAA8B,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACxF;QAAC,OAAO,CAAC,EAAE;YACX,GAAG,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;SACnD;QAED,UAAU,CAAC;YACV,cAAc,aAAd,cAAc,uBAAd,cAAc,EAAI,CAAC;SACnB,EAAE,KAAK,CAAC,CAAC;KACV;IAED,MAAM,SAAS,mBACd,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,UAAU,CAAC,EAC3F,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS,IAC9B,KAAK,CACR,CAAC;IAEF,QACC,2BAAS,SAAS;QACjB,WAAK,KAAK,EAAC,SAAS;YACnB,EAACA,WAAS,IAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAI;YACvC,WAAK,KAAK,EAAC,iBAAiB;gBAC1B,KAAK,GAAG,EAAC,eAAe,IAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAI,GAAG,IAAI;gBAChE,OAAO,KAAK,KAAK,IAAI,WAAK,KAAK,EAAC,SAAS,IAAE,QAAQ,CAAO,CACtD;YACL,SAAS,KACT,EAAC,cAAc,IACd,KAAK,EAAC,OAAO,EACb,gBAAgB,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,EAAE,KAAI,EAAE,EACrC,UAAU,QACV,MAAM,EAAE;oBACP,IAAI,EAAE;wBACL,IAAI,EAAE,uBAAuB;qBAC7B;iBACD,EACD,MAAM,EAAE,SAAS,CAAC,iBAAiB,CAAC,EACpC,GAAG,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,EAC/B,aAAa,EAAC,MAAM,GACH,CAClB,CACI;QACL,OAAO,KAAK,MAAM,IAAI,WAAK,KAAK,EAAC,SAAS,IAAE,QAAQ,CAAO,CACvD,EACL;AACH,CAAC,CAAC;AAEF,qBAAe,UAAU;;;;","names":["AlertIcon"],"sources":["src/functional-components/AlertIcon/AlertIcon.tsx","src/functional-components/Alert/Alert.tsx"],"sourcesContent":["import { Fragment, type FunctionalComponent as FC, h } from '@stencil/core';\nimport { KolIconTag } from '../../core/component-names';\nimport type { AlertType } from '../../schema';\nimport { translate } from '../../i18n';\n\n/**\n * The icon uses a visually-hidden span instead of an aria-label because the Alert might be referenced as content for aria-describedby.\n * In this scenario, Firefox with NVDA does not properly read the aria-label, so the visually-hidden span ensures correct screen reader behavior.\n * @see https://github.com/public-ui/kolibri/issues/7119\n */\nconst Icon: FC<{ ariaLabel: string; icon: string; label?: string }> = ({ ariaLabel, icon }) => {\n\treturn (\n\t\t<>\n\t\t\t<span class=\"visually-hidden\">{ariaLabel}</span>\n\t\t\t<KolIconTag class=\"heading-icon\" _label=\"\" _icons={icon} />\n\t\t</>\n\t);\n};\n\nconst AlertIcon: FC<{ label?: string; type?: AlertType }> = ({ type, label }) => {\n\tswitch (type) {\n\t\tcase 'error':\n\t\t\treturn <Icon ariaLabel={translate('kol-error')} icon=\"codicon codicon-error\" label={label} />;\n\t\tcase 'info':\n\t\t\treturn <Icon ariaLabel={translate('kol-info')} icon=\"codicon codicon-info\" label={label} />;\n\t\tcase 'warning':\n\t\t\treturn <Icon ariaLabel={translate('kol-warning')} icon=\"codicon codicon-warning\" label={label} />;\n\t\tcase 'success':\n\t\t\treturn <Icon ariaLabel={translate('kol-success')} icon=\"codicon codicon-pass\" label={label} />;\n\t\tdefault:\n\t\t\treturn <Icon ariaLabel={translate('kol-message')} icon=\"codicon codicon-comment\" label={label} />;\n\t}\n};\n\nexport default AlertIcon;\n","import { h, type FunctionalComponent as FC } from '@stencil/core';\nimport type { JSXBase } from '@stencil/core/internal';\nimport clsx from 'clsx';\nimport type { InternalAlertProps } from '../../schema';\nimport { Log } from '../../schema';\nimport { translate } from '../../i18n';\nimport AlertIcon from '../AlertIcon';\nimport { KolButtonWcTag, KolHeadingWcTag } from '../../core/component-names';\n\nexport type KolAlertFcProps = JSXBase.HTMLAttributes<HTMLDivElement> &\n\tPartial<Omit<InternalAlertProps, 'on'>> & {\n\t\tonCloserClick?: () => void;\n\t\tonAlertTimeout?: () => void;\n\t};\n\nconst KolAlertFc: FC<KolAlertFcProps> = (props, children) => {\n\tconst { class: classNames = {}, type = 'default', variant = 'msg', label, hasCloser, alert, onAlertTimeout, onCloserClick, level, ...other } = props;\n\n\tif (alert) {\n\t\t/**\n\t\t * - https://developer.mozilla.org/de/docs/Web/API/Navigator/vibrate\n\t\t * - https://googlechrome.github.io/samples/vibration/\n\t\t */\n\t\ttry {\n\t\t\tLog.debug(['Navigator should vibrate ...', navigator.vibrate([100, 75, 100, 75, 100])]);\n\t\t} catch (e) {\n\t\t\tLog.debug('Navigator does not support vibration.');\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tonAlertTimeout?.();\n\t\t}, 10000);\n\t}\n\n\tconst rootProps: Partial<JSXBase.HTMLAttributes<HTMLDivElement>> = {\n\t\tclass: clsx('kol-alert-wc', 'alert', type, variant, { hasCloser: !!hasCloser }, classNames),\n\t\trole: alert ? 'alert' : undefined,\n\t\t...other,\n\t};\n\n\treturn (\n\t\t<div {...rootProps}>\n\t\t\t<div class=\"heading\">\n\t\t\t\t<AlertIcon label={label} type={type} />\n\t\t\t\t<div class=\"heading-content\">\n\t\t\t\t\t{label ? <KolHeadingWcTag _label={label} _level={level} /> : null}\n\t\t\t\t\t{variant === 'msg' && <div class=\"content\">{children}</div>}\n\t\t\t\t</div>\n\t\t\t\t{hasCloser && (\n\t\t\t\t\t<KolButtonWcTag\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t_ariaDescription={label?.trim() || ''}\n\t\t\t\t\t\t_hideLabel\n\t\t\t\t\t\t_icons={{\n\t\t\t\t\t\t\tleft: {\n\t\t\t\t\t\t\t\ticon: 'codicon codicon-close',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}}\n\t\t\t\t\t\t_label={translate('kol-close-alert')}\n\t\t\t\t\t\t_on={{ onClick: onCloserClick }}\n\t\t\t\t\t\t_tooltipAlign=\"left\"\n\t\t\t\t\t></KolButtonWcTag>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{variant === 'card' && <div class=\"content\">{children}</div>}\n\t\t</div>\n\t);\n};\n\nexport default KolAlertFc;\n"],"version":3}
1
+ {"file":"Alert-69d3fb7c.js","mappings":";;;;;;;;;;AAUA,MAAM,IAAI,GAA4D,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;IACzF,QACC;QACC,YAAM,KAAK,EAAC,iBAAiB,IAAE,SAAS,CAAQ;QAChD,EAAC,UAAU,IAAC,KAAK,EAAC,cAAc,EAAC,MAAM,EAAC,EAAE,EAAC,MAAM,EAAE,IAAI,GAAI,CACzD,EACF;AACH,CAAC,CAAC;AAEF,MAAM,SAAS,GAA6C,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;IAC3E,QAAQ,IAAI;QACX,KAAK,OAAO;YACX,OAAO,EAAC,IAAI,IAAC,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,EAAE,IAAI,EAAC,uBAAuB,EAAC,KAAK,EAAE,KAAK,GAAI,CAAC;QAC/F,KAAK,MAAM;YACV,OAAO,EAAC,IAAI,IAAC,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI,EAAC,sBAAsB,EAAC,KAAK,EAAE,KAAK,GAAI,CAAC;QAC7F,KAAK,SAAS;YACb,OAAO,EAAC,IAAI,IAAC,SAAS,EAAE,SAAS,CAAC,aAAa,CAAC,EAAE,IAAI,EAAC,yBAAyB,EAAC,KAAK,EAAE,KAAK,GAAI,CAAC;QACnG,KAAK,SAAS;YACb,OAAO,EAAC,IAAI,IAAC,SAAS,EAAE,SAAS,CAAC,aAAa,CAAC,EAAE,IAAI,EAAC,sBAAsB,EAAC,KAAK,EAAE,KAAK,GAAI,CAAC;QAChG;YACC,OAAO,EAAC,IAAI,IAAC,SAAS,EAAE,SAAS,CAAC,aAAa,CAAC,EAAE,IAAI,EAAC,yBAAyB,EAAC,KAAK,EAAE,KAAK,GAAI,CAAC;KACnG;AACF,CAAC,CAAC;AAEF,oBAAe,SAAS;;ACnBxB,MAAM,UAAU,GAAwB,CAAC,KAAK,EAAE,QAAQ;IACvD,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,EAAE,EAAE,IAAI,GAAG,SAAS,EAAE,OAAO,GAAG,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,KAAK,KAAe,KAAK,EAAf,KAAK,UAAK,KAAK,EAA9I,uGAAsI,CAAQ,CAAC;IAErJ,IAAI,KAAK,EAAE;QAKV,IAAI;YACH,GAAG,CAAC,KAAK,CAAC,CAAC,8BAA8B,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACxF;QAAC,OAAO,CAAC,EAAE;YACX,GAAG,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;SACnD;QAED,UAAU,CAAC;YACV,cAAc,aAAd,cAAc,uBAAd,cAAc,EAAI,CAAC;SACnB,EAAE,KAAK,CAAC,CAAC;KACV;IAED,MAAM,SAAS,mBACd,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,UAAU,CAAC,EAC3F,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS,IAC9B,KAAK,CACR,CAAC;IAEF,QACC,2BAAS,SAAS;QACjB,WAAK,KAAK,EAAC,SAAS;YACnB,EAACA,WAAS,IAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAI;YACvC,WAAK,KAAK,EAAC,iBAAiB;gBAC1B,KAAK,GAAG,EAAC,eAAe,IAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAI,GAAG,IAAI;gBAChE,OAAO,KAAK,KAAK,IAAI,WAAK,KAAK,EAAC,SAAS,IAAE,QAAQ,CAAO,CACtD;YACL,SAAS,KACT,EAAC,cAAc,IACd,KAAK,EAAC,OAAO,EACb,gBAAgB,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,EAAE,KAAI,EAAE,EACrC,UAAU,QACV,MAAM,EAAE;oBACP,IAAI,EAAE;wBACL,IAAI,EAAE,uBAAuB;qBAC7B;iBACD,EACD,MAAM,EAAE,SAAS,CAAC,iBAAiB,CAAC,EACpC,GAAG,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,EAC/B,aAAa,EAAC,MAAM,GACH,CAClB,CACI;QACL,OAAO,KAAK,MAAM,IAAI,WAAK,KAAK,EAAC,SAAS,IAAE,QAAQ,CAAO,CACvD,EACL;AACH,CAAC,CAAC;AAEF,qBAAe,UAAU;;;;","names":["AlertIcon"],"sources":["src/functional-components/AlertIcon/AlertIcon.tsx","src/functional-components/Alert/Alert.tsx"],"sourcesContent":["import { Fragment, type FunctionalComponent as FC, h } from '@stencil/core';\nimport { KolIconTag } from '../../core/component-names';\nimport type { AlertType } from '../../schema';\nimport { translate } from '../../i18n';\n\n/**\n * The icon uses a visually-hidden span instead of an aria-label because the Alert might be referenced as content for aria-describedby.\n * In this scenario, Firefox with NVDA does not properly read the aria-label, so the visually-hidden span ensures correct screen reader behavior.\n * @see https://github.com/public-ui/kolibri/issues/7119\n */\nconst Icon: FC<{ ariaLabel: string; icon: string; label?: string }> = ({ ariaLabel, icon }) => {\n\treturn (\n\t\t<>\n\t\t\t<span class=\"visually-hidden\">{ariaLabel}</span>\n\t\t\t<KolIconTag class=\"heading-icon\" _label=\"\" _icons={icon} />\n\t\t</>\n\t);\n};\n\nconst AlertIcon: FC<{ label?: string; type?: AlertType }> = ({ type, label }) => {\n\tswitch (type) {\n\t\tcase 'error':\n\t\t\treturn <Icon ariaLabel={translate('kol-error')} icon=\"codicon codicon-error\" label={label} />;\n\t\tcase 'info':\n\t\t\treturn <Icon ariaLabel={translate('kol-info')} icon=\"codicon codicon-info\" label={label} />;\n\t\tcase 'warning':\n\t\t\treturn <Icon ariaLabel={translate('kol-warning')} icon=\"codicon codicon-warning\" label={label} />;\n\t\tcase 'success':\n\t\t\treturn <Icon ariaLabel={translate('kol-success')} icon=\"codicon codicon-pass\" label={label} />;\n\t\tdefault:\n\t\t\treturn <Icon ariaLabel={translate('kol-message')} icon=\"codicon codicon-comment\" label={label} />;\n\t}\n};\n\nexport default AlertIcon;\n","import { h, type FunctionalComponent as FC } from '@stencil/core';\nimport type { JSXBase } from '@stencil/core/internal';\nimport clsx from 'clsx';\nimport type { InternalAlertProps } from '../../schema';\nimport { Log } from '../../schema';\nimport { translate } from '../../i18n';\nimport AlertIcon from '../AlertIcon';\nimport { KolButtonWcTag, KolHeadingWcTag } from '../../core/component-names';\n\nexport type KolAlertFcProps = JSXBase.HTMLAttributes<HTMLDivElement> &\n\tPartial<Omit<InternalAlertProps, 'on'>> & {\n\t\tonCloserClick?: () => void;\n\t\tonAlertTimeout?: () => void;\n\t};\n\nconst KolAlertFc: FC<KolAlertFcProps> = (props, children) => {\n\tconst { class: classNames = {}, type = 'default', variant = 'msg', label, hasCloser, alert, onAlertTimeout, onCloserClick, level, ...other } = props;\n\n\tif (alert) {\n\t\t/**\n\t\t * - https://developer.mozilla.org/de/docs/Web/API/Navigator/vibrate\n\t\t * - https://googlechrome.github.io/samples/vibration/\n\t\t */\n\t\ttry {\n\t\t\tLog.debug(['Navigator should vibrate ...', navigator.vibrate([100, 75, 100, 75, 100])]);\n\t\t} catch (e) {\n\t\t\tLog.debug('Navigator does not support vibration.');\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tonAlertTimeout?.();\n\t\t}, 10000);\n\t}\n\n\tconst rootProps: Partial<JSXBase.HTMLAttributes<HTMLDivElement>> = {\n\t\tclass: clsx('kol-alert-wc', 'alert', type, variant, { hasCloser: !!hasCloser }, classNames),\n\t\trole: alert ? 'alert' : undefined,\n\t\t...other,\n\t};\n\n\treturn (\n\t\t<div {...rootProps}>\n\t\t\t<div class=\"heading\">\n\t\t\t\t<AlertIcon label={label} type={type} />\n\t\t\t\t<div class=\"heading-content\">\n\t\t\t\t\t{label ? <KolHeadingWcTag _label={label} _level={level} /> : null}\n\t\t\t\t\t{variant === 'msg' && <div class=\"content\">{children}</div>}\n\t\t\t\t</div>\n\t\t\t\t{hasCloser && (\n\t\t\t\t\t<KolButtonWcTag\n\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t_ariaDescription={label?.trim() || ''}\n\t\t\t\t\t\t_hideLabel\n\t\t\t\t\t\t_icons={{\n\t\t\t\t\t\t\tleft: {\n\t\t\t\t\t\t\t\ticon: 'codicon codicon-close',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}}\n\t\t\t\t\t\t_label={translate('kol-close-alert')}\n\t\t\t\t\t\t_on={{ onClick: onCloserClick }}\n\t\t\t\t\t\t_tooltipAlign=\"left\"\n\t\t\t\t\t></KolButtonWcTag>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{variant === 'card' && <div class=\"content\">{children}</div>}\n\t\t</div>\n\t);\n};\n\nexport default KolAlertFc;\n"],"version":3}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{_ as __rest}from"./tslib.es6-1173d062.js";import{h}from"./index-4f5f6f87.js";import{c as clsx}from"./clsx-09a06a12.js";import{b as KolHeadingWcTag,c as KolButtonWcTag}from"./component-names-4cb1c62b.js";const KolCollapsibleFc=(l,o)=>{const{id:s,class:a,label:e,level:i=1,disabled:n,open:c,onClick:d,HeadingProps:r={},HeadingButtonProps:t={},ContentProps:p={}}=l,b=__rest(l,["id","class","label","level","disabled","open","onClick","HeadingProps","HeadingButtonProps","ContentProps"]),_=c?"remove":"add";return h("div",Object.assign({id:s,class:clsx("collapsible",{disabled:!0===n,open:!0===c},a)},b),h(KolHeadingWcTag,{ref:null==r?void 0:r.ref,_label:"",_level:i,class:clsx("collapsible__heading",null==r?void 0:r.class)},h(KolButtonWcTag,{class:clsx("collapsible__heading-button",null==t?void 0:t.class),ref:null==t?void 0:t.ref,slot:"expert",_ariaControls:`${s}-control`,_ariaExpanded:c,_disabled:n,_icons:(null==t?void 0:t._icons)||`codicon codicon-${_}`,_label:e,_on:{onClick:d}})),h("div",{class:clsx("collapsible__wrapper",null==p?void 0:p.wrapperClass)},h("div",{class:clsx("collapsible__wrapper-animation",null==p?void 0:p.animationClass)},h("div",{"aria-hidden":!1===c?"true":void 0,class:clsx("collapsible__content",null==p?void 0:p.class),id:`${s}-control`},o))))},KolCollapsibleFc$1=KolCollapsibleFc;export{KolCollapsibleFc$1 as K};
4
+ import{_ as __rest}from"./tslib.es6-1173d062.js";import{h}from"./index-5879a66b.js";import{c as clsx}from"./clsx-09a06a12.js";import{b as KolHeadingWcTag,c as KolButtonWcTag}from"./component-names-4cb1c62b.js";const KolCollapsibleFc=(l,o)=>{const{id:s,class:a,label:e,level:i=1,disabled:n,open:c,onClick:d,HeadingProps:r={},HeadingButtonProps:t={},ContentProps:p={}}=l,b=__rest(l,["id","class","label","level","disabled","open","onClick","HeadingProps","HeadingButtonProps","ContentProps"]),_=c?"remove":"add";return h("div",Object.assign({id:s,class:clsx("collapsible",{disabled:!0===n,open:!0===c},a)},b),h(KolHeadingWcTag,{ref:null==r?void 0:r.ref,_label:"",_level:i,class:clsx("collapsible__heading",null==r?void 0:r.class)},h(KolButtonWcTag,{class:clsx("collapsible__heading-button",null==t?void 0:t.class),ref:null==t?void 0:t.ref,slot:"expert",_ariaControls:`${s}-control`,_ariaExpanded:c,_disabled:n,_icons:(null==t?void 0:t._icons)||`codicon codicon-${_}`,_label:e,_on:{onClick:d}})),h("div",{class:clsx("collapsible__wrapper",null==p?void 0:p.wrapperClass)},h("div",{class:clsx("collapsible__wrapper-animation",null==p?void 0:p.animationClass)},h("div",{"aria-hidden":!1===c?"true":void 0,class:clsx("collapsible__content",null==p?void 0:p.class),id:`${s}-control`},o))))},KolCollapsibleFc$1=KolCollapsibleFc;export{KolCollapsibleFc$1 as K};
@@ -1 +1 @@
1
- {"file":"Collapsible-43a6407e.js","mappings":";;;;;;;;AAsCA,MAAM,gBAAgB,GAAyB,CAAC,KAAK,EAAE,QAAQ;IAC9D,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,GAAG,EAAE,EAAE,kBAAkB,GAAG,EAAE,EAAE,YAAY,GAAG,EAAE,KAAe,KAAK,EAAf,KAAK,UAAK,KAAK,EAArJ,sHAA6I,CAAQ,CAAC;IAC5J,MAAM,IAAI,GAAG,IAAI,GAAG,QAAQ,GAAG,KAAK,CAAC;IAErC,QACC,yBACC,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,IAAI,CACV,aAAa,EACb;YACC,QAAQ,EAAE,QAAQ,KAAK,IAAI;YAC3B,IAAI,EAAE,IAAI,KAAK,IAAI;SACnB,EACD,UAAU,CACV,IACG,KAAK;QAET,EAAC,eAAe,IAAC,GAAG,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,GAAG,EAAE,MAAM,EAAC,EAAE,EAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,sBAAsB,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,CAAC;YACzH,EAAC,cAAc,IACd,KAAK,EAAE,IAAI,CAAC,6BAA6B,EAAE,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,KAAK,CAAC,EACrE,GAAG,EAAE,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,GAAG,EAC5B,IAAI,EAAC,QAAQ,EACb,aAAa,EAAE,GAAG,EAAE,UAAU,EAC9B,aAAa,EAAE,IAAI,EACnB,SAAS,EAAE,QAAQ,EACnB,MAAM,EAAE,CAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,MAAM,KAAI,mBAAmB,IAAI,EAAE,EAC/D,MAAM,EAAE,KAAK,EACb,GAAG,EAAE,EAAE,OAAO,EAAE,GACC,CACD;QAClB,WAAK,KAAK,EAAE,IAAI,CAAC,sBAAsB,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,YAAY,CAAC;YACnE,WAAK,KAAK,EAAE,IAAI,CAAC,gCAAgC,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,cAAc,CAAC;gBAC/E,0BAAkB,IAAI,KAAK,KAAK,GAAG,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,sBAAsB,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,IAClI,QAAQ,CACJ,CACD,CACD,CACD,EACL;AACH,CAAC,CAAC;AAEF,2BAAe,gBAAgB;;;;","names":[],"sources":["src/functional-components/Collapsible/Collapsible.tsx"],"sourcesContent":["import { h } from '@stencil/core';\nimport type { FunctionalComponent as FC } from '@stencil/core';\nimport type { JSXBase } from '@stencil/core/internal';\nimport clsx from 'clsx';\nimport { KolButtonWcTag, KolHeadingWcTag } from '../../core/component-names';\nimport type { HeadingLevel, IconsPropType } from '../../schema';\n\ntype ClassType =\n\t| string\n\t| {\n\t\t\t[className: string]: boolean;\n\t };\n\nexport type CollapsibleProps = Omit<JSXBase.HTMLAttributes<HTMLElement>, 'id'> & {\n\tid: string;\n\topen?: boolean;\n\tdisabled?: boolean;\n\tlevel?: HeadingLevel;\n\tlabel: string;\n\n\tHeadingProps?: {\n\t\tref?: ((elm?: HTMLKolHeadingWcElement | undefined) => void) | undefined;\n\t\tclass?: ClassType;\n\t};\n\n\tHeadingButtonProps?: {\n\t\tref?: ((elm?: HTMLKolButtonWcElement | undefined) => void) | undefined;\n\t\tclass?: ClassType;\n\t\t_icons?: IconsPropType;\n\t};\n\n\tContentProps?: {\n\t\tclass?: ClassType;\n\t\tanimationClass?: ClassType;\n\t\twrapperClass?: ClassType;\n\t};\n};\n\nconst KolCollapsibleFc: FC<CollapsibleProps> = (props, children) => {\n\tconst { id, class: classNames, label, level = 1, disabled, open, onClick, HeadingProps = {}, HeadingButtonProps = {}, ContentProps = {}, ...other } = props;\n\tconst icon = open ? 'remove' : 'add';\n\n\treturn (\n\t\t<div\n\t\t\tid={id}\n\t\t\tclass={clsx(\n\t\t\t\t'collapsible',\n\t\t\t\t{\n\t\t\t\t\tdisabled: disabled === true,\n\t\t\t\t\topen: open === true,\n\t\t\t\t},\n\t\t\t\tclassNames,\n\t\t\t)}\n\t\t\t{...other}\n\t\t>\n\t\t\t<KolHeadingWcTag ref={HeadingProps?.ref} _label=\"\" _level={level} class={clsx('collapsible__heading', HeadingProps?.class)}>\n\t\t\t\t<KolButtonWcTag\n\t\t\t\t\tclass={clsx('collapsible__heading-button', HeadingButtonProps?.class)}\n\t\t\t\t\tref={HeadingButtonProps?.ref}\n\t\t\t\t\tslot=\"expert\"\n\t\t\t\t\t_ariaControls={`${id}-control`}\n\t\t\t\t\t_ariaExpanded={open}\n\t\t\t\t\t_disabled={disabled}\n\t\t\t\t\t_icons={HeadingButtonProps?._icons || `codicon codicon-${icon}`}\n\t\t\t\t\t_label={label}\n\t\t\t\t\t_on={{ onClick }}\n\t\t\t\t></KolButtonWcTag>\n\t\t\t</KolHeadingWcTag>\n\t\t\t<div class={clsx('collapsible__wrapper', ContentProps?.wrapperClass)}>\n\t\t\t\t<div class={clsx('collapsible__wrapper-animation', ContentProps?.animationClass)}>\n\t\t\t\t\t<div aria-hidden={open === false ? 'true' : undefined} class={clsx('collapsible__content', ContentProps?.class)} id={`${id}-control`}>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default KolCollapsibleFc;\n"],"version":3}
1
+ {"file":"Collapsible-a6f9d7da.js","mappings":";;;;;;;;AAsCA,MAAM,gBAAgB,GAAyB,CAAC,KAAK,EAAE,QAAQ;IAC9D,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,GAAG,EAAE,EAAE,kBAAkB,GAAG,EAAE,EAAE,YAAY,GAAG,EAAE,KAAe,KAAK,EAAf,KAAK,UAAK,KAAK,EAArJ,sHAA6I,CAAQ,CAAC;IAC5J,MAAM,IAAI,GAAG,IAAI,GAAG,QAAQ,GAAG,KAAK,CAAC;IAErC,QACC,yBACC,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,IAAI,CACV,aAAa,EACb;YACC,QAAQ,EAAE,QAAQ,KAAK,IAAI;YAC3B,IAAI,EAAE,IAAI,KAAK,IAAI;SACnB,EACD,UAAU,CACV,IACG,KAAK;QAET,EAAC,eAAe,IAAC,GAAG,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,GAAG,EAAE,MAAM,EAAC,EAAE,EAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,sBAAsB,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,CAAC;YACzH,EAAC,cAAc,IACd,KAAK,EAAE,IAAI,CAAC,6BAA6B,EAAE,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,KAAK,CAAC,EACrE,GAAG,EAAE,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,GAAG,EAC5B,IAAI,EAAC,QAAQ,EACb,aAAa,EAAE,GAAG,EAAE,UAAU,EAC9B,aAAa,EAAE,IAAI,EACnB,SAAS,EAAE,QAAQ,EACnB,MAAM,EAAE,CAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,MAAM,KAAI,mBAAmB,IAAI,EAAE,EAC/D,MAAM,EAAE,KAAK,EACb,GAAG,EAAE,EAAE,OAAO,EAAE,GACC,CACD;QAClB,WAAK,KAAK,EAAE,IAAI,CAAC,sBAAsB,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,YAAY,CAAC;YACnE,WAAK,KAAK,EAAE,IAAI,CAAC,gCAAgC,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,cAAc,CAAC;gBAC/E,0BAAkB,IAAI,KAAK,KAAK,GAAG,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,sBAAsB,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,IAClI,QAAQ,CACJ,CACD,CACD,CACD,EACL;AACH,CAAC,CAAC;AAEF,2BAAe,gBAAgB;;;;","names":[],"sources":["src/functional-components/Collapsible/Collapsible.tsx"],"sourcesContent":["import { h } from '@stencil/core';\nimport type { FunctionalComponent as FC } from '@stencil/core';\nimport type { JSXBase } from '@stencil/core/internal';\nimport clsx from 'clsx';\nimport { KolButtonWcTag, KolHeadingWcTag } from '../../core/component-names';\nimport type { HeadingLevel, IconsPropType } from '../../schema';\n\ntype ClassType =\n\t| string\n\t| {\n\t\t\t[className: string]: boolean;\n\t };\n\nexport type CollapsibleProps = Omit<JSXBase.HTMLAttributes<HTMLElement>, 'id'> & {\n\tid: string;\n\topen?: boolean;\n\tdisabled?: boolean;\n\tlevel?: HeadingLevel;\n\tlabel: string;\n\n\tHeadingProps?: {\n\t\tref?: ((elm?: HTMLKolHeadingWcElement | undefined) => void) | undefined;\n\t\tclass?: ClassType;\n\t};\n\n\tHeadingButtonProps?: {\n\t\tref?: ((elm?: HTMLKolButtonWcElement | undefined) => void) | undefined;\n\t\tclass?: ClassType;\n\t\t_icons?: IconsPropType;\n\t};\n\n\tContentProps?: {\n\t\tclass?: ClassType;\n\t\tanimationClass?: ClassType;\n\t\twrapperClass?: ClassType;\n\t};\n};\n\nconst KolCollapsibleFc: FC<CollapsibleProps> = (props, children) => {\n\tconst { id, class: classNames, label, level = 1, disabled, open, onClick, HeadingProps = {}, HeadingButtonProps = {}, ContentProps = {}, ...other } = props;\n\tconst icon = open ? 'remove' : 'add';\n\n\treturn (\n\t\t<div\n\t\t\tid={id}\n\t\t\tclass={clsx(\n\t\t\t\t'collapsible',\n\t\t\t\t{\n\t\t\t\t\tdisabled: disabled === true,\n\t\t\t\t\topen: open === true,\n\t\t\t\t},\n\t\t\t\tclassNames,\n\t\t\t)}\n\t\t\t{...other}\n\t\t>\n\t\t\t<KolHeadingWcTag ref={HeadingProps?.ref} _label=\"\" _level={level} class={clsx('collapsible__heading', HeadingProps?.class)}>\n\t\t\t\t<KolButtonWcTag\n\t\t\t\t\tclass={clsx('collapsible__heading-button', HeadingButtonProps?.class)}\n\t\t\t\t\tref={HeadingButtonProps?.ref}\n\t\t\t\t\tslot=\"expert\"\n\t\t\t\t\t_ariaControls={`${id}-control`}\n\t\t\t\t\t_ariaExpanded={open}\n\t\t\t\t\t_disabled={disabled}\n\t\t\t\t\t_icons={HeadingButtonProps?._icons || `codicon codicon-${icon}`}\n\t\t\t\t\t_label={label}\n\t\t\t\t\t_on={{ onClick }}\n\t\t\t\t></KolButtonWcTag>\n\t\t\t</KolHeadingWcTag>\n\t\t\t<div class={clsx('collapsible__wrapper', ContentProps?.wrapperClass)}>\n\t\t\t\t<div class={clsx('collapsible__wrapper-animation', ContentProps?.animationClass)}>\n\t\t\t\t\t<div aria-hidden={open === false ? 'true' : undefined} class={clsx('collapsible__content', ContentProps?.class)} id={`${id}-control`}>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default KolCollapsibleFc;\n"],"version":3}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{c as clsx}from"./clsx-09a06a12.js";import{h}from"./index-4f5f6f87.js";import{K as KolAlertFc}from"./Alert-7cfc4360.js";function transformObjectProperties(r){return Object.entries(r).reduce(((r,[e,s])=>{const t=e.startsWith("_")?e.slice(1):e;return Object.assign(Object.assign({},r),{[t]:s})}),{})}const FormFieldMsgFc=({_alert:r,_msg:e,_hideError:s,_id:t})=>{const o=transformObjectProperties(e||{});return h(KolAlertFc,Object.assign({id:`${t}-error`,alert:r,type:"error",class:clsx({error:!0,"visually-hidden":!0===s})},o),(null==e?void 0:e._description)||void 0)},KolFormFieldMsgFc=FormFieldMsgFc;export{KolFormFieldMsgFc as K};
4
+ import{c as clsx}from"./clsx-09a06a12.js";import{h}from"./index-5879a66b.js";import{K as KolAlertFc}from"./Alert-69d3fb7c.js";function transformObjectProperties(r){return Object.entries(r).reduce(((r,[e,s])=>{const t=e.startsWith("_")?e.slice(1):e;return Object.assign(Object.assign({},r),{[t]:s})}),{})}const FormFieldMsgFc=({_alert:r,_msg:e,_hideError:s,_id:t})=>{const o=transformObjectProperties(e||{});return h(KolAlertFc,Object.assign({id:`${t}-error`,alert:r,type:"error",class:clsx({error:!0,"visually-hidden":!0===s})},o),(null==e?void 0:e._description)||void 0)},KolFormFieldMsgFc=FormFieldMsgFc;export{KolFormFieldMsgFc as K};
@@ -1 +1 @@
1
- {"file":"FormFieldMsg-eabe0c2c.js","mappings":";;;;;;;SAuBgB,yBAAyB,CACxC,GAAM;IAIN,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAChC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACxD,uCACI,GAAG,KACN,CAAC,MAAM,GAAG,KAAK,IACd;KACF,EACD,EAEC,CACD,CAAC;AACH;;AC1BA,MAAM,cAAc,GAA2C,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE;IAChG,MAAM,GAAG,GAAG,yBAAyB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAElD,QACC,EAAC,UAAU,kBACV,EAAE,EAAE,GAAG,GAAG,QAAQ,EAClB,KAAK,EAAE,MAAM,EACb,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,IAAI,CAAC;YACX,KAAK,EAAE,IAAI;YACX,iBAAiB,EAAE,UAAU,KAAK,IAAI;SACtC,CAAC,IACE,GAAG,GAEN,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,KAAI,SAAS,CACpB,EACZ;AACH,CAAC,CAAC;AAEF,0BAAe,cAAc;;;;","names":[],"sources":["src/utils/transformObjectProperties.ts","src/functional-components/FormFieldMsg/FormFieldMsg.tsx"],"sourcesContent":["/**\n * Transforms keys with leading underscores, keeping non-underscore keys unchanged.\n *\n * @template K The original key type\n * @returns Transformed key type\n */\ntype TransformKeys<K> = K extends `_${infer Rest}` ? Rest : K;\n\n/**\n * Transforms object properties by removing leading underscores from key names.\n *\n * This method is useful for converting objects from a naming convention with leading underscores\n * (often used for private or internal properties) to a standard naming format.\n *\n * @param obj The input object with potential underscore prefixes\n * @returns A new object with underscores removed from key names\n *\n * @example\n * // Converts object with underscore-prefixed keys\n * const input = { _name: 'John', _age: 30 };\n * const result = transformObjectProperties(input);\n * // result is { name: 'John', age: 30 }\n */\nexport function transformObjectProperties<T extends Record<string, unknown>>(\n\tobj: T,\n): {\n\t[K in keyof T as TransformKeys<K>]: T[K];\n} {\n\treturn Object.entries(obj).reduce(\n\t\t(acc, [key, value]) => {\n\t\t\tconst newKey = key.startsWith('_') ? key.slice(1) : key;\n\t\t\treturn {\n\t\t\t\t...acc,\n\t\t\t\t[newKey]: value,\n\t\t\t};\n\t\t},\n\t\t{} as {\n\t\t\t[K in keyof T as TransformKeys<K>]: T[K];\n\t\t},\n\t);\n}\n","import clsx from 'clsx';\nimport type { AlertPropType, HideErrorPropType, IdPropType, MsgPropType } from '../../schema';\nimport type { FunctionalComponent } from '@stencil/core';\nimport { h } from '@stencil/core';\nimport KolAlertFc from '../Alert';\nimport { transformObjectProperties } from '../../utils/transformObjectProperties';\n\ntype FormFieldMsgProps = {\n\t_alert?: AlertPropType;\n\t_msg?: MsgPropType;\n\t_hideError?: HideErrorPropType;\n\t_id: IdPropType;\n};\n\nconst FormFieldMsgFc: FunctionalComponent<FormFieldMsgProps> = ({ _alert, _msg, _hideError, _id }) => {\n\tconst msg = transformObjectProperties(_msg || {});\n\n\treturn (\n\t\t<KolAlertFc\n\t\t\tid={`${_id}-error`}\n\t\t\talert={_alert}\n\t\t\ttype=\"error\"\n\t\t\tclass={clsx({\n\t\t\t\terror: true,\n\t\t\t\t'visually-hidden': _hideError === true,\n\t\t\t})}\n\t\t\t{...msg}\n\t\t>\n\t\t\t{_msg?._description || undefined}\n\t\t</KolAlertFc>\n\t);\n};\n\nexport default FormFieldMsgFc;\n"],"version":3}
1
+ {"file":"FormFieldMsg-555f329f.js","mappings":";;;;;;;SAuBgB,yBAAyB,CACxC,GAAM;IAIN,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAChC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;QACjB,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACxD,uCACI,GAAG,KACN,CAAC,MAAM,GAAG,KAAK,IACd;KACF,EACD,EAEC,CACD,CAAC;AACH;;AC1BA,MAAM,cAAc,GAA2C,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE;IAChG,MAAM,GAAG,GAAG,yBAAyB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAElD,QACC,EAAC,UAAU,kBACV,EAAE,EAAE,GAAG,GAAG,QAAQ,EAClB,KAAK,EAAE,MAAM,EACb,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,IAAI,CAAC;YACX,KAAK,EAAE,IAAI;YACX,iBAAiB,EAAE,UAAU,KAAK,IAAI;SACtC,CAAC,IACE,GAAG,GAEN,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,KAAI,SAAS,CACpB,EACZ;AACH,CAAC,CAAC;AAEF,0BAAe,cAAc;;;;","names":[],"sources":["src/utils/transformObjectProperties.ts","src/functional-components/FormFieldMsg/FormFieldMsg.tsx"],"sourcesContent":["/**\n * Transforms keys with leading underscores, keeping non-underscore keys unchanged.\n *\n * @template K The original key type\n * @returns Transformed key type\n */\ntype TransformKeys<K> = K extends `_${infer Rest}` ? Rest : K;\n\n/**\n * Transforms object properties by removing leading underscores from key names.\n *\n * This method is useful for converting objects from a naming convention with leading underscores\n * (often used for private or internal properties) to a standard naming format.\n *\n * @param obj The input object with potential underscore prefixes\n * @returns A new object with underscores removed from key names\n *\n * @example\n * // Converts object with underscore-prefixed keys\n * const input = { _name: 'John', _age: 30 };\n * const result = transformObjectProperties(input);\n * // result is { name: 'John', age: 30 }\n */\nexport function transformObjectProperties<T extends Record<string, unknown>>(\n\tobj: T,\n): {\n\t[K in keyof T as TransformKeys<K>]: T[K];\n} {\n\treturn Object.entries(obj).reduce(\n\t\t(acc, [key, value]) => {\n\t\t\tconst newKey = key.startsWith('_') ? key.slice(1) : key;\n\t\t\treturn {\n\t\t\t\t...acc,\n\t\t\t\t[newKey]: value,\n\t\t\t};\n\t\t},\n\t\t{} as {\n\t\t\t[K in keyof T as TransformKeys<K>]: T[K];\n\t\t},\n\t);\n}\n","import clsx from 'clsx';\nimport type { AlertPropType, HideErrorPropType, IdPropType, MsgPropType } from '../../schema';\nimport type { FunctionalComponent } from '@stencil/core';\nimport { h } from '@stencil/core';\nimport KolAlertFc from '../Alert';\nimport { transformObjectProperties } from '../../utils/transformObjectProperties';\n\ntype FormFieldMsgProps = {\n\t_alert?: AlertPropType;\n\t_msg?: MsgPropType;\n\t_hideError?: HideErrorPropType;\n\t_id: IdPropType;\n};\n\nconst FormFieldMsgFc: FunctionalComponent<FormFieldMsgProps> = ({ _alert, _msg, _hideError, _id }) => {\n\tconst msg = transformObjectProperties(_msg || {});\n\n\treturn (\n\t\t<KolAlertFc\n\t\t\tid={`${_id}-error`}\n\t\t\talert={_alert}\n\t\t\ttype=\"error\"\n\t\t\tclass={clsx({\n\t\t\t\terror: true,\n\t\t\t\t'visually-hidden': _hideError === true,\n\t\t\t})}\n\t\t\t{...msg}\n\t\t>\n\t\t\t{_msg?._description || undefined}\n\t\t</KolAlertFc>\n\t);\n};\n\nexport default FormFieldMsgFc;\n"],"version":3}
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * KoliBri - The accessible HTML-Standard
3
+ */
4
+ import{h,F as Fragment}from"./index-5879a66b.js";const InternalUnderlinedBadgeText=({badgeText:e,label:n})=>{const t=e;let[l,...a]=n.split(t);return 0===a.length&&(e=t.toUpperCase(),[l,...a]=n.split(t)),0===a.length&&(e=t.toLowerCase(),[l,...a]=n.split(t)),h(Fragment,null,l,a.length?h(Fragment,null,h("u",null,e),a.join(t)):null)};export{InternalUnderlinedBadgeText as I};
@@ -1 +1 @@
1
- {"file":"InternalUnderlinedBadgeText-63c7c674.js","mappings":";;;;;MAOa,2BAA2B,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAS;IAEtE,MAAM,iBAAiB,GAAW,SAAS,CAAC;IAC5C,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACtD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,SAAS,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAC;QAC5C,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;KAClD;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,SAAS,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAC;QAC5C,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;KAClD;IACD,QACC;QACE,KAAK;QACL,IAAI,CAAC,MAAM,IACX;YACC,aAAI,SAAS,CAAK;YACjB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAC3B,IACA,IAAI,CACN,EACF;AACH;;;;","names":[],"sources":["src/components/span/InternalUnderlinedBadgeText.tsx"],"sourcesContent":["import { Fragment, h } from '@stencil/core';\nimport type { BadgeTextPropType } from '../../schema';\n\ntype Props = {\n\tbadgeText: BadgeTextPropType;\n\tlabel: string;\n};\nexport const InternalUnderlinedBadgeText = ({ badgeText, label }: Props) => {\n\t/* Prefer capitalization as defined in the badge Text, try uppercase/lowercase when there's no match. */\n\tconst badgeTextAsString: string = badgeText;\n\tlet [first, ...rest] = label.split(badgeTextAsString);\n\tif (rest.length === 0) {\n\t\tbadgeText = badgeTextAsString.toUpperCase();\n\t\t[first, ...rest] = label.split(badgeTextAsString);\n\t}\n\tif (rest.length === 0) {\n\t\tbadgeText = badgeTextAsString.toLowerCase();\n\t\t[first, ...rest] = label.split(badgeTextAsString);\n\t}\n\treturn (\n\t\t<>\n\t\t\t{first}\n\t\t\t{rest.length ? (\n\t\t\t\t<>\n\t\t\t\t\t<u>{badgeText}</u>\n\t\t\t\t\t{rest.join(badgeTextAsString)}\n\t\t\t\t</>\n\t\t\t) : null}\n\t\t</>\n\t);\n};\n"],"version":3}
1
+ {"file":"InternalUnderlinedBadgeText-868a81c0.js","mappings":";;;;;MAOa,2BAA2B,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAS;IAEtE,MAAM,iBAAiB,GAAW,SAAS,CAAC;IAC5C,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACtD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,SAAS,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAC;QAC5C,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;KAClD;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,SAAS,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAC;QAC5C,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;KAClD;IACD,QACC;QACE,KAAK;QACL,IAAI,CAAC,MAAM,IACX;YACC,aAAI,SAAS,CAAK;YACjB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAC3B,IACA,IAAI,CACN,EACF;AACH;;;;","names":[],"sources":["src/components/span/InternalUnderlinedBadgeText.tsx"],"sourcesContent":["import { Fragment, h } from '@stencil/core';\nimport type { BadgeTextPropType } from '../../schema';\n\ntype Props = {\n\tbadgeText: BadgeTextPropType;\n\tlabel: string;\n};\nexport const InternalUnderlinedBadgeText = ({ badgeText, label }: Props) => {\n\t/* Prefer capitalization as defined in the badge Text, try uppercase/lowercase when there's no match. */\n\tconst badgeTextAsString: string = badgeText;\n\tlet [first, ...rest] = label.split(badgeTextAsString);\n\tif (rest.length === 0) {\n\t\tbadgeText = badgeTextAsString.toUpperCase();\n\t\t[first, ...rest] = label.split(badgeTextAsString);\n\t}\n\tif (rest.length === 0) {\n\t\tbadgeText = badgeTextAsString.toLowerCase();\n\t\t[first, ...rest] = label.split(badgeTextAsString);\n\t}\n\treturn (\n\t\t<>\n\t\t\t{first}\n\t\t\t{rest.length ? (\n\t\t\t\t<>\n\t\t\t\t\t<u>{badgeText}</u>\n\t\t\t\t\t{rest.join(badgeTextAsString)}\n\t\t\t\t</>\n\t\t\t) : null}\n\t\t</>\n\t);\n};\n"],"version":3}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{o as oe,S}from"./index-6d801dad.js";import{a as setMode}from"./index-4f5f6f87.js";import{L as Log}from"./dev.utils-fab45cbc.js";setMode((o=>{try{o.shadowRoot instanceof ShadowRoot&&oe(o,S(o))}catch(o){}return"default"})),import("./devtools-9617ddfa.js").then((o=>{"object"==typeof o&&null!==o&&"function"==typeof o.initialize&&o.initialize()})).catch((o=>{Log.error(o)}));const globalFn=()=>{},appGlobalScript=globalFn,globalScripts=appGlobalScript;export{globalScripts as g};
4
+ import{o as oe,S}from"./index-6d801dad.js";import{a as setMode}from"./index-5879a66b.js";import{L as Log}from"./dev.utils-fab45cbc.js";setMode((o=>{try{o.shadowRoot instanceof ShadowRoot&&oe(o,S(o))}catch(o){}return"default"})),import("./devtools-35fb12ed.js").then((o=>{"object"==typeof o&&null!==o&&"function"==typeof o.initialize&&o.initialize()})).catch((o=>{Log.error(o)}));const globalFn=()=>{},appGlobalScript=globalFn,globalScripts=appGlobalScript;export{globalScripts as g};
@@ -1 +1 @@
1
- {"file":"app-globals-a3505337.js","mappings":";;;;;;;AAKA,OAAO,CAAC,CAAC,GAAG;IACX,IAAI;QACH,IAAI,GAAG,CAAC,UAAU,YAAY,UAAU,EAAE;YACzCA,EAAa,CAAC,GAAG,EAAEC,CAAe,CAAC,GAAG,CAAC,CAAC,CAAC;SACzC;KACD;IAAC,OAAO,KAAK,EAAE;KAMf;IACD,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,OAAO,wBAAY,CAAC;KAClB,IAAI,CAAC,CAAC,QAAQ;IACd,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,OAAO,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE;QACnG,QAAQ,CAAC,UAAU,EAAE,CAAC;KACtB;AACF,CAAC,CAAC;KACD,KAAK,CAAC,CAAC,KAAK;IACZ,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;;;;AC3BQ,MAAC,aAAa,GAAG;;;;","names":["setThemeStyle","getThemeDetails"],"sources":["src/global/script.ts","@stencil/core/internal/app-globals"],"sourcesContent":["import { getThemeDetails, setThemeStyle } from 'adopted-style-sheets';\n\nimport { Log } from '../schema';\nimport { setMode } from '@stencil/core';\n\nsetMode((elm) => {\n\ttry {\n\t\tif (elm.shadowRoot instanceof ShadowRoot) {\n\t\t\tsetThemeStyle(elm, getThemeDetails(elm));\n\t\t}\n\t} catch (error) {\n\t\t/**\n\t\t * Try is needed for SSR.\n\t\t * - no HTMLElement is available\n\t\t * - no ShadowRoot is available\n\t\t */\n\t}\n\treturn 'default';\n});\n\nimport('./devtools')\n\t.then((devTools) => {\n\t\tif (typeof devTools === 'object' && devTools !== null && typeof devTools.initialize === 'function') {\n\t\t\tdevTools.initialize();\n\t\t}\n\t})\n\t.catch((error) => {\n\t\tLog.error(error);\n\t});\n","import appGlobalScript from '/home/runner/work/kolibri/kolibri/packages/components/src/global/script.ts';\nexport const globalScripts = appGlobalScript;\n"],"version":3}
1
+ {"file":"app-globals-2d0926bd.js","mappings":";;;;;;;AAKA,OAAO,CAAC,CAAC,GAAG;IACX,IAAI;QACH,IAAI,GAAG,CAAC,UAAU,YAAY,UAAU,EAAE;YACzCA,EAAa,CAAC,GAAG,EAAEC,CAAe,CAAC,GAAG,CAAC,CAAC,CAAC;SACzC;KACD;IAAC,OAAO,KAAK,EAAE;KAMf;IACD,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,OAAO,wBAAY,CAAC;KAClB,IAAI,CAAC,CAAC,QAAQ;IACd,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,OAAO,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE;QACnG,QAAQ,CAAC,UAAU,EAAE,CAAC;KACtB;AACF,CAAC,CAAC;KACD,KAAK,CAAC,CAAC,KAAK;IACZ,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;;;;AC3BQ,MAAC,aAAa,GAAG;;;;","names":["setThemeStyle","getThemeDetails"],"sources":["src/global/script.ts","@stencil/core/internal/app-globals"],"sourcesContent":["import { getThemeDetails, setThemeStyle } from 'adopted-style-sheets';\n\nimport { Log } from '../schema';\nimport { setMode } from '@stencil/core';\n\nsetMode((elm) => {\n\ttry {\n\t\tif (elm.shadowRoot instanceof ShadowRoot) {\n\t\t\tsetThemeStyle(elm, getThemeDetails(elm));\n\t\t}\n\t} catch (error) {\n\t\t/**\n\t\t * Try is needed for SSR.\n\t\t * - no HTMLElement is available\n\t\t * - no ShadowRoot is available\n\t\t */\n\t}\n\treturn 'default';\n});\n\nimport('./devtools')\n\t.then((devTools) => {\n\t\tif (typeof devTools === 'object' && devTools !== null && typeof devTools.initialize === 'function') {\n\t\t\tdevTools.initialize();\n\t\t}\n\t})\n\t.catch((error) => {\n\t\tLog.error(error);\n\t});\n","import appGlobalScript from '/home/runner/work/kolibri/kolibri/packages/components/src/global/script.ts';\nexport const globalScripts = appGlobalScript;\n"],"version":3}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{E as Env}from"./index-4f5f6f87.js";import{p as processEnv}from"./reuse-32931294.js";import{L as Log,g as getDocument,s as setDevMode,b as setExperimentalMode,c as setColorContrastAnalysis,d as getWindow}from"./dev.utils-fab45cbc.js";const initMeta=()=>{const e=getDocument().querySelector('meta[name="kolibri"]');if(e&&e.hasAttribute("content")){const t=e.getAttribute("content");"string"==typeof t&&(setDevMode(t.includes("dev-mode=true")),setExperimentalMode(t.includes("experimental-mode=true")),setColorContrastAnalysis(t.includes("color-contrast-analysis=true")))}},getKoliBri=()=>{let e=getWindow().KoliBri;return void 0===e&&(e={},Object.defineProperty(getWindow(),"KoliBri",{value:e,writable:!1})),e},initKoliBri=()=>{initMeta(),Log.debug(`\n,--. ,--. ,--. ,--. ,-----. ,--.\n| .' / ,---. | | \`--' | |) /_ ,--.--. \`--'\n| . ' | .-. | | | ,--. | .-. \\ | .--' ,--.\n| |\\ \\ | '-' | | | | | | '--' / | | | |\n\`--' \`--´ \`---´ \`--' \`--' \`------´ \`--' \`--'\n🚹 The accessible HTML-Standard | 👉 https://public-ui.github.io | ${Env.kolibriVersion}\n\t`,{forceLog:!0})},renderDevAdvice=()=>{!0!==getKoliBri().adviceShown&&(Object.defineProperty(getKoliBri(),"adviceShown",{get:function(){return!0}}),Log.debug("\nYou are using the KoliBri component library. If you have any suggestions for improvement or find a problem, please contact us:\n\nTicket: https://github.com/public-ui/kolibri/issues/new/choose (for privacy reasons, please use email)\nEmail: kolibri@itzbund.de\n"))};let nonce=()=>Math.floor(16777215*Math.random()).toString(16);"test"===processEnv&&(nonce=()=>"nonce");export{initKoliBri as i,nonce as n,renderDevAdvice as r};
4
+ import{E as Env}from"./index-5879a66b.js";import{p as processEnv}from"./reuse-32931294.js";import{L as Log,g as getDocument,s as setDevMode,b as setExperimentalMode,c as setColorContrastAnalysis,d as getWindow}from"./dev.utils-fab45cbc.js";const initMeta=()=>{const e=getDocument().querySelector('meta[name="kolibri"]');if(e&&e.hasAttribute("content")){const t=e.getAttribute("content");"string"==typeof t&&(setDevMode(t.includes("dev-mode=true")),setExperimentalMode(t.includes("experimental-mode=true")),setColorContrastAnalysis(t.includes("color-contrast-analysis=true")))}},getKoliBri=()=>{let e=getWindow().KoliBri;return void 0===e&&(e={},Object.defineProperty(getWindow(),"KoliBri",{value:e,writable:!1})),e},initKoliBri=()=>{initMeta(),Log.debug(`\n,--. ,--. ,--. ,--. ,-----. ,--.\n| .' / ,---. | | \`--' | |) /_ ,--.--. \`--'\n| . ' | .-. | | | ,--. | .-. \\ | .--' ,--.\n| |\\ \\ | '-' | | | | | | '--' / | | | |\n\`--' \`--´ \`---´ \`--' \`--' \`------´ \`--' \`--'\n🚹 The accessible HTML-Standard | 👉 https://public-ui.github.io | ${Env.kolibriVersion}\n\t`,{forceLog:!0})},renderDevAdvice=()=>{!0!==getKoliBri().adviceShown&&(Object.defineProperty(getKoliBri(),"adviceShown",{get:function(){return!0}}),Log.debug("\nYou are using the KoliBri component library. If you have any suggestions for improvement or find a problem, please contact us:\n\nTicket: https://github.com/public-ui/kolibri/issues/new/choose (for privacy reasons, please use email)\nEmail: kolibri@itzbund.de\n"))};let nonce=()=>Math.floor(16777215*Math.random()).toString(16);"test"===processEnv&&(nonce=()=>"nonce");export{initKoliBri as i,nonce as n,renderDevAdvice as r};
@@ -1 +1 @@
1
- {"file":"dev.utils-5c8ee797.js","mappings":";;;;;;;AAKA,MAAM,QAAQ,GAAG;IAChB,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;IACjE,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAChC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;YAC9C,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC;YAChE,wBAAwB,CAAC,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC,CAAC;SAC3E;KACD;AACF,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG;IAClB,IAAI,OAAO,GAAG,SAAS,EAAE,CAAC,OAAO,CAAC;IAClC,IAAI,OAAO,KAAK,SAAS,EAAE;QAC1B,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE;YAC7C,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,KAAK;SACf,CAAC,CAAC;KACH;IACD,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC;MAIW,WAAW,GAAG;IAC1B,QAAQ,EAAE,CAAC;IACX,GAAG,CAAC,KAAK,CACR;;;;;;qEAMmE,GAAG,CAAC,cAAc;EACrF,EACA;QACC,QAAQ,EAAE,IAAI;KACd,CACD,CAAC;AACH,EAAE;MAEW,eAAe,GAAG;IAC9B,IAAI,UAAU,EAAE,CAAC,WAAW,KAAK,IAAI,EAAE;QACtC,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE;YAClD,GAAG,EAAE;gBACJ,OAAO,IAAI,CAAC;aACZ;SACD,CAAC,CAAC;QACH,GAAG,CAAC,KAAK,CACR;;;;;CAKF,CACE,CAAC;KACF;AACF,EAAE;IAEE,KAAK,GAAG,MAAc,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE;AAE5E,IAAI,UAAU,KAAK,MAAM,EAAE;IAC1B,KAAK,GAAG,MAAc,OAAO,CAAC;AAC/B;;;;","names":[],"sources":["src/utils/dev.utils.ts"],"sourcesContent":["import { Log, getDocument, processEnv, setColorContrastAnalysis, setDevMode, setExperimentalMode } from '../schema';\n\nimport { getWindow } from '../schema';\nimport { Env } from '@stencil/core';\n\nconst initMeta = (): void => {\n\tconst meta = getDocument().querySelector('meta[name=\"kolibri\"]');\n\tif (meta && meta.hasAttribute('content')) {\n\t\tconst content = meta.getAttribute('content');\n\t\tif (typeof content === 'string') {\n\t\t\tsetDevMode(content.includes('dev-mode=true'));\n\t\t\tsetExperimentalMode(content.includes('experimental-mode=true'));\n\t\t\tsetColorContrastAnalysis(content.includes('color-contrast-analysis=true'));\n\t\t}\n\t}\n};\n\nconst getKoliBri = (): Record<string, unknown> => {\n\tlet kolibri = getWindow().KoliBri;\n\tif (kolibri === undefined) {\n\t\tkolibri = {};\n\t\tObject.defineProperty(getWindow(), 'KoliBri', {\n\t\t\tvalue: kolibri,\n\t\t\twritable: false,\n\t\t});\n\t}\n\treturn kolibri;\n};\n\nexport { getKoliBri };\n\nexport const initKoliBri = (): void => {\n\tinitMeta();\n\tLog.debug(\n\t\t`\n,--. ,--. ,--. ,--. ,-----. ,--.\n| .' / ,---. | | \\`--' | |) /_ ,--.--. \\`--'\n| . ' | .-. | | | ,--. | .-. \\\\ | .--' ,--.\n| |\\\\ \\\\ | '-' | | | | | | '--' / | | | |\n\\`--' \\`--´ \\`---´ \\`--' \\`--' \\`------´ \\`--' \\`--'\n🚹 The accessible HTML-Standard | 👉 https://public-ui.github.io | ${Env.kolibriVersion}\n\t`,\n\t\t{\n\t\t\tforceLog: true,\n\t\t},\n\t);\n};\n\nexport const renderDevAdvice = (): void => {\n\tif (getKoliBri().adviceShown !== true) {\n\t\tObject.defineProperty(getKoliBri(), 'adviceShown', {\n\t\t\tget: function () {\n\t\t\t\treturn true;\n\t\t\t},\n\t\t});\n\t\tLog.debug(\n\t\t\t`\nYou are using the KoliBri component library. If you have any suggestions for improvement or find a problem, please contact us:\n\nTicket: https://github.com/public-ui/kolibri/issues/new/choose (for privacy reasons, please use email)\nEmail: kolibri@itzbund.de\n`,\n\t\t);\n\t}\n};\n\nlet nonce = (): string => Math.floor(Math.random() * 16777215).toString(16);\n\nif (processEnv === 'test') {\n\tnonce = (): string => 'nonce';\n}\n\nexport { nonce };\n"],"version":3}
1
+ {"file":"dev.utils-c278c4ae.js","mappings":";;;;;;;AAKA,MAAM,QAAQ,GAAG;IAChB,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;IACjE,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAChC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;YAC9C,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC;YAChE,wBAAwB,CAAC,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC,CAAC;SAC3E;KACD;AACF,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG;IAClB,IAAI,OAAO,GAAG,SAAS,EAAE,CAAC,OAAO,CAAC;IAClC,IAAI,OAAO,KAAK,SAAS,EAAE;QAC1B,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE;YAC7C,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,KAAK;SACf,CAAC,CAAC;KACH;IACD,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC;MAIW,WAAW,GAAG;IAC1B,QAAQ,EAAE,CAAC;IACX,GAAG,CAAC,KAAK,CACR;;;;;;qEAMmE,GAAG,CAAC,cAAc;EACrF,EACA;QACC,QAAQ,EAAE,IAAI;KACd,CACD,CAAC;AACH,EAAE;MAEW,eAAe,GAAG;IAC9B,IAAI,UAAU,EAAE,CAAC,WAAW,KAAK,IAAI,EAAE;QACtC,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE;YAClD,GAAG,EAAE;gBACJ,OAAO,IAAI,CAAC;aACZ;SACD,CAAC,CAAC;QACH,GAAG,CAAC,KAAK,CACR;;;;;CAKF,CACE,CAAC;KACF;AACF,EAAE;IAEE,KAAK,GAAG,MAAc,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE;AAE5E,IAAI,UAAU,KAAK,MAAM,EAAE;IAC1B,KAAK,GAAG,MAAc,OAAO,CAAC;AAC/B;;;;","names":[],"sources":["src/utils/dev.utils.ts"],"sourcesContent":["import { Log, getDocument, processEnv, setColorContrastAnalysis, setDevMode, setExperimentalMode } from '../schema';\n\nimport { getWindow } from '../schema';\nimport { Env } from '@stencil/core';\n\nconst initMeta = (): void => {\n\tconst meta = getDocument().querySelector('meta[name=\"kolibri\"]');\n\tif (meta && meta.hasAttribute('content')) {\n\t\tconst content = meta.getAttribute('content');\n\t\tif (typeof content === 'string') {\n\t\t\tsetDevMode(content.includes('dev-mode=true'));\n\t\t\tsetExperimentalMode(content.includes('experimental-mode=true'));\n\t\t\tsetColorContrastAnalysis(content.includes('color-contrast-analysis=true'));\n\t\t}\n\t}\n};\n\nconst getKoliBri = (): Record<string, unknown> => {\n\tlet kolibri = getWindow().KoliBri;\n\tif (kolibri === undefined) {\n\t\tkolibri = {};\n\t\tObject.defineProperty(getWindow(), 'KoliBri', {\n\t\t\tvalue: kolibri,\n\t\t\twritable: false,\n\t\t});\n\t}\n\treturn kolibri;\n};\n\nexport { getKoliBri };\n\nexport const initKoliBri = (): void => {\n\tinitMeta();\n\tLog.debug(\n\t\t`\n,--. ,--. ,--. ,--. ,-----. ,--.\n| .' / ,---. | | \\`--' | |) /_ ,--.--. \\`--'\n| . ' | .-. | | | ,--. | .-. \\\\ | .--' ,--.\n| |\\\\ \\\\ | '-' | | | | | | '--' / | | | |\n\\`--' \\`--´ \\`---´ \\`--' \\`--' \\`------´ \\`--' \\`--'\n🚹 The accessible HTML-Standard | 👉 https://public-ui.github.io | ${Env.kolibriVersion}\n\t`,\n\t\t{\n\t\t\tforceLog: true,\n\t\t},\n\t);\n};\n\nexport const renderDevAdvice = (): void => {\n\tif (getKoliBri().adviceShown !== true) {\n\t\tObject.defineProperty(getKoliBri(), 'adviceShown', {\n\t\t\tget: function () {\n\t\t\t\treturn true;\n\t\t\t},\n\t\t});\n\t\tLog.debug(\n\t\t\t`\nYou are using the KoliBri component library. If you have any suggestions for improvement or find a problem, please contact us:\n\nTicket: https://github.com/public-ui/kolibri/issues/new/choose (for privacy reasons, please use email)\nEmail: kolibri@itzbund.de\n`,\n\t\t);\n\t}\n};\n\nlet nonce = (): string => Math.floor(Math.random() * 16777215).toString(16);\n\nif (processEnv === 'test') {\n\tnonce = (): string => 'nonce';\n}\n\nexport { nonce };\n"],"version":3}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{i as initKoliBri,r as renderDevAdvice}from"./dev.utils-5c8ee797.js";import{e as getDevMode,g as getDocument,L as Log,a as getExperimentalMode,f as getColorContrastAnalysis,d as getWindow}from"./dev.utils-fab45cbc.js";import{y as koliBriA11yColorContrast,t as koliBriQuerySelector,z as koliBriQuerySelectorAll,A as koliBriQuerySelectorColors,B as KoliBriUtils,p as parseJson,C as stringifyJson}from"./prop.validators-17aec743.js";import"./index-4f5f6f87.js";import"./reuse-32931294.js";import"./index-6d801dad.js";const getKoliBri=()=>{let e=getWindow().KoliBri;return void 0===e&&(e={},Object.defineProperty(getWindow(),"KoliBri",{value:e,writable:!1})),e};function prototypeKoliBri(e,t){try{Object.defineProperty(getKoliBri(),e,{get:function(){return t}})}catch(t){Log.debug(`KoliBri property ${e} is already bind.`)}}const metaModeLog=(e,t)=>Log.debug(`${e} ${t?"":"not "}activated`),initialize=()=>{if(initKoliBri(),getDevMode()){renderDevAdvice(),prototypeKoliBri("a11yColorContrast",koliBriA11yColorContrast),prototypeKoliBri("querySelector",koliBriQuerySelector),prototypeKoliBri("querySelectorAll",koliBriQuerySelectorAll),prototypeKoliBri("querySelectorColors",koliBriQuerySelectorColors),prototypeKoliBri("utils",(function(){return KoliBriUtils})),prototypeKoliBri("parseJson",parseJson),prototypeKoliBri("stringifyJson",stringifyJson);const e=getDocument().body,t=getDocument().createElement("svg");if(t.setAttribute("aria-label","KoliBri-DevTools"),t.setAttribute("xmlns","http://www.w3.org/2000/svg"),t.setAttribute("role","toolbar"),t.setAttribute("style","position: fixed;color: black;font-size: 200%;bottom: 0.25rem;right: 0.25rem;"),t.innerHTML='<svg\n xmlns="http://www.w3.org/2000/svg"\n width="50"\n height="50"\n viewBox="0 0 600 600"\n>\n <path d="M353 322L213 304V434L353 322Z" fill="#047" />\n <path d="M209 564V304L149 434L209 564Z" fill="#047" />\n <path d="M357 316L417 250L361 210L275 244L357 316Z" fill="#047" />\n <path d="M353 318L35 36L213 300L353 318Z" fill="#047" />\n <path d="M329 218L237 92L250 222L272 241L329 218Z" fill="#047" />\n <path d="M391 286L565 272L421 252L391 286Z" fill="#047" />\n</svg>',getDocument().body.appendChild(t),metaModeLog("Development mode",getDevMode()),metaModeLog("Experimental mode",getExperimentalMode()),metaModeLog("Color contrast analysis",getColorContrastAnalysis()),getColorContrastAnalysis()){const t=setTimeout((()=>{clearTimeout(t),setInterval((()=>{KoliBriUtils.queryHtmlElementColors(getDocument().createElement("div"),koliBriA11yColorContrast(e),!1,!1)}),1e4)}),2500)}}};export{initialize};
4
+ import{i as initKoliBri,r as renderDevAdvice}from"./dev.utils-c278c4ae.js";import{e as getDevMode,g as getDocument,L as Log,a as getExperimentalMode,f as getColorContrastAnalysis,d as getWindow}from"./dev.utils-fab45cbc.js";import{y as koliBriA11yColorContrast,t as koliBriQuerySelector,z as koliBriQuerySelectorAll,A as koliBriQuerySelectorColors,B as KoliBriUtils,p as parseJson,C as stringifyJson}from"./prop.validators-17aec743.js";import"./index-5879a66b.js";import"./reuse-32931294.js";import"./index-6d801dad.js";const getKoliBri=()=>{let e=getWindow().KoliBri;return void 0===e&&(e={},Object.defineProperty(getWindow(),"KoliBri",{value:e,writable:!1})),e};function prototypeKoliBri(e,t){try{Object.defineProperty(getKoliBri(),e,{get:function(){return t}})}catch(t){Log.debug(`KoliBri property ${e} is already bind.`)}}const metaModeLog=(e,t)=>Log.debug(`${e} ${t?"":"not "}activated`),initialize=()=>{if(initKoliBri(),getDevMode()){renderDevAdvice(),prototypeKoliBri("a11yColorContrast",koliBriA11yColorContrast),prototypeKoliBri("querySelector",koliBriQuerySelector),prototypeKoliBri("querySelectorAll",koliBriQuerySelectorAll),prototypeKoliBri("querySelectorColors",koliBriQuerySelectorColors),prototypeKoliBri("utils",(function(){return KoliBriUtils})),prototypeKoliBri("parseJson",parseJson),prototypeKoliBri("stringifyJson",stringifyJson);const e=getDocument().body,t=getDocument().createElement("svg");if(t.setAttribute("aria-label","KoliBri-DevTools"),t.setAttribute("xmlns","http://www.w3.org/2000/svg"),t.setAttribute("role","toolbar"),t.setAttribute("style","position: fixed;color: black;font-size: 200%;bottom: 0.25rem;right: 0.25rem;"),t.innerHTML='<svg\n xmlns="http://www.w3.org/2000/svg"\n width="50"\n height="50"\n viewBox="0 0 600 600"\n>\n <path d="M353 322L213 304V434L353 322Z" fill="#047" />\n <path d="M209 564V304L149 434L209 564Z" fill="#047" />\n <path d="M357 316L417 250L361 210L275 244L357 316Z" fill="#047" />\n <path d="M353 318L35 36L213 300L353 318Z" fill="#047" />\n <path d="M329 218L237 92L250 222L272 241L329 218Z" fill="#047" />\n <path d="M391 286L565 272L421 252L391 286Z" fill="#047" />\n</svg>',getDocument().body.appendChild(t),metaModeLog("Development mode",getDevMode()),metaModeLog("Experimental mode",getExperimentalMode()),metaModeLog("Color contrast analysis",getColorContrastAnalysis()),getColorContrastAnalysis()){const t=setTimeout((()=>{clearTimeout(t),setInterval((()=>{KoliBriUtils.queryHtmlElementColors(getDocument().createElement("div"),koliBriA11yColorContrast(e),!1,!1)}),1e4)}),2500)}}};export{initialize};
@@ -1 +1 @@
1
- {"file":"devtools-9617ddfa.js","mappings":";;;;;;;;;;AAiBA,MAAM,UAAU,GAAG;IAClB,IAAI,OAAO,GAAG,SAAS,EAAE,CAAC,OAAO,CAAC;IAClC,IAAI,OAAO,KAAK,SAAS,EAAE;QAC1B,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE;YAC7C,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,KAAK;SACf,CAAC,CAAC;KACH;IACD,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC;AAEF,SAAS,gBAAgB,CAAI,IAAY,EAAE,EAAK;IAC/C,IAAI;QACH,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE;YACzC,GAAG,EAAE;gBACJ,OAAO,EAAE,CAAC;aACV;SACD,CAAC,CAAC;KACH;IAAC,OAAO,CAAC,EAAE;QACX,GAAG,CAAC,KAAK,CAAC,oBAAoB,IAAI,mBAAmB,CAAC,CAAC;KACvD;AACF,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,MAAe,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,MAAM,GAAG,EAAE,GAAG,MAAM,WAAW,CAAC,CAAC;MAEhG,UAAU,GAAG;IACzB,WAAW,EAAE,CAAC;IACd,IAAI,UAAU,EAAE,EAAE;QACjB,eAAe,EAAE,CAAC;QAElB,gBAAgB,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,CAAC;QAChE,gBAAgB,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;QACxD,gBAAgB,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,CAAC;QAC9D,gBAAgB,CAAC,qBAAqB,EAAE,0BAA0B,CAAC,CAAC;QACpE,gBAAgB,CAAC,OAAO,EAAE;YACzB,OAAO,YAAY,CAAC;SACpB,CAAC,CAAC;QACH,gBAAgB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACzC,gBAAgB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QAEjD,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC,IAAI,CAAC;QAEhC,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC/C,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;QACnD,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;QACxD,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACpC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,8EAA8E,CAAC,CAAC;QAC1G,GAAG,CAAC,SAAS,GAAG;;;;;;;;;;;;OAYX,CAAC;QAEN,WAAW,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAEpC,WAAW,CAAC,kBAAkB,EAAE,UAAU,EAAE,CAAC,CAAC;QAC9C,WAAW,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,CAAC,CAAC;QACxD,WAAW,CAAC,yBAAyB,EAAE,wBAAwB,EAAE,CAAC,CAAC;QAEnE,IAAI,wBAAwB,EAAE,EAAE;YAC/B,MAAM,OAAO,GAAG,UAAU,CAAC;gBAC1B,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,WAAW,CAAC;oBACX,YAAY,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,wBAAwB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;iBACtH,EAAE,KAAK,CAAC,CAAC;aACV,EAAE,IAAI,CAAC,CAAC;SACT;KAmBD;AACF;;;;","names":[],"sources":["src/global/devtools.ts"],"sourcesContent":["import {\n\tgetColorContrastAnalysis,\n\tgetDevMode,\n\tgetDocument,\n\tgetExperimentalMode,\n\tgetWindow,\n\tkoliBriA11yColorContrast,\n\tkoliBriQuerySelector,\n\tkoliBriQuerySelectorAll,\n\tkoliBriQuerySelectorColors,\n\tKoliBriUtils,\n\tLog,\n\tparseJson,\n\tstringifyJson,\n} from '../schema';\nimport { initKoliBri, renderDevAdvice } from '../utils/dev.utils';\n\nconst getKoliBri = (): Record<string, unknown> => {\n\tlet kolibri = getWindow().KoliBri;\n\tif (kolibri === undefined) {\n\t\tkolibri = {};\n\t\tObject.defineProperty(getWindow(), 'KoliBri', {\n\t\t\tvalue: kolibri,\n\t\t\twritable: false,\n\t\t});\n\t}\n\treturn kolibri;\n};\n\nfunction prototypeKoliBri<T>(name: string, cb: T) {\n\ttry {\n\t\tObject.defineProperty(getKoliBri(), name, {\n\t\t\tget: function () {\n\t\t\t\treturn cb;\n\t\t\t},\n\t\t});\n\t} catch (e) {\n\t\tLog.debug(`KoliBri property ${name} is already bind.`);\n\t}\n}\n\nconst metaModeLog = (name: string, active: boolean) => Log.debug(`${name} ${active ? '' : 'not '}activated`);\n\nexport const initialize = (): void => {\n\tinitKoliBri();\n\tif (getDevMode()) {\n\t\trenderDevAdvice();\n\n\t\tprototypeKoliBri('a11yColorContrast', koliBriA11yColorContrast);\n\t\tprototypeKoliBri('querySelector', koliBriQuerySelector);\n\t\tprototypeKoliBri('querySelectorAll', koliBriQuerySelectorAll);\n\t\tprototypeKoliBri('querySelectorColors', koliBriQuerySelectorColors);\n\t\tprototypeKoliBri('utils', function () {\n\t\t\treturn KoliBriUtils;\n\t\t});\n\t\tprototypeKoliBri('parseJson', parseJson);\n\t\tprototypeKoliBri('stringifyJson', stringifyJson);\n\n\t\tconst body = getDocument().body;\n\n\t\tconst div = getDocument().createElement('svg');\n\t\tdiv.setAttribute('aria-label', 'KoliBri-DevTools');\n\t\tdiv.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\t\tdiv.setAttribute('role', 'toolbar');\n\t\tdiv.setAttribute('style', 'position: fixed;color: black;font-size: 200%;bottom: 0.25rem;right: 0.25rem;');\n\t\tdiv.innerHTML = `<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"50\"\n height=\"50\"\n viewBox=\"0 0 600 600\"\n>\n <path d=\"M353 322L213 304V434L353 322Z\" fill=\"#047\" />\n <path d=\"M209 564V304L149 434L209 564Z\" fill=\"#047\" />\n <path d=\"M357 316L417 250L361 210L275 244L357 316Z\" fill=\"#047\" />\n <path d=\"M353 318L35 36L213 300L353 318Z\" fill=\"#047\" />\n <path d=\"M329 218L237 92L250 222L272 241L329 218Z\" fill=\"#047\" />\n <path d=\"M391 286L565 272L421 252L391 286Z\" fill=\"#047\" />\n</svg>`;\n\n\t\tgetDocument().body.appendChild(div);\n\n\t\tmetaModeLog('Development mode', getDevMode());\n\t\tmetaModeLog('Experimental mode', getExperimentalMode());\n\t\tmetaModeLog('Color contrast analysis', getColorContrastAnalysis());\n\n\t\tif (getColorContrastAnalysis()) {\n\t\t\tconst timeout = setTimeout(() => {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t\tsetInterval(() => {\n\t\t\t\t\tKoliBriUtils.queryHtmlElementColors(getDocument().createElement('div'), koliBriA11yColorContrast(body), false, false);\n\t\t\t\t}, 10000);\n\t\t\t}, 2500);\n\t\t}\n\n\t\t// setTimeout(() => {\n\t\t// const kolButton = koliBriQuerySelector<HTMLButtonElement>(document, '[_label=\"Aktion ausführen\"]');\n\t\t// if (kolButton) {\n\t\t// const button = koliBriQuerySelector<HTMLButtonElement>(kolButton?.shadowRoot as ShadowRoot, 'button');\n\t\t// if (button) {\n\t\t// kolButton.style.backgroundColor = '#988';\n\t\t// button.style.backgroundColor = 'inherit';\n\t\t// button.style.color = '#988';\n\t\t// const kolButtonColors = koliBriQuerySelectorColors('[_label=\"Aktion ausführen\"]');\n\t\t// console.log(\n\t\t// koliBriQuerySelectorColors('button', {\n\t\t// ...kolButtonColors,\n\t\t// })\n\t\t// );\n\t\t// }\n\t\t// }\n\t\t// }, 2500);\n\t}\n};\n"],"version":3}
1
+ {"file":"devtools-35fb12ed.js","mappings":";;;;;;;;;;AAiBA,MAAM,UAAU,GAAG;IAClB,IAAI,OAAO,GAAG,SAAS,EAAE,CAAC,OAAO,CAAC;IAClC,IAAI,OAAO,KAAK,SAAS,EAAE;QAC1B,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE;YAC7C,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,KAAK;SACf,CAAC,CAAC;KACH;IACD,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC;AAEF,SAAS,gBAAgB,CAAI,IAAY,EAAE,EAAK;IAC/C,IAAI;QACH,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE;YACzC,GAAG,EAAE;gBACJ,OAAO,EAAE,CAAC;aACV;SACD,CAAC,CAAC;KACH;IAAC,OAAO,CAAC,EAAE;QACX,GAAG,CAAC,KAAK,CAAC,oBAAoB,IAAI,mBAAmB,CAAC,CAAC;KACvD;AACF,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,MAAe,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,MAAM,GAAG,EAAE,GAAG,MAAM,WAAW,CAAC,CAAC;MAEhG,UAAU,GAAG;IACzB,WAAW,EAAE,CAAC;IACd,IAAI,UAAU,EAAE,EAAE;QACjB,eAAe,EAAE,CAAC;QAElB,gBAAgB,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,CAAC;QAChE,gBAAgB,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;QACxD,gBAAgB,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,CAAC;QAC9D,gBAAgB,CAAC,qBAAqB,EAAE,0BAA0B,CAAC,CAAC;QACpE,gBAAgB,CAAC,OAAO,EAAE;YACzB,OAAO,YAAY,CAAC;SACpB,CAAC,CAAC;QACH,gBAAgB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACzC,gBAAgB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QAEjD,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC,IAAI,CAAC;QAEhC,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC/C,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;QACnD,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;QACxD,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACpC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,8EAA8E,CAAC,CAAC;QAC1G,GAAG,CAAC,SAAS,GAAG;;;;;;;;;;;;OAYX,CAAC;QAEN,WAAW,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAEpC,WAAW,CAAC,kBAAkB,EAAE,UAAU,EAAE,CAAC,CAAC;QAC9C,WAAW,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,CAAC,CAAC;QACxD,WAAW,CAAC,yBAAyB,EAAE,wBAAwB,EAAE,CAAC,CAAC;QAEnE,IAAI,wBAAwB,EAAE,EAAE;YAC/B,MAAM,OAAO,GAAG,UAAU,CAAC;gBAC1B,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,WAAW,CAAC;oBACX,YAAY,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,wBAAwB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;iBACtH,EAAE,KAAK,CAAC,CAAC;aACV,EAAE,IAAI,CAAC,CAAC;SACT;KAmBD;AACF;;;;","names":[],"sources":["src/global/devtools.ts"],"sourcesContent":["import {\n\tgetColorContrastAnalysis,\n\tgetDevMode,\n\tgetDocument,\n\tgetExperimentalMode,\n\tgetWindow,\n\tkoliBriA11yColorContrast,\n\tkoliBriQuerySelector,\n\tkoliBriQuerySelectorAll,\n\tkoliBriQuerySelectorColors,\n\tKoliBriUtils,\n\tLog,\n\tparseJson,\n\tstringifyJson,\n} from '../schema';\nimport { initKoliBri, renderDevAdvice } from '../utils/dev.utils';\n\nconst getKoliBri = (): Record<string, unknown> => {\n\tlet kolibri = getWindow().KoliBri;\n\tif (kolibri === undefined) {\n\t\tkolibri = {};\n\t\tObject.defineProperty(getWindow(), 'KoliBri', {\n\t\t\tvalue: kolibri,\n\t\t\twritable: false,\n\t\t});\n\t}\n\treturn kolibri;\n};\n\nfunction prototypeKoliBri<T>(name: string, cb: T) {\n\ttry {\n\t\tObject.defineProperty(getKoliBri(), name, {\n\t\t\tget: function () {\n\t\t\t\treturn cb;\n\t\t\t},\n\t\t});\n\t} catch (e) {\n\t\tLog.debug(`KoliBri property ${name} is already bind.`);\n\t}\n}\n\nconst metaModeLog = (name: string, active: boolean) => Log.debug(`${name} ${active ? '' : 'not '}activated`);\n\nexport const initialize = (): void => {\n\tinitKoliBri();\n\tif (getDevMode()) {\n\t\trenderDevAdvice();\n\n\t\tprototypeKoliBri('a11yColorContrast', koliBriA11yColorContrast);\n\t\tprototypeKoliBri('querySelector', koliBriQuerySelector);\n\t\tprototypeKoliBri('querySelectorAll', koliBriQuerySelectorAll);\n\t\tprototypeKoliBri('querySelectorColors', koliBriQuerySelectorColors);\n\t\tprototypeKoliBri('utils', function () {\n\t\t\treturn KoliBriUtils;\n\t\t});\n\t\tprototypeKoliBri('parseJson', parseJson);\n\t\tprototypeKoliBri('stringifyJson', stringifyJson);\n\n\t\tconst body = getDocument().body;\n\n\t\tconst div = getDocument().createElement('svg');\n\t\tdiv.setAttribute('aria-label', 'KoliBri-DevTools');\n\t\tdiv.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\t\tdiv.setAttribute('role', 'toolbar');\n\t\tdiv.setAttribute('style', 'position: fixed;color: black;font-size: 200%;bottom: 0.25rem;right: 0.25rem;');\n\t\tdiv.innerHTML = `<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"50\"\n height=\"50\"\n viewBox=\"0 0 600 600\"\n>\n <path d=\"M353 322L213 304V434L353 322Z\" fill=\"#047\" />\n <path d=\"M209 564V304L149 434L209 564Z\" fill=\"#047\" />\n <path d=\"M357 316L417 250L361 210L275 244L357 316Z\" fill=\"#047\" />\n <path d=\"M353 318L35 36L213 300L353 318Z\" fill=\"#047\" />\n <path d=\"M329 218L237 92L250 222L272 241L329 218Z\" fill=\"#047\" />\n <path d=\"M391 286L565 272L421 252L391 286Z\" fill=\"#047\" />\n</svg>`;\n\n\t\tgetDocument().body.appendChild(div);\n\n\t\tmetaModeLog('Development mode', getDevMode());\n\t\tmetaModeLog('Experimental mode', getExperimentalMode());\n\t\tmetaModeLog('Color contrast analysis', getColorContrastAnalysis());\n\n\t\tif (getColorContrastAnalysis()) {\n\t\t\tconst timeout = setTimeout(() => {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t\tsetInterval(() => {\n\t\t\t\t\tKoliBriUtils.queryHtmlElementColors(getDocument().createElement('div'), koliBriA11yColorContrast(body), false, false);\n\t\t\t\t}, 10000);\n\t\t\t}, 2500);\n\t\t}\n\n\t\t// setTimeout(() => {\n\t\t// const kolButton = koliBriQuerySelector<HTMLButtonElement>(document, '[_label=\"Aktion ausführen\"]');\n\t\t// if (kolButton) {\n\t\t// const button = koliBriQuerySelector<HTMLButtonElement>(kolButton?.shadowRoot as ShadowRoot, 'button');\n\t\t// if (button) {\n\t\t// kolButton.style.backgroundColor = '#988';\n\t\t// button.style.backgroundColor = 'inherit';\n\t\t// button.style.color = '#988';\n\t\t// const kolButtonColors = koliBriQuerySelectorColors('[_label=\"Aktion ausführen\"]');\n\t\t// console.log(\n\t\t// koliBriQuerySelectorColors('button', {\n\t\t// ...kolButtonColors,\n\t\t// })\n\t\t// );\n\t\t// }\n\t\t// }\n\t\t// }, 2500);\n\t}\n};\n"],"version":3}