xv-webcomponents 1.25.1 → 2.0.0-beta.28

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 (379) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +249 -129
  3. package/dist/angular/angular-component-lib/utils.d.ts +9 -0
  4. package/dist/angular/angular-component-lib/utils.js +58 -0
  5. package/dist/angular/index.d.ts +4 -0
  6. package/dist/angular/index.js +56 -0
  7. package/dist/angular/proxies.d.ts +696 -0
  8. package/dist/angular/proxies.js +1642 -0
  9. package/dist/angular/web-components.module.d.ts +7 -0
  10. package/dist/angular/web-components.module.js +168 -0
  11. package/dist/cjs/_vars-DMytunQw.js +26 -0
  12. package/dist/cjs/{index-Cb30DBqk.js → index-DaTpiyaU.js} +2 -0
  13. package/dist/cjs/{index-DpLAFt0R.js → index-Dwhgrew8.js} +401 -1805
  14. package/dist/cjs/index.cjs.js +4 -1
  15. package/dist/cjs/loader.cjs.js +2 -2
  16. package/dist/cjs/maplibre-gl-BIvnXGyX.js +884 -0
  17. package/dist/cjs/{xv-accordion-v2_50.cjs.entry.js → xv-accordion-v2_49.cjs.entry.js} +2046 -694
  18. package/dist/cjs/xv-header-next.cjs.entry.js +10 -89
  19. package/dist/cjs/xv-mega-menu-next.cjs.entry.js +4 -4
  20. package/dist/cjs/xv-webcomponents.cjs.js +3 -3
  21. package/dist/collection/collection-manifest.json +2 -2
  22. package/dist/collection/components/xv-accordion/xv-accordion.js +1 -1
  23. package/dist/collection/components/xv-accordion-item/xv-accordion-item.js +1 -1
  24. package/dist/collection/components/xv-breadcrumbs/xv-breadcrumbs.js +1 -1
  25. package/dist/collection/components/xv-button/xv-button.js +2 -1
  26. package/dist/collection/components/xv-button-group/xv-button-group.js +3 -3
  27. package/dist/collection/components/xv-card/xv-card.js +1 -1
  28. package/dist/collection/components/xv-checkbox/xv-checkbox.js +4 -3
  29. package/dist/collection/components/xv-content-switcher/xv-content-switcher-item/xv-content-switcher-item.js +1 -1
  30. package/dist/collection/components/xv-content-switcher/xv-content-switcher.js +7 -6
  31. package/dist/collection/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.js +5 -3
  32. package/dist/collection/components/xv-data-table/xv-data-table-row/xv-data-table-row.js +4 -3
  33. package/dist/collection/components/xv-data-table/xv-data-table.js +5 -3
  34. package/dist/collection/components/xv-date-picker/xv-date-picker.js +16 -8
  35. package/dist/collection/components/xv-datepicker/xv-datepicker.js +5 -4
  36. package/dist/collection/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.js +9 -5
  37. package/dist/collection/components/xv-dropdown/xv-dropdown.js +9 -5
  38. package/dist/collection/components/xv-file-uploader/xv-file-uploader.css +3 -3
  39. package/dist/collection/components/xv-file-uploader/xv-file-uploader.js +6 -4
  40. package/dist/collection/components/xv-footer/xv-footer.js +1 -1
  41. package/dist/collection/components/xv-geo-map/xv-geo-map.css +43 -67
  42. package/dist/collection/components/xv-geo-map/xv-geo-map.js +10 -10
  43. package/dist/collection/components/xv-header/xv-header.js +7 -88
  44. package/dist/collection/components/xv-header-next/xv-header-next.js +10 -91
  45. package/dist/collection/components/xv-link/xv-link.js +1 -1
  46. package/dist/collection/components/xv-loader/xv-loader.js +2 -1
  47. package/dist/collection/components/xv-login-modal/xv-login-modal.css +7 -7
  48. package/dist/collection/components/xv-mega-menu/xv-mega-menu.js +2 -2
  49. package/dist/collection/components/xv-mega-menu-next/xv-mega-menu-next.js +5 -4
  50. package/dist/collection/components/xv-modal/xv-modal.js +3 -2
  51. package/dist/collection/components/xv-notification/xv-notification.js +3 -2
  52. package/dist/collection/components/xv-number-input/xv-number-input.js +4 -3
  53. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu-item/xv-overflow-menu-item.js +7 -4
  54. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu.js +14 -11
  55. package/dist/collection/components/xv-pagination/xv-pagination.css +2 -2
  56. package/dist/collection/components/xv-pagination/xv-pagination.js +7 -4
  57. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.js +3 -2
  58. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator.js +6 -5
  59. package/dist/collection/components/xv-radio/xv-radio.js +4 -3
  60. package/dist/collection/components/xv-slider/xv-slider.js +1 -1
  61. package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.css +129 -61
  62. package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.js +279 -78
  63. package/dist/collection/components/xv-table/xv-table-row/xv-table-row.css +138 -24
  64. package/dist/collection/components/xv-table/xv-table-row/xv-table-row.js +334 -162
  65. package/dist/collection/components/xv-table/xv-table.css +240 -99
  66. package/dist/collection/components/xv-table/xv-table.js +2058 -64
  67. package/dist/collection/components/xv-table/xv-table.model.js +10 -0
  68. package/dist/collection/components/xv-table/xv-table.utils.js +243 -0
  69. package/dist/collection/components/xv-tabs/xv-tab/xv-tab.js +1 -1
  70. package/dist/collection/components/xv-tabs/xv-tabs.js +2 -1
  71. package/dist/collection/components/xv-tag/xv-tag.js +1 -1
  72. package/dist/collection/components/xv-tag-combobox/xv-tag-combobox.js +6 -4
  73. package/dist/collection/components/xv-text-input/xv-text-input.js +4 -3
  74. package/dist/collection/components/xv-textarea/xv-textarea.js +4 -3
  75. package/dist/collection/components/xv-tile/xv-tile.css +1 -1
  76. package/dist/collection/components/xv-tile/xv-tile.js +2 -2
  77. package/dist/collection/components/xv-toggle/xv-toggle.js +3 -2
  78. package/dist/collection/components/xv-toggle-tip/xv-toggle-tip.js +3 -2
  79. package/dist/collection/components/xv-tooltip/xv-tooltip.js +4 -3
  80. package/dist/collection/index.js +3 -0
  81. package/dist/collection/utils/table-layout.js +130 -0
  82. package/dist/components/index.d.ts +35 -0
  83. package/dist/components/index.js +1 -0
  84. package/dist/components/p-A3B7AR96.js +9 -0
  85. package/dist/components/p-B0kwaJ8n.js +1 -0
  86. package/dist/components/p-B9zHwwFm.js +1 -0
  87. package/dist/components/p-BEoh0dZI.js +1 -0
  88. package/dist/components/p-BaZ-srfu.js +1 -0
  89. package/dist/components/p-Bej2l-wN.js +1 -0
  90. package/dist/components/p-BfP9ezJQ.js +1 -0
  91. package/dist/components/p-BfhvpeQh.js +1 -0
  92. package/dist/components/p-BiiqsbVQ.js +1 -0
  93. package/dist/components/p-CSYnNMKb.js +1 -0
  94. package/dist/components/p-CspyoLL9.js +1 -0
  95. package/dist/components/p-CvgDDcjp.js +1 -0
  96. package/dist/components/p-D4FwGeDJ.js +1 -0
  97. package/dist/components/p-DCvH_Br_.js +1 -0
  98. package/dist/components/p-DFe9Mtw_.js +1 -0
  99. package/dist/components/p-DFtMwE-h.js +1 -0
  100. package/dist/components/p-DIvi4fI3.js +1 -0
  101. package/dist/components/p-DNRISLNf.js +1 -0
  102. package/dist/components/p-DPnvoOYj.js +1 -0
  103. package/dist/components/p-Dwbe941A.js +1 -0
  104. package/dist/components/p-HjYAjHna.js +1 -0
  105. package/dist/components/p-JClekcEh.js +1 -0
  106. package/dist/components/p-NoM9oIJn.js +1 -0
  107. package/dist/components/p-SvgdO2VS.js +1 -0
  108. package/dist/components/p-XEk4dHG3.js +1 -0
  109. package/dist/components/p-e0i0f6QA.js +1 -0
  110. package/dist/components/p-i7_81si-.js +1 -0
  111. package/dist/components/p-i82EFiq6.js +1 -0
  112. package/dist/components/p-jD7nSJaM.js +1 -0
  113. package/dist/components/xv-accordion-v2-item.d.ts +11 -0
  114. package/dist/components/xv-accordion-v2-item.js +1 -0
  115. package/dist/components/xv-accordion-v2.d.ts +11 -0
  116. package/dist/components/xv-accordion-v2.js +1 -0
  117. package/dist/components/xv-breadcrumbs-v2.d.ts +11 -0
  118. package/dist/components/xv-breadcrumbs-v2.js +1 -0
  119. package/dist/components/xv-button-group-v2.d.ts +11 -0
  120. package/dist/components/xv-button-group-v2.js +1 -0
  121. package/dist/components/xv-button-v2.d.ts +11 -0
  122. package/dist/components/xv-button-v2.js +1 -0
  123. package/dist/components/xv-card-v2.d.ts +11 -0
  124. package/dist/components/xv-card-v2.js +1 -0
  125. package/dist/components/xv-checkbox-v2.d.ts +11 -0
  126. package/dist/components/xv-checkbox-v2.js +1 -0
  127. package/dist/components/xv-content-switcher-item-v2.d.ts +11 -0
  128. package/dist/components/xv-content-switcher-item-v2.js +1 -0
  129. package/dist/components/xv-content-switcher-v2.d.ts +11 -0
  130. package/dist/components/xv-content-switcher-v2.js +1 -0
  131. package/dist/components/xv-data-table-cell.d.ts +11 -0
  132. package/dist/components/xv-data-table-cell.js +1 -0
  133. package/dist/components/xv-data-table-collapse.d.ts +11 -0
  134. package/dist/components/xv-data-table-collapse.js +1 -0
  135. package/dist/components/xv-data-table-row.d.ts +11 -0
  136. package/dist/components/xv-data-table-row.js +1 -0
  137. package/dist/components/xv-data-table.d.ts +11 -0
  138. package/dist/components/xv-data-table.js +7 -0
  139. package/dist/components/xv-date-picker.d.ts +11 -0
  140. package/dist/components/xv-date-picker.js +1 -0
  141. package/dist/components/xv-datepicker.d.ts +11 -0
  142. package/dist/components/xv-datepicker.js +1 -0
  143. package/dist/components/xv-dropdown-v2-item.d.ts +11 -0
  144. package/dist/components/xv-dropdown-v2-item.js +1 -0
  145. package/dist/components/xv-dropdown-v2.d.ts +11 -0
  146. package/dist/components/xv-dropdown-v2.js +1 -0
  147. package/dist/components/xv-file-uploader.d.ts +11 -0
  148. package/dist/components/xv-file-uploader.js +1 -0
  149. package/dist/components/xv-footer.d.ts +11 -0
  150. package/dist/components/xv-footer.js +1 -0
  151. package/dist/components/xv-geo-map-v2.d.ts +11 -0
  152. package/dist/components/xv-geo-map-v2.js +1 -0
  153. package/dist/components/xv-header-next.d.ts +11 -0
  154. package/dist/components/xv-header-next.js +1 -0
  155. package/dist/components/xv-header.d.ts +11 -0
  156. package/dist/components/xv-header.js +1 -0
  157. package/dist/components/xv-image-viewer.d.ts +11 -0
  158. package/dist/components/xv-image-viewer.js +1 -0
  159. package/dist/components/xv-link-v2.d.ts +11 -0
  160. package/dist/components/xv-link-v2.js +1 -0
  161. package/dist/components/xv-loader-v2.d.ts +11 -0
  162. package/dist/components/xv-loader-v2.js +1 -0
  163. package/dist/components/xv-login-modal.d.ts +11 -0
  164. package/dist/components/xv-login-modal.js +1 -0
  165. package/dist/components/xv-mega-menu-next.d.ts +11 -0
  166. package/dist/components/xv-mega-menu-next.js +1 -0
  167. package/dist/components/xv-mega-menu.d.ts +11 -0
  168. package/dist/components/xv-mega-menu.js +1 -0
  169. package/dist/components/xv-modal-v2.d.ts +11 -0
  170. package/dist/components/xv-modal-v2.js +1 -0
  171. package/dist/components/xv-notification-v2.d.ts +11 -0
  172. package/dist/components/xv-notification-v2.js +1 -0
  173. package/dist/components/xv-number-input-v2.d.ts +11 -0
  174. package/dist/components/xv-number-input-v2.js +1 -0
  175. package/dist/components/xv-overflow-menu-v2-item.d.ts +11 -0
  176. package/dist/components/xv-overflow-menu-v2-item.js +1 -0
  177. package/dist/components/xv-overflow-menu-v2.d.ts +11 -0
  178. package/dist/components/xv-overflow-menu-v2.js +1 -0
  179. package/dist/components/xv-pagination.d.ts +11 -0
  180. package/dist/components/xv-pagination.js +1 -0
  181. package/dist/components/xv-progress-indicator-v2-item.d.ts +11 -0
  182. package/dist/components/xv-progress-indicator-v2-item.js +1 -0
  183. package/dist/components/xv-progress-indicator-v2.d.ts +11 -0
  184. package/dist/components/xv-progress-indicator-v2.js +1 -0
  185. package/dist/components/xv-radio-v2.d.ts +11 -0
  186. package/dist/components/xv-radio-v2.js +1 -0
  187. package/dist/components/xv-slider-v2.d.ts +11 -0
  188. package/dist/components/xv-slider-v2.js +1 -0
  189. package/dist/components/xv-tab-v2.d.ts +11 -0
  190. package/dist/components/xv-tab-v2.js +1 -0
  191. package/dist/components/xv-table-cell.d.ts +11 -0
  192. package/dist/components/xv-table-cell.js +1 -0
  193. package/dist/components/xv-table-row.d.ts +11 -0
  194. package/dist/components/xv-table-row.js +1 -0
  195. package/dist/components/xv-table.d.ts +11 -0
  196. package/dist/components/xv-table.js +1 -0
  197. package/dist/components/xv-tabs-v2.d.ts +11 -0
  198. package/dist/components/xv-tabs-v2.js +1 -0
  199. package/dist/components/xv-tag-combobox.d.ts +11 -0
  200. package/dist/components/xv-tag-combobox.js +1 -0
  201. package/dist/components/xv-tag-v2.d.ts +11 -0
  202. package/dist/components/xv-tag-v2.js +1 -0
  203. package/dist/components/xv-text-input-v2.d.ts +11 -0
  204. package/dist/components/xv-text-input-v2.js +1 -0
  205. package/dist/components/xv-textarea.d.ts +11 -0
  206. package/dist/components/xv-textarea.js +1 -0
  207. package/dist/components/xv-tile.d.ts +11 -0
  208. package/dist/components/xv-tile.js +1 -0
  209. package/dist/components/xv-toggle-tip.d.ts +11 -0
  210. package/dist/components/xv-toggle-tip.js +1 -0
  211. package/dist/components/xv-toggle.d.ts +11 -0
  212. package/dist/components/xv-toggle.js +1 -0
  213. package/dist/components/xv-tooltip-v2.d.ts +11 -0
  214. package/dist/components/xv-tooltip-v2.js +1 -0
  215. package/dist/custom-elements.json +11561 -0
  216. package/dist/docs.d.ts +480 -0
  217. package/dist/docs.json +17181 -0
  218. package/dist/esm/_vars-CDEU4jkD.js +23 -0
  219. package/dist/esm/{index-CQm2sRKT.js → index-ClusqSO5.js} +2 -0
  220. package/dist/esm/{index-DmxA2ysB.js → index-DJC3-dS3.js} +400 -1806
  221. package/dist/esm/index.js +2 -1
  222. package/dist/esm/loader.js +3 -3
  223. package/dist/esm/maplibre-gl-A3B7AR96.js +826 -0
  224. package/dist/esm/maplibre-gl-shared.mjs +2 -2
  225. package/dist/esm/maplibre-gl-worker.mjs +2 -2
  226. package/dist/esm/{xv-accordion-v2_50.entry.js → xv-accordion-v2_49.entry.js} +2044 -691
  227. package/dist/esm/xv-header-next.entry.js +10 -89
  228. package/dist/esm/xv-mega-menu-next.entry.js +4 -4
  229. package/dist/esm/xv-webcomponents.js +4 -4
  230. package/dist/react/components.d.ts +55 -0
  231. package/dist/react/components.js +56 -0
  232. package/dist/react/create-component.d.ts +24 -0
  233. package/dist/react/runtime.d.ts +2 -0
  234. package/dist/react/runtime.js +43 -0
  235. package/dist/react/tag-transformer.d.ts +3 -0
  236. package/dist/react/tag-transformer.js +12 -0
  237. package/dist/react/xv-accordion-v2-item.d.ts +12 -0
  238. package/dist/react/xv-accordion-v2-item.js +14 -0
  239. package/dist/react/xv-accordion-v2.d.ts +15 -0
  240. package/dist/react/xv-accordion-v2.js +14 -0
  241. package/dist/react/xv-breadcrumbs-v2.d.ts +9 -0
  242. package/dist/react/xv-breadcrumbs-v2.js +14 -0
  243. package/dist/react/xv-button-group-v2.d.ts +12 -0
  244. package/dist/react/xv-button-group-v2.js +14 -0
  245. package/dist/react/xv-button-v2.d.ts +9 -0
  246. package/dist/react/xv-button-v2.js +14 -0
  247. package/dist/react/xv-card-v2.d.ts +9 -0
  248. package/dist/react/xv-card-v2.js +14 -0
  249. package/dist/react/xv-checkbox-v2.d.ts +15 -0
  250. package/dist/react/xv-checkbox-v2.js +19 -0
  251. package/dist/react/xv-content-switcher-item-v2.d.ts +9 -0
  252. package/dist/react/xv-content-switcher-item-v2.js +14 -0
  253. package/dist/react/xv-content-switcher-v2.d.ts +12 -0
  254. package/dist/react/xv-content-switcher-v2.js +14 -0
  255. package/dist/react/xv-data-table-cell.d.ts +12 -0
  256. package/dist/react/xv-data-table-cell.js +14 -0
  257. package/dist/react/xv-data-table-collapse.d.ts +12 -0
  258. package/dist/react/xv-data-table-collapse.js +14 -0
  259. package/dist/react/xv-data-table-row.d.ts +12 -0
  260. package/dist/react/xv-data-table-row.js +14 -0
  261. package/dist/react/xv-data-table.d.ts +12 -0
  262. package/dist/react/xv-data-table.js +14 -0
  263. package/dist/react/xv-date-picker.d.ts +14 -0
  264. package/dist/react/xv-date-picker.js +18 -0
  265. package/dist/react/xv-datepicker.d.ts +13 -0
  266. package/dist/react/xv-datepicker.js +17 -0
  267. package/dist/react/xv-dropdown-v2-item.d.ts +12 -0
  268. package/dist/react/xv-dropdown-v2-item.js +14 -0
  269. package/dist/react/xv-dropdown-v2.d.ts +13 -0
  270. package/dist/react/xv-dropdown-v2.js +17 -0
  271. package/dist/react/xv-file-uploader.d.ts +13 -0
  272. package/dist/react/xv-file-uploader.js +17 -0
  273. package/dist/react/xv-footer.d.ts +9 -0
  274. package/dist/react/xv-footer.js +14 -0
  275. package/dist/react/xv-geo-map-v2.d.ts +13 -0
  276. package/dist/react/xv-geo-map-v2.js +17 -0
  277. package/dist/react/xv-header-next.d.ts +12 -0
  278. package/dist/react/xv-header-next.js +14 -0
  279. package/dist/react/xv-header.d.ts +12 -0
  280. package/dist/react/xv-header.js +14 -0
  281. package/dist/react/xv-image-viewer.d.ts +12 -0
  282. package/dist/react/xv-image-viewer.js +14 -0
  283. package/dist/react/xv-link-v2.d.ts +9 -0
  284. package/dist/react/xv-link-v2.js +14 -0
  285. package/dist/react/xv-loader-v2.d.ts +9 -0
  286. package/dist/react/xv-loader-v2.js +14 -0
  287. package/dist/react/xv-login-modal.d.ts +12 -0
  288. package/dist/react/xv-login-modal.js +14 -0
  289. package/dist/react/xv-mega-menu-next.d.ts +12 -0
  290. package/dist/react/xv-mega-menu-next.js +14 -0
  291. package/dist/react/xv-mega-menu.d.ts +12 -0
  292. package/dist/react/xv-mega-menu.js +14 -0
  293. package/dist/react/xv-modal-v2.d.ts +12 -0
  294. package/dist/react/xv-modal-v2.js +14 -0
  295. package/dist/react/xv-notification-v2.d.ts +12 -0
  296. package/dist/react/xv-notification-v2.js +14 -0
  297. package/dist/react/xv-number-input-v2.d.ts +12 -0
  298. package/dist/react/xv-number-input-v2.js +14 -0
  299. package/dist/react/xv-overflow-menu-v2-item.d.ts +12 -0
  300. package/dist/react/xv-overflow-menu-v2-item.js +14 -0
  301. package/dist/react/xv-overflow-menu-v2.d.ts +13 -0
  302. package/dist/react/xv-overflow-menu-v2.js +17 -0
  303. package/dist/react/xv-pagination.d.ts +15 -0
  304. package/dist/react/xv-pagination.js +14 -0
  305. package/dist/react/xv-progress-indicator-v2-item.d.ts +9 -0
  306. package/dist/react/xv-progress-indicator-v2-item.js +14 -0
  307. package/dist/react/xv-progress-indicator-v2.d.ts +9 -0
  308. package/dist/react/xv-progress-indicator-v2.js +14 -0
  309. package/dist/react/xv-radio-v2.d.ts +9 -0
  310. package/dist/react/xv-radio-v2.js +14 -0
  311. package/dist/react/xv-slider-v2.d.ts +12 -0
  312. package/dist/react/xv-slider-v2.js +14 -0
  313. package/dist/react/xv-tab-v2.d.ts +9 -0
  314. package/dist/react/xv-tab-v2.js +14 -0
  315. package/dist/react/xv-table-cell.d.ts +9 -0
  316. package/dist/react/xv-table-cell.js +14 -0
  317. package/dist/react/xv-table-row.d.ts +9 -0
  318. package/dist/react/xv-table-row.js +14 -0
  319. package/dist/react/xv-table.d.ts +18 -0
  320. package/dist/react/xv-table.js +22 -0
  321. package/dist/react/xv-tabs-v2.d.ts +12 -0
  322. package/dist/react/xv-tabs-v2.js +14 -0
  323. package/dist/react/xv-tag-combobox.d.ts +13 -0
  324. package/dist/react/xv-tag-combobox.js +17 -0
  325. package/dist/react/xv-tag-v2.d.ts +12 -0
  326. package/dist/react/xv-tag-v2.js +14 -0
  327. package/dist/react/xv-text-input-v2.d.ts +12 -0
  328. package/dist/react/xv-text-input-v2.js +14 -0
  329. package/dist/react/xv-textarea.d.ts +12 -0
  330. package/dist/react/xv-textarea.js +14 -0
  331. package/dist/react/xv-tile.d.ts +15 -0
  332. package/dist/react/xv-tile.js +14 -0
  333. package/dist/react/xv-toggle-tip.d.ts +12 -0
  334. package/dist/react/xv-toggle-tip.js +14 -0
  335. package/dist/react/xv-toggle.d.ts +12 -0
  336. package/dist/react/xv-toggle.js +14 -0
  337. package/dist/react/xv-tooltip-v2.d.ts +9 -0
  338. package/dist/react/xv-tooltip-v2.js +14 -0
  339. package/dist/types/components/xv-header/xv-header.d.ts +13 -29
  340. package/dist/types/components/xv-header-next/xv-header-next.d.ts +13 -29
  341. package/dist/types/components/xv-table/xv-table-cell/xv-table-cell.d.ts +43 -8
  342. package/dist/types/components/xv-table/xv-table-row/xv-table-row.d.ts +57 -18
  343. package/dist/types/components/xv-table/xv-table.d.ts +298 -9
  344. package/dist/types/components/xv-table/xv-table.model.d.ts +78 -0
  345. package/dist/types/components/xv-table/xv-table.utils.d.ts +47 -0
  346. package/dist/types/components.d.ts +1498 -209
  347. package/dist/types/index.d.ts +1 -0
  348. package/dist/types/stencil-public-runtime.d.ts +126 -57
  349. package/dist/types/utils/table-layout.d.ts +7 -0
  350. package/dist/vscode-data.json +3293 -0
  351. package/dist/xv-webcomponents/index.esm.js +1 -1
  352. package/dist/xv-webcomponents/{p-fe9b38f8.entry.js → p-0c30d09f.entry.js} +1 -1
  353. package/dist/xv-webcomponents/p-6b58979e.entry.js +8 -0
  354. package/dist/xv-webcomponents/p-A3B7AR96.js +9 -0
  355. package/dist/xv-webcomponents/p-CDEU4jkD.js +1 -0
  356. package/dist/xv-webcomponents/p-DJC3-dS3.js +3 -0
  357. package/dist/xv-webcomponents/p-DSFVdw3w.js +1 -0
  358. package/dist/xv-webcomponents/p-c4173686.entry.js +1 -0
  359. package/dist/xv-webcomponents/xv-webcomponents.css +6 -6
  360. package/dist/xv-webcomponents/xv-webcomponents.esm.js +1 -1
  361. package/loader/index.d.ts +1 -1
  362. package/package.json +139 -61
  363. package/dist/cjs/_vars-Cyrk3TAl.js +0 -3423
  364. package/dist/cjs/maplibre-gl-CCZS3Rg5.js +0 -900
  365. package/dist/collection/components/xv-header/_vars.js +0 -51
  366. package/dist/collection/components/xv-table/_vars.js +0 -2
  367. package/dist/collection/components/xv-table/xv-table-expand/xv-table-expand.css +0 -58
  368. package/dist/collection/components/xv-table/xv-table-expand/xv-table-expand.js +0 -75
  369. package/dist/esm/_vars-BkYBzv3h.js +0 -3413
  370. package/dist/esm/maplibre-gl-CS4Eagm9.js +0 -813
  371. package/dist/types/components/xv-header/_vars.d.ts +0 -47
  372. package/dist/types/components/xv-table/_vars.d.ts +0 -15
  373. package/dist/types/components/xv-table/xv-table-expand/xv-table-expand.d.ts +0 -8
  374. package/dist/xv-webcomponents/p-7832549c.entry.js +0 -8
  375. package/dist/xv-webcomponents/p-BkYBzv3h.js +0 -1
  376. package/dist/xv-webcomponents/p-CQm2sRKT.js +0 -1
  377. package/dist/xv-webcomponents/p-CS4Eagm9.js +0 -10
  378. package/dist/xv-webcomponents/p-DmxA2ysB.js +0 -2
  379. package/dist/xv-webcomponents/p-f46bb687.entry.js +0 -1
@@ -568,7 +568,7 @@ export class XvGeoMap {
568
568
  this.map.fitBounds([[minX, minY], [maxX, maxY]], { padding: 48, maxZoom: 12, duration: 800 });
569
569
  }
570
570
  render() {
571
- return (h(Host, { key: '5e284532eaaf73fac04321672fd135a5fdfd1055' }, h("div", { key: 'b9334d39245fde17f998d0ad2557fe0a1fd09394', class: "container" }, h("div", { key: '8de6c78a3fb0907c9aac53f4543e3c0e85fbef73', class: "map", ref: el => (this.mapContainer = el) }), this.ready && this.showSearch && (h("div", { key: 'e65a447aa5fbebd4c95681c23ffa944d58d43c04', class: "search" }, h("input", { key: 'a33e4ccc1eaa2c8bd303126de72bcf0ce8a667ab', type: "search", placeholder: "Ort oder PLZ suchen", value: this.searchQuery, onInput: e => this.onSearchInput(e.target.value) }), this.searchResults.length > 0 && (h("ul", { key: 'd1debbd7d31a7a2048b109ba2e29fa4362e8a1a0', class: "search-results" }, this.searchResults.map(r => (h("li", { key: r.code, onClick: () => this.pickSearchResult(r) }, this.level === 'plz5' ? (h("span", null, h("strong", null, r.code), " ", r.name)) : (h("span", null, r.name))))))))), this.ready && this.zoomGated && (h("div", { key: 'ba53e4d000970bcfc9a4d4f785c1b4b5a13f9c95', class: "hint" }, "Reinzoomen, um PLZ-Gebiete zu laden")), !this.ready && !this.loadError && (h("div", { key: 'c15cc4e8b46cb5caab132974c6752100b2265ff7', class: "skeleton", "aria-busy": "true" }, h("xv-loader-v2", { key: '95d7ffb0dc15a48d375b412f3f54914016e8c841', variant: "vertical" }, "Karte wird geladen \u2026"))), this.loadError && h("div", { key: 'fd46702e9cd1d5e9575c48a62634a300e9c1c717', class: "skeleton error" }, "Karte konnte nicht geladen werden."))));
571
+ return (h(Host, { key: 'd26f670de7987c843380aed0a1fec3843455c59b' }, h("div", { key: 'dd55b67e77e7daaf7faa1961c6f759e1d50dc83a', class: "container" }, h("div", { key: '35c95b2dfc294561955600cf1cca4baeb1df19aa', class: "map", ref: el => (this.mapContainer = el) }), this.ready && this.showSearch && (h("div", { key: '6662b5b87c51dd9244cb807d497e8cb2f3682121', class: "search" }, h("input", { key: '8cfc25019c36424060c9a3a86b22e33c3a1c984a', type: "search", placeholder: "Ort oder PLZ suchen", value: this.searchQuery, onInput: e => this.onSearchInput(e.target.value) }), this.searchResults.length > 0 && (h("ul", { key: 'd2dcd44daaa2bf882ea158643dd13d7c83895ab5', class: "search-results" }, this.searchResults.map(r => (h("li", { key: r.code, onClick: () => this.pickSearchResult(r) }, this.level === 'plz5' ? (h("span", null, h("strong", null, r.code), " ", r.name)) : (h("span", null, r.name))))))))), this.ready && this.zoomGated && (h("div", { key: 'cff4c14f9f600587e12c35a11a41cfcb830fdc1d', class: "hint" }, "Reinzoomen, um PLZ-Gebiete zu laden")), !this.ready && !this.loadError && (h("div", { key: 'b4931b2af73b9dc6d272ee502e1289ee90d0a9ec', class: "skeleton", "aria-busy": "true" }, h("xv-loader-v2", { key: '9544aa90adc4476536e41e2339b3559328dde9c3', variant: "vertical" }, "Karte wird geladen \u2026"))), this.loadError && h("div", { key: '2f916262f53e3e34f3a4ba56295e48f375efb3dc', class: "skeleton error" }, "Karte konnte nicht geladen werden."))));
572
572
  }
573
573
  static get is() { return "xv-geo-map-v2"; }
574
574
  static get encapsulation() { return "shadow"; }
@@ -596,7 +596,7 @@ export class XvGeoMap {
596
596
  "optional": false,
597
597
  "docs": {
598
598
  "tags": [],
599
- "text": "Base URL of the geo API (Xv.Api v1/geo \u2014 contract-compatible with the XvGeoTool API).\nDefault is the same-origin Front Door route, so no CORS is involved on crossvertise pages."
599
+ "text": "Base URL of the geo API (Xv.Api v1/geo \u2014 contract-compatible with the XvGeoTool API).\r\nDefault is the same-origin Front Door route, so no CORS is involved on crossvertise pages."
600
600
  },
601
601
  "getter": false,
602
602
  "setter": false,
@@ -696,7 +696,7 @@ export class XvGeoMap {
696
696
  "optional": false,
697
697
  "docs": {
698
698
  "tags": [],
699
- "text": "MapLibre style URL for the vector basemap. Default: OpenFreeMap Positron \u2014 the same\npale data-overlay look as the previous CARTO light, free for commercial use, no API\nkey (openfreemap.org). Set to an empty string to fall back to the raster `tiles` path."
699
+ "text": "MapLibre style URL for the vector basemap. Default: OpenFreeMap Positron \u2014 the same\r\npale data-overlay look as the previous CARTO light, free for commercial use, no API\r\nkey (openfreemap.org). Set to an empty string to fall back to the raster `tiles` path."
700
700
  },
701
701
  "getter": false,
702
702
  "setter": false,
@@ -716,7 +716,7 @@ export class XvGeoMap {
716
716
  "optional": false,
717
717
  "docs": {
718
718
  "tags": [],
719
- "text": "Label language for the vector basemap (OpenMapTiles `name:{lang}` attribute, falling\nback to the place's local name). Empty string keeps the style's own labels."
719
+ "text": "Label language for the vector basemap (OpenMapTiles `name:{lang}` attribute, falling\r\nback to the place's local name). Empty string keeps the style's own labels."
720
720
  },
721
721
  "getter": false,
722
722
  "setter": false,
@@ -736,7 +736,7 @@ export class XvGeoMap {
736
736
  "optional": false,
737
737
  "docs": {
738
738
  "tags": [],
739
- "text": "Raster tile URL template, used only when `style-url` is empty. The former CARTO\ndefault now watermarks keyless traffic (\"API KEY REQUIRED\"), so this path needs a\nkeyed/licensed tile URL."
739
+ "text": "Raster tile URL template, used only when `style-url` is empty. The former CARTO\r\ndefault now watermarks keyless traffic (\"API KEY REQUIRED\"), so this path needs a\r\nkeyed/licensed tile URL."
740
740
  },
741
741
  "getter": false,
742
742
  "setter": false,
@@ -856,7 +856,7 @@ export class XvGeoMap {
856
856
  "optional": true,
857
857
  "docs": {
858
858
  "tags": [],
859
- "text": "Explicit URL of maplibre-gl-worker.mjs (maplibre-gl-shared.mjs must sit next to it).\nNeeded when the host bundler relocates the maplibre chunk so import.meta.url-relative\nworker resolution breaks (e.g. Angular/Vite dev server)."
859
+ "text": "Explicit URL of maplibre-gl-worker.mjs (maplibre-gl-shared.mjs must sit next to it).\r\nNeeded when the host bundler relocates the maplibre chunk so import.meta.url-relative\r\nworker resolution breaks (e.g. Angular/Vite dev server)."
860
860
  },
861
861
  "getter": false,
862
862
  "setter": false,
@@ -931,7 +931,7 @@ export class XvGeoMap {
931
931
  "references": {
932
932
  "GeoMapSelection": {
933
933
  "location": "local",
934
- "path": "/home/vsts/work/1/s/src/components/xv-geo-map/xv-geo-map.tsx",
934
+ "path": "C:/projects/crossvertise/XV-WebComponents/src/components/xv-geo-map/xv-geo-map.tsx",
935
935
  "id": "src/components/xv-geo-map/xv-geo-map.tsx::GeoMapSelection"
936
936
  }
937
937
  }
@@ -978,7 +978,7 @@ export class XvGeoMap {
978
978
  },
979
979
  "GeoMapSelection": {
980
980
  "location": "local",
981
- "path": "/home/vsts/work/1/s/src/components/xv-geo-map/xv-geo-map.tsx",
981
+ "path": "C:/projects/crossvertise/XV-WebComponents/src/components/xv-geo-map/xv-geo-map.tsx",
982
982
  "id": "src/components/xv-geo-map/xv-geo-map.tsx::GeoMapSelection"
983
983
  }
984
984
  },
@@ -1008,7 +1008,7 @@ export class XvGeoMap {
1008
1008
  },
1009
1009
  "GeoMapSelection": {
1010
1010
  "location": "local",
1011
- "path": "/home/vsts/work/1/s/src/components/xv-geo-map/xv-geo-map.tsx",
1011
+ "path": "C:/projects/crossvertise/XV-WebComponents/src/components/xv-geo-map/xv-geo-map.tsx",
1012
1012
  "id": "src/components/xv-geo-map/xv-geo-map.tsx::GeoMapSelection"
1013
1013
  }
1014
1014
  },
@@ -1061,7 +1061,7 @@ export class XvGeoMap {
1061
1061
  "return": "Promise<number>"
1062
1062
  },
1063
1063
  "docs": {
1064
- "text": "Highlight what a radius extension would ADD (optimizer proposal): the units within\n`km` that are not part of the selection render in the preview color. Visual only \u2014\nthe selection and its change events stay untouched. Returns the number of added units.",
1064
+ "text": "Highlight what a radius extension would ADD (optimizer proposal): the units within\r\n`km` that are not part of the selection render in the preview color. Visual only \u2014\r\nthe selection and its change events stay untouched. Returns the number of added units.",
1065
1065
  "tags": []
1066
1066
  }
1067
1067
  },
@@ -2,8 +2,6 @@ import { h } from "@stencil/core";
2
2
  import { SIZE_VAR } from "../../types/enum";
3
3
  import { api, debounce, getBaseUrl, getMetaNav } from "../../utils/utils";
4
4
  import { OverflowMenuVariant } from "../xv-overflow-menu/_vars";
5
- import { HubConnectionBuilder } from "@microsoft/signalr";
6
- import { INVOICE_NOTIFICATION_STATUS_ICON, INVOICE_NOTIFICATION_STATUS_TEXT, InvoiceNotificationStatus, invoiceNotificationStatusOf, SIGNALR_HUB_URL_SETTING, SIGNALR_JOIN_GROUP, SIGNALR_NOTIFICATIONS_UPDATED, } from "./_vars";
7
5
  import UserSearchIcon from "./user-magnifying-glass-regular-full.svg";
8
6
  export class XvHeader {
9
7
  constructor() {
@@ -94,15 +92,9 @@ export class XvHeader {
94
92
  this.metaNav = metaNav;
95
93
  this.orgUnit = ((_b = (_a = this.metaNav) === null || _a === void 0 ? void 0 : _a.User) === null || _b === void 0 ? void 0 : _b.SelectedOrgUnitName) || '';
96
94
  void this.getNotifications();
97
- void this.connectNotificationsHub();
98
95
  }
99
96
  console.info('MetaNav was updated', this.metaNav);
100
97
  }
101
- disconnectedCallback() {
102
- var _a;
103
- void ((_a = this.notificationsHub) === null || _a === void 0 ? void 0 : _a.stop());
104
- this.notificationsHub = undefined;
105
- }
106
98
  componentWillLoad() {
107
99
  this.baseUrl = getBaseUrl();
108
100
  void this.initHeader();
@@ -147,89 +139,16 @@ export class XvHeader {
147
139
  this.notifications = [];
148
140
  }
149
141
  }
150
- /**
151
- * Subscribes to the notifications hub so the bell reflects a status change without a reload.
152
- *
153
- * The platform calls `NotifyUserAsync` after it completes or fails a notification, which
154
- * invokes `NotificationsUpdated` on the person's group — but nothing here was listening, so
155
- * the bell only ever caught up on a full page load (MAR-15569). The list is re-fetched on
156
- * each push rather than patched from the message, because the hub carries no payload.
157
- *
158
- * Failure to connect is logged and otherwise ignored: the bell still works, it just needs a
159
- * reload to refresh, which is the behaviour this replaces.
160
- */
161
- async connectNotificationsHub() {
162
- var _a, _b, _c;
163
- if (!((_a = this.metaNav) === null || _a === void 0 ? void 0 : _a.IsManager) || this.notificationsHub)
164
- return;
165
- const personId = (_c = (_b = this.metaNav) === null || _b === void 0 ? void 0 : _b.User) === null || _c === void 0 ? void 0 : _c.Id;
166
- if (!personId)
167
- return;
168
- try {
169
- const hubUrl = await this.getNotificationsHubUrl();
170
- if (!hubUrl)
171
- return;
172
- const hub = new HubConnectionBuilder()
173
- .withUrl(hubUrl)
174
- .withAutomaticReconnect()
175
- .build();
176
- hub.on(SIGNALR_NOTIFICATIONS_UPDATED, () => void this.getNotifications());
177
- // Re-join after a reconnect: group membership lives on the connection, so it is lost
178
- // when the transport drops and the bell would silently stop updating.
179
- hub.onreconnected(() => void hub.invoke(SIGNALR_JOIN_GROUP, String(personId)));
180
- await hub.start();
181
- await hub.invoke(SIGNALR_JOIN_GROUP, String(personId));
182
- this.notificationsHub = hub;
183
- }
184
- catch (error) {
185
- console.error('Failed to connect to the notifications hub:', error === null || error === void 0 ? void 0 : error.message, error);
186
- }
187
- }
188
- /**
189
- * Reads the hub URL from the platform's client settings. That endpoint serves JavaScript
190
- * rather than JSON, and the `xv` global it defines is absent on Angular-rendered pages, so
191
- * the value is parsed out of the response text.
192
- */
193
- async getNotificationsHubUrl() {
194
- var _a, _b;
195
- const fromGlobal = (_b = (_a = window.xv) === null || _a === void 0 ? void 0 : _a.clientApplicationSettings) === null || _b === void 0 ? void 0 : _b[SIGNALR_HUB_URL_SETTING];
196
- if (fromGlobal)
197
- return fromGlobal;
198
- const settings = await fetch(`${this.baseUrl}/de-de/assets/clientapplicationsettings`, {
199
- credentials: 'include',
200
- }).then(res => res.text());
201
- const match = settings.match(new RegExp(`"${SIGNALR_HUB_URL_SETTING.replace(/\./g, '\\.')}"\\s*:\\s*"([^"]+)"`));
202
- return match === null || match === void 0 ? void 0 : match[1];
203
- }
204
- /**
205
- * Dismisses a notification. The platform soft-deletes it (`DateDeletedUtc`), which drops it
206
- * from the list endpoint. Without this the bell could not be cleared at all and every entry
207
- * sat there until its 24-hour expiry — the old MVC bell's "Geprüft" button did this and was
208
- * not carried over when the header moved to this component.
209
- */
210
- async dismissNotification(event, orderId) {
211
- // The row is inside an overflow-menu item; without this the menu closes on click and the
212
- // list is torn down before the request resolves.
213
- event.preventDefault();
214
- event.stopPropagation();
215
- try {
216
- await api.delete(`${this.baseUrl}/de-de/api/notifications/${orderId}`, {
217
- credentials: 'include',
218
- });
219
- }
220
- catch (error) {
221
- console.error('Failed to dismiss the notification:', error === null || error === void 0 ? void 0 : error.message, error);
222
- }
223
- await this.getNotifications();
224
- }
225
142
  _renderNotifications() {
226
143
  var _a;
227
144
  if (!((_a = this.metaNav) === null || _a === void 0 ? void 0 : _a.IsManager))
228
145
  return null;
229
- return (h("li", { class: "notifications" }, h("xv-overflow-menu-v2", { position: "right", size: SIZE_VAR.MD }, h("span", { slot: "trigger", class: "fa-stack" }, h("i", { class: "notifications-icon far fa-bell fa-stack-1x" }), this.notifications.length > 0 && (h("xv-tag-v2", { class: "counter-badge counter-badge--absolute", bg: "var(--icon-interactive, #97BF0D)", color: "var(--text-inverse, #FFF)" }, this.notifications.length))), this.notifications.map((notification) => {
230
- const status = invoiceNotificationStatusOf(notification.status);
231
- return (h("xv-overflow-menu-v2-item", { value: notification.id, variant: OverflowMenuVariant.GHOST, disabled: notification.isRead, clickable: false }, h("div", { class: "notifications-item" }, h("i", { class: { far: true, [INVOICE_NOTIFICATION_STATUS_ICON[status]]: true } }), h("div", { class: "notifications-item-body" }, h("span", null, "Rechnungsentwurf f\u00FCr Auftrag ", notification.orderId, " ist ", INVOICE_NOTIFICATION_STATUS_TEXT[status]), status === InvoiceNotificationStatus.COMPLETED && notification.pdfSrc ? (h("xv-link-v2", { variant: notification.isRead ? 'ghost' : 'standalone', href: notification.pdfSrc, target: "_blank" }, "Rechnung ansehen")) : (h("xv-link-v2", { variant: notification.isRead ? 'ghost' : 'standalone', href: `/de-de/manager/ordersales/details/${notification.orderId}` }, "Auftrag anschauen"))), h("xv-button-v2", { variant: "ghost", size: SIZE_VAR.SM, title: "Gepr\u00FCft", "aria-label": `Benachrichtigung für Auftrag ${notification.orderId} als geprüft markieren`, onClick: (event) => void this.dismissNotification(event, notification.orderId) }, h("i", { class: "far fa-times" })))));
232
- }))));
146
+ return (h("li", { class: "notifications" }, h("xv-overflow-menu-v2", { position: "right", size: SIZE_VAR.MD }, h("span", { slot: "trigger", class: "fa-stack" }, h("i", { class: "notifications-icon far fa-bell fa-stack-1x" }), this.notifications.length > 0 && (h("xv-tag-v2", { class: "counter-badge counter-badge--absolute", bg: "var(--icon-interactive, #97BF0D)", color: "var(--text-inverse, #FFF)" }, this.notifications.length))), this.notifications.map((notification) => (h("xv-overflow-menu-v2-item", { value: notification.id, variant: OverflowMenuVariant.GHOST, disabled: notification.isRead, clickable: false }, h("div", { class: "notifications-item" }, h("i", { class: {
147
+ far: true,
148
+ 'fa-clock': !notification.status,
149
+ 'fa-times-circle': notification.status === 1,
150
+ 'fa-circle': notification.status && notification.status !== 1,
151
+ } }), h("div", { class: "notifications-item-body" }, h("span", null, "Rechnungsentwurf f\u00FCr Auftrag ", notification.orderId, " ist ausstehend"), h("xv-link-v2", { variant: notification.isRead ? 'ghost' : 'standalone', href: `/de-de/manager/ordersales/details/${notification.orderId}` }, "Auftrag anschauen")))))))));
233
152
  }
234
153
  _renderAccount() {
235
154
  var _a, _b, _c, _d, _e, _f, _g, _h;
@@ -254,7 +173,7 @@ export class XvHeader {
254
173
  render() {
255
174
  var _a, _b, _c, _d, _e;
256
175
  const isXvBrand = (((_a = this.metaNav) === null || _a === void 0 ? void 0 : _a['WhitelabelName']) || 'Xv') === 'Xv';
257
- return (h("header", { key: 'e9157c2348f2e286e05e7b694d692ed88c80a543', class: "header" }, h("div", { key: 'ce7a4aa5e9820598eff8331b8f9ae6f57cc2c034', class: "header-wrapper" }, h("div", { key: '7bbec18df899b1234e8409b0c3723719180057ba', class: "xv-container" }, h("div", { key: 'f733864d082f8d23f69cb57961bdffeea60c7657', class: "header-top" }, h("div", { key: '63df8d29d16e79ef15cf5c5733a2f9b7662a990e', class: "header-top--left" }, h("xv-button-v2", { key: '5a782cdff61ce2fb4b9a5685d93d5c36a6a0fc9e', class: "menu-btn", variant: "ghost", onClick: this.toggleMobMenu }, h("i", { key: '2388b08c95773c3b08eeadf5acbe101119cc996d', slot: "icon-left", class: { 'fa': true, 'fa-times': this.mobMenuOpen, 'fa-bars': !this.mobMenuOpen } })), this.metaNav && (h("a", { key: '277a9e5179a10208e09b0896e234fd6abac4e6d4', href: `${window.location.origin}/` }, h("picture", { key: 'f07378b064d3af36a6f3059fd1665544eecd17be' }, h("source", { key: '719e3c4b4147df467f36c45ba91457c3b7724a35', srcSet: ((_b = this.metaNav) === null || _b === void 0 ? void 0 : _b.LogoUrl) || 'https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo.svg', media: "(min-width: 990px)" }), h("img", { key: 'cd5a8c6bcd09d0254b3518410efe1b45b9922b97', src: ((_c = this.metaNav) === null || _c === void 0 ? void 0 : _c.LogoSmallUrl) || 'https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo-small.svg', onError: this.logoFallback, loading: "lazy", alt: "Crossvertise" })))), this.orgUnit && (h("xv-link-v2", { key: '4775620b83865d75a8fdb1201ceca5bbe543ad67', class: "header-top--orgUnit", variant: "standalone", href: "/de-de/mycrossvertise" }, this.orgUnit))), h("ul", { key: 'c3b86b2b97c3fd04fe471c5d2ae49d2b7fc03d27', class: "header-top--right" }, this._renderSearch(), this._renderImpersonationInfo(), !((_d = this.metaNav) === null || _d === void 0 ? void 0 : _d.IsManager) && isXvBrand && (h("li", { key: '9bfbc4f0ba394fc1b36dbb62f86e334cb06257b3' }, h("xv-link-v2", { key: 'bca968a2fe64bf6872d43d8ac7f10d78b089a23a', variant: "ghost", href: "https://www.crossvertise.com/ueber-uns/kontakt" }, h("xv-button-v2", { key: '0db4cf67178bb86beefe8dddf7b378171e15198d', variant: "ghost", size: SIZE_VAR.MD }, h("i", { key: 'ed1b26d33fc9b843a0c89b05a4bb609273fa8ce8', class: "header-icon far fa-envelope" }), h("span", { key: '4e8f6fea781c552338e248b111a24ad289526d46', class: "header-label xv-body-02" }, "Kontakt"))))), this._renderNotifications(), this._renderAccount(), !((_e = this.metaNav) === null || _e === void 0 ? void 0 : _e.IsManager) && isXvBrand && (h("li", { key: '23f641be3c9218dac34b8abe6b2cbb263c856843' }, h("xv-link-v2", { key: 'b4315fa914b8173f92092aeb3735fabbd5986d25', variant: "ghost", href: "https://help.crossvertise.com" }, h("xv-button-v2", { key: '0bec228884977d7c88549a24fe4e62f76a11753b', variant: "ghost", size: SIZE_VAR.MD }, h("i", { key: 'd23ccaed77af7631742f23c053ff718278012d4e', class: "header-icon far fa-question-circle" }), h("span", { key: '0771508d8bdffa99d1e4748141e085191c421bf7', class: "header-label xv-body-02" }, "Hilfe"))))), this._renderShoppingCart()))), h("div", { key: '97bf836216e1ac3f1d8b0b4ed96b7e0875f6cdcc', class: "header-wrapper--bg" }, h("div", { key: '9d542f3553673d6c5c27a74b81d899b56562e724', class: "xv-container" }, h("xv-mega-menu", { key: 'b8b0af38f25546dd3d48a76a4fd7e381982e482e', open: this.mobMenuOpen, onOpenChange: this.closeMobMenu })))), h("xv-login-modal", { key: 'cad3944d560a74e29399f54c5e47b993a7e7dbe4', visible: this.showLoginModal, onClose: () => this.showLoginModal = false })));
176
+ return (h("header", { key: 'bb6b68b11e86c55e6fb78b9171f91c4ee0aeff54', class: "header" }, h("div", { key: 'dc39a36e6b8c22d6a5a9fa280b4b8710f4ab864c', class: "header-wrapper" }, h("div", { key: 'e97b619a8acfabfdb1afeae65282585a3820dd82', class: "xv-container" }, h("div", { key: 'ae1f930065601df59d19c84e73440448814f4148', class: "header-top" }, h("div", { key: '64464d7fbc8002bb041ac5f054345dff9b082fa8', class: "header-top--left" }, h("xv-button-v2", { key: '789ef6677bf63b39f0fed43d5aa9e4a7dc25293a', class: "menu-btn", variant: "ghost", onClick: this.toggleMobMenu }, h("i", { key: '22ce09415f7e827847cebaa2021a5b12127d8836', slot: "icon-left", class: { 'fa': true, 'fa-times': this.mobMenuOpen, 'fa-bars': !this.mobMenuOpen } })), this.metaNav && (h("a", { key: 'cacc6a468ad3987f6fc984eedc48f6bb2a527343', href: `${window.location.origin}/` }, h("picture", { key: '1548e8772b828177ba9cc57f487f89b55607915d' }, h("source", { key: '6a3e862fd369b08bc2d770665a7fd8ec93dce405', srcSet: ((_b = this.metaNav) === null || _b === void 0 ? void 0 : _b.LogoUrl) || 'https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo.svg', media: "(min-width: 990px)" }), h("img", { key: '6d4e85336fe45a1c6ff00ff523a6dfbeee7a75f2', src: ((_c = this.metaNav) === null || _c === void 0 ? void 0 : _c.LogoSmallUrl) || 'https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo-small.svg', onError: this.logoFallback, loading: "lazy", alt: "Crossvertise" })))), this.orgUnit && (h("xv-link-v2", { key: '1def60b23452f2c91a288078f4d7cc4e3ce01d98', class: "header-top--orgUnit", variant: "standalone", href: "/de-de/mycrossvertise" }, this.orgUnit))), h("ul", { key: 'f3b08084e0114ec652cfd1193f6aa83d64d27154', class: "header-top--right" }, this._renderSearch(), this._renderImpersonationInfo(), !((_d = this.metaNav) === null || _d === void 0 ? void 0 : _d.IsManager) && isXvBrand && (h("li", { key: 'db3dce7468366a7850f04bc9efc9c9e5807f3b68' }, h("xv-link-v2", { key: '48c44f5f4827447138e1e84f515c24b6da96806c', variant: "ghost", href: "https://www.crossvertise.com/ueber-uns/kontakt" }, h("xv-button-v2", { key: '9cfc3ec391af795294b935ee00e2d331d57fea18', variant: "ghost", size: SIZE_VAR.MD }, h("i", { key: 'd3b979a9670a09d9432740265d4dddff60af1bf1', class: "header-icon far fa-envelope" }), h("span", { key: 'a30f3dd82f3ae79e00a9f3155436d0b386ab9c8b', class: "header-label xv-body-02" }, "Kontakt"))))), this._renderNotifications(), this._renderAccount(), !((_e = this.metaNav) === null || _e === void 0 ? void 0 : _e.IsManager) && isXvBrand && (h("li", { key: '0a6fe80cad3a5b3538f00a5f90420ea17adaca35' }, h("xv-link-v2", { key: '82e760818362aa3c07f88a1ad5137617e8768b69', variant: "ghost", href: "https://help.crossvertise.com" }, h("xv-button-v2", { key: 'b586df26cff3c6f3858f9383b78f6fbc74dda77d', variant: "ghost", size: SIZE_VAR.MD }, h("i", { key: 'a6f5f39654b26f9218c3ee64084ff65b89048ca5', class: "header-icon far fa-question-circle" }), h("span", { key: '1d4400a01782e32381da2f3b415da2027193a32f', class: "header-label xv-body-02" }, "Hilfe"))))), this._renderShoppingCart()))), h("div", { key: 'd8b918f626a8d3ecd0b0ebb1e70af6603ab27bfd', class: "header-wrapper--bg" }, h("div", { key: 'a01cb04fd93b256088dc57024336b1fd239ef326', class: "xv-container" }, h("xv-mega-menu", { key: '08993625f27b6d20e6fc811c79260b57cabcd0e6', open: this.mobMenuOpen, onOpenChange: this.closeMobMenu })))), h("xv-login-modal", { key: 'c4f55e87116e962d77a44854542dd6f78c0d4aac', visible: this.showLoginModal, onClose: () => this.showLoginModal = false })));
258
177
  }
259
178
  static get is() { return "xv-header"; }
260
179
  static get originalStyleUrls() {
@@ -2,8 +2,6 @@ import { h, Fragment } from "@stencil/core";
2
2
  import { SIZE_VAR } from "../../types/enum";
3
3
  import { api, debounce, getBaseUrl, getMetaNav } from "../../utils/utils";
4
4
  import { OverflowMenuVariant } from "../xv-overflow-menu/_vars";
5
- import { HubConnectionBuilder } from "@microsoft/signalr";
6
- import { INVOICE_NOTIFICATION_STATUS_ICON, INVOICE_NOTIFICATION_STATUS_TEXT, InvoiceNotificationStatus, invoiceNotificationStatusOf, SIGNALR_HUB_URL_SETTING, SIGNALR_JOIN_GROUP, SIGNALR_NOTIFICATIONS_UPDATED, } from "../xv-header/_vars";
7
5
  import UserSearchIcon from "./user-magnifying-glass-regular-full.svg";
8
6
  /**
9
7
  * Drop-in successor of `xv-header` for the new headless CMS.
@@ -107,15 +105,9 @@ export class XvHeaderNext {
107
105
  this.metaNav = metaNav;
108
106
  this.orgUnit = ((_b = (_a = this.metaNav) === null || _a === void 0 ? void 0 : _a.User) === null || _b === void 0 ? void 0 : _b.SelectedOrgUnitName) || '';
109
107
  void this.getNotifications();
110
- void this.connectNotificationsHub();
111
108
  }
112
109
  console.info('MetaNav was updated', this.metaNav);
113
110
  }
114
- disconnectedCallback() {
115
- var _a;
116
- void ((_a = this.notificationsHub) === null || _a === void 0 ? void 0 : _a.stop());
117
- this.notificationsHub = undefined;
118
- }
119
111
  componentWillLoad() {
120
112
  this.baseUrl = getBaseUrl();
121
113
  void this.initHeader();
@@ -185,89 +177,16 @@ export class XvHeaderNext {
185
177
  this.notifications = [];
186
178
  }
187
179
  }
188
- /**
189
- * Subscribes to the notifications hub so the bell reflects a status change without a reload.
190
- *
191
- * The platform calls `NotifyUserAsync` after it completes or fails a notification, which
192
- * invokes `NotificationsUpdated` on the person's group — but nothing here was listening, so
193
- * the bell only ever caught up on a full page load (MAR-15569). The list is re-fetched on
194
- * each push rather than patched from the message, because the hub carries no payload.
195
- *
196
- * Failure to connect is logged and otherwise ignored: the bell still works, it just needs a
197
- * reload to refresh, which is the behaviour this replaces.
198
- */
199
- async connectNotificationsHub() {
200
- var _a, _b, _c;
201
- if (!((_a = this.metaNav) === null || _a === void 0 ? void 0 : _a.IsManager) || this.notificationsHub)
202
- return;
203
- const personId = (_c = (_b = this.metaNav) === null || _b === void 0 ? void 0 : _b.User) === null || _c === void 0 ? void 0 : _c.Id;
204
- if (!personId)
205
- return;
206
- try {
207
- const hubUrl = await this.getNotificationsHubUrl();
208
- if (!hubUrl)
209
- return;
210
- const hub = new HubConnectionBuilder()
211
- .withUrl(hubUrl)
212
- .withAutomaticReconnect()
213
- .build();
214
- hub.on(SIGNALR_NOTIFICATIONS_UPDATED, () => void this.getNotifications());
215
- // Re-join after a reconnect: group membership lives on the connection, so it is lost
216
- // when the transport drops and the bell would silently stop updating.
217
- hub.onreconnected(() => void hub.invoke(SIGNALR_JOIN_GROUP, String(personId)));
218
- await hub.start();
219
- await hub.invoke(SIGNALR_JOIN_GROUP, String(personId));
220
- this.notificationsHub = hub;
221
- }
222
- catch (error) {
223
- console.error('Failed to connect to the notifications hub:', error === null || error === void 0 ? void 0 : error.message, error);
224
- }
225
- }
226
- /**
227
- * Reads the hub URL from the platform's client settings. That endpoint serves JavaScript
228
- * rather than JSON, and the `xv` global it defines is absent on Angular-rendered pages, so
229
- * the value is parsed out of the response text.
230
- */
231
- async getNotificationsHubUrl() {
232
- var _a, _b;
233
- const fromGlobal = (_b = (_a = window.xv) === null || _a === void 0 ? void 0 : _a.clientApplicationSettings) === null || _b === void 0 ? void 0 : _b[SIGNALR_HUB_URL_SETTING];
234
- if (fromGlobal)
235
- return fromGlobal;
236
- const settings = await fetch(`${this.baseUrl}/de-de/assets/clientapplicationsettings`, {
237
- credentials: 'include',
238
- }).then(res => res.text());
239
- const match = settings.match(new RegExp(`"${SIGNALR_HUB_URL_SETTING.replace(/\./g, '\\.')}"\\s*:\\s*"([^"]+)"`));
240
- return match === null || match === void 0 ? void 0 : match[1];
241
- }
242
- /**
243
- * Dismisses a notification. The platform soft-deletes it (`DateDeletedUtc`), which drops it
244
- * from the list endpoint. Without this the bell could not be cleared at all and every entry
245
- * sat there until its 24-hour expiry — the old MVC bell's "Geprüft" button did this and was
246
- * not carried over when the header moved to this component.
247
- */
248
- async dismissNotification(event, orderId) {
249
- // The row is inside an overflow-menu item; without this the menu closes on click and the
250
- // list is torn down before the request resolves.
251
- event.preventDefault();
252
- event.stopPropagation();
253
- try {
254
- await api.delete(`${this.baseUrl}/de-de/api/notifications/${orderId}`, {
255
- credentials: 'include',
256
- });
257
- }
258
- catch (error) {
259
- console.error('Failed to dismiss the notification:', error === null || error === void 0 ? void 0 : error.message, error);
260
- }
261
- await this.getNotifications();
262
- }
263
180
  _renderNotifications() {
264
181
  var _a;
265
182
  if (!((_a = this.metaNav) === null || _a === void 0 ? void 0 : _a.IsManager))
266
183
  return null;
267
- return (h("li", { class: "notifications" }, h("xv-overflow-menu-v2", { position: "right", size: SIZE_VAR.MD }, h("span", { slot: "trigger", class: "fa-stack" }, h("i", { class: "notifications-icon far fa-bell fa-stack-1x" }), this.notifications.length > 0 && (h("xv-tag-v2", { class: "counter-badge counter-badge--absolute", bg: "var(--icon-interactive, #97BF0D)", color: "var(--text-inverse, #FFF)" }, this.notifications.length))), this.notifications.map((notification) => {
268
- const status = invoiceNotificationStatusOf(notification.status);
269
- return (h("xv-overflow-menu-v2-item", { value: notification.id, variant: OverflowMenuVariant.GHOST, disabled: notification.isRead, clickable: false }, h("div", { class: "notifications-item" }, h("i", { class: { far: true, [INVOICE_NOTIFICATION_STATUS_ICON[status]]: true } }), h("div", { class: "notifications-item-body" }, h("span", null, "Rechnungsentwurf f\u00FCr Auftrag ", notification.orderId, " ist ", INVOICE_NOTIFICATION_STATUS_TEXT[status]), status === InvoiceNotificationStatus.COMPLETED && notification.pdfSrc ? (h("xv-link-v2", { variant: notification.isRead ? 'ghost' : 'standalone', href: notification.pdfSrc, target: "_blank" }, "Rechnung ansehen")) : (h("xv-link-v2", { variant: notification.isRead ? 'ghost' : 'standalone', href: `/de-de/manager/ordersales/details/${notification.orderId}` }, "Auftrag anschauen"))), h("xv-button-v2", { variant: "ghost", size: SIZE_VAR.SM, title: "Gepr\u00FCft", "aria-label": `Benachrichtigung für Auftrag ${notification.orderId} als geprüft markieren`, onClick: (event) => void this.dismissNotification(event, notification.orderId) }, h("i", { class: "far fa-times" })))));
270
- }))));
184
+ return (h("li", { class: "notifications" }, h("xv-overflow-menu-v2", { position: "right", size: SIZE_VAR.MD }, h("span", { slot: "trigger", class: "fa-stack" }, h("i", { class: "notifications-icon far fa-bell fa-stack-1x" }), this.notifications.length > 0 && (h("xv-tag-v2", { class: "counter-badge counter-badge--absolute", bg: "var(--icon-interactive, #97BF0D)", color: "var(--text-inverse, #FFF)" }, this.notifications.length))), this.notifications.map((notification) => (h("xv-overflow-menu-v2-item", { value: notification.id, variant: OverflowMenuVariant.GHOST, disabled: notification.isRead, clickable: false }, h("div", { class: "notifications-item" }, h("i", { class: {
185
+ far: true,
186
+ 'fa-clock': !notification.status,
187
+ 'fa-times-circle': notification.status === 1,
188
+ 'fa-circle': notification.status && notification.status !== 1,
189
+ } }), h("div", { class: "notifications-item-body" }, h("span", null, "Rechnungsentwurf f\u00FCr Auftrag ", notification.orderId, " ist ausstehend"), h("xv-link-v2", { variant: notification.isRead ? 'ghost' : 'standalone', href: `/de-de/manager/ordersales/details/${notification.orderId}` }, "Auftrag anschauen")))))))));
271
190
  }
272
191
  _renderAccount() {
273
192
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
@@ -286,7 +205,7 @@ export class XvHeaderNext {
286
205
  render() {
287
206
  var _a, _b, _c, _d, _e;
288
207
  const isXvBrand = (((_a = this.metaNav) === null || _a === void 0 ? void 0 : _a['WhitelabelName']) || 'Xv') === 'Xv';
289
- return (h("header", { key: '9c04fce6bf5c86c2f7ce9eec4f2c0ebbb5941e1a', class: "header" }, h("div", { key: 'fee93197d318b26dbca661595916d9e8cbe94375', class: "header-wrapper" }, h("div", { key: 'e5ba7c77f93cfd10ac648125e3785572b1b2b352', class: "xv-container" }, h("div", { key: '784da35e8aa09bab4268377d22d7ae40aa7fcc5a', class: "header-top" }, h("div", { key: '93bffa009121bd0ef93d1c690bed6b90dbb9de4b', class: "header-top--left" }, h("xv-button-v2", { key: 'f60f995957e9b929516d30e8c79e6e69354fa4a3', class: "menu-btn", variant: "ghost", onClick: this.toggleMobMenu }, h("i", { key: 'd0f2b955f98752b4825b921f57858bba1bdac2cd', slot: "icon-left", class: { 'fa': true, 'fa-times': this.mobMenuOpen, 'fa-bars': !this.mobMenuOpen } })), this.metaNav && (h("a", { key: 'd393b761eb12268735da317e85cbb7845c9ee15f', href: `${window.location.origin}/` }, h("picture", { key: 'ebc31771f501886f73c033cd8df3ed3f6097dbea' }, h("source", { key: '1852235f967ab2fa08d14837d8e2f19607b2da05', srcSet: ((_b = this.metaNav) === null || _b === void 0 ? void 0 : _b.LogoUrl) || 'https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo.svg', media: "(min-width: 990px)" }), h("img", { key: '5d36ae93c924554a4af9e266e090d9ab5cace2d6', src: ((_c = this.metaNav) === null || _c === void 0 ? void 0 : _c.LogoSmallUrl) || 'https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo-small.svg', onError: this.logoFallback, loading: "lazy", alt: "Crossvertise" })))), this.orgUnit && (h("xv-link-v2", { key: '2a674365dbb3d87541fa8ee21e681d30803845f5', class: "header-top--orgUnit", variant: "standalone", href: "/de-de/mycrossvertise" }, this.orgUnit))), h("ul", { key: 'c04cc5a6124c47f63aa4a31c6105707fde987f80', class: "header-top--right" }, this._renderLocaleSwitcher(), this._renderSearch(), this._renderImpersonationInfo(), !((_d = this.metaNav) === null || _d === void 0 ? void 0 : _d.IsManager) && isXvBrand && (h("li", { key: 'f98924908679cb70e040342e3d2037ca0c328cfb' }, h("xv-link-v2", { key: 'df6c95995411827fb9e7d2d772672d71ca94e8b4', variant: "ghost", href: "https://www.crossvertise.com/ueber-uns/kontakt" }, h("xv-button-v2", { key: '26fb5b25c5c9d8763ae8162bd027814a511aaeea', variant: "ghost", size: SIZE_VAR.MD }, h("i", { key: '125dcdb6c7732ef43b32cd5600e26b046aa14c62', class: "header-icon far fa-envelope" }), h("span", { key: '2a0b974fb77e7aa9eeafec92789bb73f2201c865', class: "header-label xv-body-02" }, "Kontakt"))))), this._renderNotifications(), this._renderAccount(), !((_e = this.metaNav) === null || _e === void 0 ? void 0 : _e.IsManager) && isXvBrand && (h("li", { key: 'f0ed40566ca8c76960940a602d8829adc0ede357' }, h("xv-link-v2", { key: '5ee23ea00cfba00c759bde207af7385d84e9db6a', variant: "ghost", href: "https://help.crossvertise.com" }, h("xv-button-v2", { key: '97129651b7d2726eaf76db5ed4cbc838eaa7e047', variant: "ghost", size: SIZE_VAR.MD }, h("i", { key: 'be2de402a7e605cf600aec63051291d62e497865', class: "header-icon far fa-question-circle" }), h("span", { key: '5fe9768447d0d8a8a57fa5a95b98326121eca94b', class: "header-label xv-body-02" }, "Hilfe"))))), this._renderShoppingCart()))), h("div", { key: '1e57385c58e31de469d67829e829781065799ca2', class: "header-wrapper--bg" }, h("div", { key: '40eaa28197cf1b27b7bd7a6b559440b805764fc6', class: "xv-container" }, h("xv-mega-menu-next", { key: '387772fe79f32eef0286fab9f8dd38a2fbb9d6ee', open: this.mobMenuOpen, onOpenChange: this.closeMobMenu, menuData: this.menuData })))), h("xv-login-modal", { key: '182eab0fb5f02c082be39f681fc2632881da9e39', visible: this.showLoginModal, onClose: () => this.showLoginModal = false })));
208
+ return (h("header", { key: 'c87cc8c95ca0d61dc02ea975cb476af427ac2b3d', class: "header" }, h("div", { key: '877616897b4bf02b5c19e58a2d633a81ef1e6242', class: "header-wrapper" }, h("div", { key: 'ccff077dad46bf9fc8378bdbc1bbaf27c7809773', class: "xv-container" }, h("div", { key: '8ffc4438bde13ae29ea4030b5bfa02cb470ffff2', class: "header-top" }, h("div", { key: '0e9b1e82a8e7ec138cc410f585515b2a9abfac5a', class: "header-top--left" }, h("xv-button-v2", { key: '79e52670227627fd8eab012ea4c2dbe72799dc57', class: "menu-btn", variant: "ghost", onClick: this.toggleMobMenu }, h("i", { key: 'f2bd99ea6b8827df9409f557f1ced3c73bceb12c', slot: "icon-left", class: { 'fa': true, 'fa-times': this.mobMenuOpen, 'fa-bars': !this.mobMenuOpen } })), this.metaNav && (h("a", { key: '7a7f45a0e1855bf7015a52eede2cd93fc7819b60', href: `${window.location.origin}/` }, h("picture", { key: '1eb568c80906ff6e3449d8090f7da4963ae230a1' }, h("source", { key: 'c8174ef49a21cd3546debc4de8d95917ec0ca97c', srcSet: ((_b = this.metaNav) === null || _b === void 0 ? void 0 : _b.LogoUrl) || 'https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo.svg', media: "(min-width: 990px)" }), h("img", { key: 'c03a9ac3a52f0bc9df90675b1a9f2c35b921f411', src: ((_c = this.metaNav) === null || _c === void 0 ? void 0 : _c.LogoSmallUrl) || 'https://www.crossvertise.com/ResourcePackages/Bootstrap/assets/dist/images/logo-small.svg', onError: this.logoFallback, loading: "lazy", alt: "Crossvertise" })))), this.orgUnit && (h("xv-link-v2", { key: 'dccc2911f8e263a84978280cb8936aba7178ced0', class: "header-top--orgUnit", variant: "standalone", href: "/de-de/mycrossvertise" }, this.orgUnit))), h("ul", { key: 'b2f74d331583eda966d8d1f51beba7a696bab324', class: "header-top--right" }, this._renderLocaleSwitcher(), this._renderSearch(), this._renderImpersonationInfo(), !((_d = this.metaNav) === null || _d === void 0 ? void 0 : _d.IsManager) && isXvBrand && (h("li", { key: '8c55b70be62e174bf87770f649c8bf9346a5bb1a' }, h("xv-link-v2", { key: '7e32028087211b2da35e2586669d6742376635ff', variant: "ghost", href: "https://www.crossvertise.com/ueber-uns/kontakt" }, h("xv-button-v2", { key: 'e00945870bccafe0b2a0a8155144d380d429e2a2', variant: "ghost", size: SIZE_VAR.MD }, h("i", { key: '02c11e53729e6f021a6533f607a24a7a4528381b', class: "header-icon far fa-envelope" }), h("span", { key: 'a25b7707de479a89c564c41b381421626cffd4f1', class: "header-label xv-body-02" }, "Kontakt"))))), this._renderNotifications(), this._renderAccount(), !((_e = this.metaNav) === null || _e === void 0 ? void 0 : _e.IsManager) && isXvBrand && (h("li", { key: 'e18b1fe074a0c5dccac8dae93104ae5c877291d6' }, h("xv-link-v2", { key: '2b3355d49caf0e3162b2149df0f8e7f233a1e325', variant: "ghost", href: "https://help.crossvertise.com" }, h("xv-button-v2", { key: 'af72384bd898934762f04bf1fb8b77f33634a0b4', variant: "ghost", size: SIZE_VAR.MD }, h("i", { key: '53e4998f33d86179a08db039b27ac52f959c9ba4', class: "header-icon far fa-question-circle" }), h("span", { key: '37d5d257287ad892f7ab5e3d9300cac3514d4938', class: "header-label xv-body-02" }, "Hilfe"))))), this._renderShoppingCart()))), h("div", { key: '841cd8d2db611af865b9a1127c959e76877ab6db', class: "header-wrapper--bg" }, h("div", { key: 'ce6fa8184b831abdacbf9f04b226ed9c4387ac98', class: "xv-container" }, h("xv-mega-menu-next", { key: '6d64b1f655a1fa65f915ae6280da173e8dd22a88', open: this.mobMenuOpen, onOpenChange: this.closeMobMenu, menuData: this.menuData })))), h("xv-login-modal", { key: 'efcd6f10be9d9455e419695b7613603fae3e4235', visible: this.showLoginModal, onClose: () => this.showLoginModal = false })));
290
209
  }
291
210
  static get is() { return "xv-header-next"; }
292
211
  static get originalStyleUrls() {
@@ -313,7 +232,7 @@ export class XvHeaderNext {
313
232
  "optional": true,
314
233
  "docs": {
315
234
  "tags": [],
316
- "text": "Pre-rendered mega-menu data forwarded to the inner xv-mega-menu-next.\nJSON string (HTML attribute) or array of MenuItem (JS prop)."
235
+ "text": "Pre-rendered mega-menu data forwarded to the inner xv-mega-menu-next.\r\nJSON string (HTML attribute) or array of MenuItem (JS prop)."
317
236
  },
318
237
  "getter": false,
319
238
  "setter": false,
@@ -332,7 +251,7 @@ export class XvHeaderNext {
332
251
  "optional": true,
333
252
  "docs": {
334
253
  "tags": [],
335
- "text": "Active locale code (e.g. \"de\", \"en\"). Used to highlight the current\nentry in the language switcher. When omitted the switcher is hidden."
254
+ "text": "Active locale code (e.g. \"de\", \"en\"). Used to highlight the current\r\nentry in the language switcher. When omitted the switcher is hidden."
336
255
  },
337
256
  "getter": false,
338
257
  "setter": false,
@@ -351,7 +270,7 @@ export class XvHeaderNext {
351
270
  "optional": true,
352
271
  "docs": {
353
272
  "tags": [],
354
- "text": "JSON array describing the language switcher entries.\nEach entry: { code: \"de\", label: \"Deutsch\", href: \"/\" }.\nWhen omitted or empty the switcher is hidden."
273
+ "text": "JSON array describing the language switcher entries.\r\nEach entry: { code: \"de\", label: \"Deutsch\", href: \"/\" }.\r\nWhen omitted or empty the switcher is hidden."
355
274
  },
356
275
  "getter": false,
357
276
  "setter": false,
@@ -12,7 +12,7 @@ export class XvLink {
12
12
  e.stopPropagation();
13
13
  }
14
14
  render() {
15
- return (h(Host, { key: '12d93e8d7056f2c5df893730735aff2f4b44e43a', class: { [`xv-link_${this.variant}`]: true, disabled: !!this.disabled } }, h("a", { key: '4f8b30c3f01d925b1ee5b7f797eff71ce328c165', href: this.href, onClick: this.preventLinkHandler.bind(this), class: { 'xv-link': true, 'xv-link_disabled': !!this.disabled, [this.size]: !!this.size }, target: this.target }, h("slot", { key: 'd297881f1b9dd41328b374f4dd941f563c2f8743', name: "icon-left" }), h("slot", { key: '4f6281fa48f6ad31352bd9613eb9a31a2489829a' }), h("slot", { key: 'f703d8ab7d41d3b49f35d3c0279f5fee1e6dcee6', name: "icon-right" }))));
15
+ return (h(Host, { key: '2f2b62e7ca9e06c2d1f65f73d93ed5df9fb7723c', class: { [`xv-link_${this.variant}`]: true, disabled: !!this.disabled } }, h("a", { key: '523e881f65b021e2d654c63b59d8b4c76019a384', href: this.href, onClick: this.preventLinkHandler.bind(this), class: { 'xv-link': true, 'xv-link_disabled': !!this.disabled, [this.size]: !!this.size }, target: this.target }, h("slot", { key: 'a235d591cbcb7ad26fc423e64cc4030931204209', name: "icon-left" }), h("slot", { key: 'b9be8b821004efdb2fa7f35b21e0d9f2e9f8954c' }), h("slot", { key: '6c2519ef57ca37701449a37bc3a5be70df952b4a', name: "icon-right" }))));
16
16
  }
17
17
  static get is() { return "xv-link-v2"; }
18
18
  static get encapsulation() { return "shadow"; }
@@ -84,7 +84,8 @@ export class XvLoader {
84
84
  "SIZE_VAR_STR": {
85
85
  "location": "import",
86
86
  "path": "../../types/enum",
87
- "id": "src/types/enum.ts::SIZE_VAR_STR"
87
+ "id": "src/types/enum.ts::SIZE_VAR_STR",
88
+ "referenceLocation": "SIZE_VAR_STR"
88
89
  }
89
90
  }
90
91
  },
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * Font Awesome Pro 5.15.4 by @fontawesome - https://fontawesome.com
3
- * License - https://fontawesome.com/license (Commercial License)
4
- */
2
+ * Font Awesome Pro 5.15.4 by @fontawesome - https://fontawesome.com
3
+ * License - https://fontawesome.com/license (Commercial License)
4
+ */
5
5
  .fa,
6
6
  .fas,
7
7
  .far,
@@ -9465,9 +9465,9 @@ readers do not read off random characters that represent icons */
9465
9465
  }
9466
9466
 
9467
9467
  /*!
9468
- * Font Awesome Pro 5.15.4 by @fontawesome - https://fontawesome.com
9469
- * License - https://fontawesome.com/license (Commercial License)
9470
- */
9468
+ * Font Awesome Pro 5.15.4 by @fontawesome - https://fontawesome.com
9469
+ * License - https://fontawesome.com/license (Commercial License)
9470
+ */
9471
9471
  @font-face {
9472
9472
  font-family: "Font Awesome 5 Brands";
9473
9473
  font-style: normal;
@@ -9526,7 +9526,7 @@ readers do not read off random characters that represent icons */
9526
9526
  content: "";
9527
9527
  flex: 1;
9528
9528
  height: 1px;
9529
- background-color: var(--divider, #E0E0E0);
9529
+ background-color: var(--border-subtle-00);
9530
9530
  }
9531
9531
  .login_spacer::before {
9532
9532
  margin-right: var(--spacing-04);
@@ -59,7 +59,7 @@ export class XvMegaMenu {
59
59
  void this.fetchMenuData();
60
60
  }
61
61
  render() {
62
- return (h(Host, { key: '03959b6ee112648b107b7ba1f2d82497d4db2aa3' }, h("nav", { key: '9905aa3bdb84f6637a63e23d21b844cc443d0d58', class: { 'xv-menu': true, open: this.open } }, this.menuLoading && (h("div", { key: '75b636e9a29a1f3546c37d71447237170e854a16', class: { 'xv-menu-loader': true, open: this.open } }, h("xv-loader-v2", { key: '48a49a91c2f24c2d6afc7cd285206f124ce3d354' }))), h("ul", { key: 'd16f5495116854df804a20c015257d257c574a1f', class: { menu: true, open: this.open } }, this.menuItems.map((menuItem) => {
62
+ return (h(Host, { key: '6335de0b7c1562994de4c6944152865fb6b57e53' }, h("nav", { key: '73cf026416006554ae5f1e72636bb8dc24cb63c3', class: { 'xv-menu': true, open: this.open } }, this.menuLoading && (h("div", { key: '43f34a516e2ba706852d96d62845ccd0600344bc', class: { 'xv-menu-loader': true, open: this.open } }, h("xv-loader-v2", { key: '39e21cfd68cd457ce76faaa1f0ec227bd6520c4e' }))), h("ul", { key: '21c0a2623a29199955a7df7abe2f1685ab6be091', class: { menu: true, open: this.open } }, this.menuItems.map((menuItem) => {
63
63
  var _a, _b;
64
64
  return (h("li", { class: { 'menu-item': true, active: menuItem.id === ((_a = this.activeItem) === null || _a === void 0 ? void 0 : _a.id) } }, menuItem.route ? (h("xv-link-v2", { variant: "ghost", href: menuItem.route.route }, h("p", { class: "menu-item-label" }, (_b = menuItem.route) === null || _b === void 0 ? void 0 : _b.label))) : (h(Fragment, null, h("p", { class: "menu-item-label", onClick: () => this.setActiveItem(menuItem) }, menuItem === null || menuItem === void 0 ? void 0 : menuItem.label), h("ul", { class: "menu-item-groups" }, menuItem.groups.map((group) => {
65
65
  var _a;
@@ -69,7 +69,7 @@ export class XvMegaMenu {
69
69
  } }, h("div", { class: "group-menus" }, h("ul", { class: { 'group-menus-categories': true, inline: group.layout === 'inline' } }, group.categories.map((category) => (h("li", { class: "category" }, h("p", { class: "category-label" }, category.label), h("ul", { class: "category-routes" }, category.routes.map((route) => (h("li", { class: "route" }, h("xv-link-v2", { size: "lg", variant: "ghost", href: route.route || '#' }, route.label), route.tag && (h("xv-tag-v2", { class: "route-tag", size: "sm", color: "#161616", bg: "#E0E0E0" }, route.tag)))))))))), h("ul", { class: "group-menus-actions" }, group.actions.map((action) => (h("li", { class: "action" }, action.type === 'link' && (h("xv-link-v2", { variant: "standalone", href: action === null || action === void 0 ? void 0 : action.url }, action.label, h("span", { class: "link-chevron", slot: "icon-right" }, "\u2192"))), action.type === 'button' &&
70
70
  h("xv-button-v2", { onClick: () => this.navActionClick(action), block: true, variant: "tertiary" }, action.label)))))), (group === null || group === void 0 ? void 0 : group.card) && (h("div", { class: "group-card" }, h("xv-card-v2", { media: this.applicationContext !== 'Komsa' ? group.card.image : undefined, variant: this.isMobile ? 'horizontal' : 'vertical' }, h("h5", { slot: "header", class: "group-card-title" }, group.card.title), h("p", { slot: "body", class: "group-card-desc" }, group.card.description), group.card.linkLabel && (h("xv-link-v2", { slot: "footer", variant: "standalone", href: group.card.linkUrl || '#' }, group.card.linkLabel, h("span", { class: "link-chevron", slot: "icon-right" }, "\u2192"))))))))));
71
71
  }))))));
72
- }), h("li", { key: 'e93432e028b8d54815a44823bcd5c463e4c8ac7e', class: "menu--right" }, h("slot", { key: 'a3454e1fbbb0dcd0a6a98c78569c760314f47355', name: "menu-right" })), this.open && (h("li", { key: '6ac8f06d13ab13963bee53e21db3f7bbeccc06bd', class: "menu--backdrop", onClick: () => this.handleClose() }))))));
72
+ }), h("li", { key: 'd2a050cba2b788c4bc009bff34270135d93e02de', class: "menu--right" }, h("slot", { key: '1be51b717e7a272f5ab8d3185e1070b0ada74515', name: "menu-right" })), this.open && (h("li", { key: 'd32c5b8fade926cecde7574c2fb15c9853178917', class: "menu--backdrop", onClick: () => this.handleClose() }))))));
73
73
  }
74
74
  static get is() { return "xv-mega-menu"; }
75
75
  static get encapsulation() { return "shadow"; }
@@ -94,7 +94,7 @@ export class XvMegaMenuNext {
94
94
  void this.fetchMenuData();
95
95
  }
96
96
  render() {
97
- return (h(Host, { key: 'c47ad041efdcadf47e2cd5102d1eb527801442c0' }, h("nav", { key: '82aed9de4df60d2d281eb172bd2bf562b788d193', class: { 'xv-menu': true, open: this.open } }, this.menuLoading && (h("div", { key: '39792fd8968d7436348c27fda40f76ca32562e9d', class: { 'xv-menu-loader': true, open: this.open } }, h("xv-loader-v2", { key: '8363113b91f5d1318cd2d11a13dc613c0c2d6e75' }))), h("ul", { key: 'a2330abd676b973e44c5a8d84ce229f8a509164a', class: { menu: true, open: this.open } }, this.menuItems.map((menuItem) => {
97
+ return (h(Host, { key: 'ed607b8cd4c395fb89c2b925381a66476ee7fc66' }, h("nav", { key: 'df1bc505eea962a6dd450aff9ce94bdaf851bb60', class: { 'xv-menu': true, open: this.open } }, this.menuLoading && (h("div", { key: '43d7eb0df82e01e7bc9dcf7d305b41e2e274206b', class: { 'xv-menu-loader': true, open: this.open } }, h("xv-loader-v2", { key: 'd1fe2d349bbb091ca9e1ad3b3042f751cd7bea8a' }))), h("ul", { key: '7daed87d6a28ef57cf50c44d6b692818d898f24b', class: { menu: true, open: this.open } }, this.menuItems.map((menuItem) => {
98
98
  var _a, _b;
99
99
  return (h("li", { class: { 'menu-item': true, active: menuItem.id === ((_a = this.activeItem) === null || _a === void 0 ? void 0 : _a.id) } }, menuItem.route ? (h("xv-link-v2", { variant: "ghost", href: menuItem.route.route }, h("p", { class: "menu-item-label" }, (_b = menuItem.route) === null || _b === void 0 ? void 0 : _b.label))) : (h(Fragment, null, h("p", { class: "menu-item-label", onClick: () => this.setActiveItem(menuItem) }, menuItem === null || menuItem === void 0 ? void 0 : menuItem.label), h("ul", { class: "menu-item-groups" }, menuItem.groups.map((group) => {
100
100
  var _a;
@@ -104,7 +104,7 @@ export class XvMegaMenuNext {
104
104
  } }, h("div", { class: "group-menus" }, h("ul", { class: { 'group-menus-categories': true, inline: group.layout === 'inline' } }, group.categories.map((category) => (h("li", { class: "category" }, h("p", { class: "category-label" }, category.label), h("ul", { class: "category-routes" }, category.routes.map((route) => (h("li", { class: "route" }, h("xv-link-v2", { size: "lg", variant: "ghost", href: route.route || '#' }, route.label), route.tag && (h("xv-tag-v2", { class: "route-tag", size: "sm", color: "#161616", bg: "#E0E0E0" }, route.tag)))))))))), h("ul", { class: "group-menus-actions" }, group.actions.map((action) => (h("li", { class: "action" }, action.type === 'link' && (h("xv-link-v2", { variant: "standalone", href: action === null || action === void 0 ? void 0 : action.url }, action.label, h("span", { class: "link-chevron", slot: "icon-right" }, "\u2192"))), action.type === 'button' &&
105
105
  h("xv-button-v2", { onClick: () => this.navActionClick(action), block: true, variant: "tertiary" }, action.label)))))), (group === null || group === void 0 ? void 0 : group.card) && (h("div", { class: "group-card" }, h("xv-card-v2", { media: this.applicationContext !== 'Komsa' ? group.card.image : undefined, variant: this.isMobile ? 'horizontal' : 'vertical' }, h("h5", { slot: "header", class: "group-card-title" }, group.card.title), h("p", { slot: "body", class: "group-card-desc" }, group.card.description), group.card.linkLabel && (h("xv-link-v2", { slot: "footer", variant: "standalone", href: group.card.linkUrl || '#' }, group.card.linkLabel, h("span", { class: "link-chevron", slot: "icon-right" }, "\u2192"))))))))));
106
106
  }))))));
107
- }), h("li", { key: '191d8b806dcc27f97be83d9c72da10214a461100', class: "menu--right" }, h("slot", { key: 'a88cd4f622bf845f4963e04316bda62cc3adf1fc', name: "menu-right" })), this.open && (h("li", { key: 'c601f0a743556d6c73c9c2fd60f4f2b2b4ab72d7', class: "menu--backdrop", onClick: () => this.handleClose() }))))));
107
+ }), h("li", { key: '9644d518b2a427d1af5319f6d0dcd08b11a9c6c2', class: "menu--right" }, h("slot", { key: '5200a528a6e5b5374815d7978ec09e87da55a3d7', name: "menu-right" })), this.open && (h("li", { key: '378f37f82e6b9ae4990e4bd7d197d1a1ce851b2e', class: "menu--backdrop", onClick: () => this.handleClose() }))))));
108
108
  }
109
109
  static get is() { return "xv-mega-menu-next"; }
110
110
  static get encapsulation() { return "shadow"; }
@@ -150,7 +150,8 @@ export class XvMegaMenuNext {
150
150
  "MenuItem": {
151
151
  "location": "import",
152
152
  "path": "./xv-mega-menu-next.model",
153
- "id": "src/components/xv-mega-menu-next/xv-mega-menu-next.model.ts::MenuItem"
153
+ "id": "src/components/xv-mega-menu-next/xv-mega-menu-next.model.ts::MenuItem",
154
+ "referenceLocation": "MenuItem"
154
155
  }
155
156
  }
156
157
  },
@@ -158,7 +159,7 @@ export class XvMegaMenuNext {
158
159
  "optional": true,
159
160
  "docs": {
160
161
  "tags": [],
161
- "text": "Pre-rendered menu data, either as a JSON string (when set as an HTML\nattribute) or as an array (when set as a JS property). Bypasses the\nfetch entirely."
162
+ "text": "Pre-rendered menu data, either as a JSON string (when set as an HTML\r\nattribute) or as an array (when set as a JS property). Bypasses the\r\nfetch entirely."
162
163
  },
163
164
  "getter": false,
164
165
  "setter": false,
@@ -58,7 +58,7 @@ export class XvModal {
58
58
  }
59
59
  render() {
60
60
  var _a;
61
- return (h(Host, { key: '51307647bf74a2fecb427e90555c72221fcc2f0b', role: "dialog", size: this.size, id: this.el.id }, h("slot", { key: 'e2be1b75257cc12dcd419b8ddbd5165a967c3bf7', name: "trigger", onSlotchange: this.setupTrigger }), h("div", { key: '219a9da9623faccac909871aae0f06b11b1d4603', class: { backdrop: true }, onClick: this.onBackdropClick }, h("div", { key: 'f9b2716b83f0b1a8bd7db183913405494c00e8c2', class: "modal" }, h("button", { key: 'cefea768d7de47028b282e73ca2c41bd1bf4ee3e', class: "modal_close", onClick: this.closeModal.bind(this) }, "\u00D7"), h("div", { key: '9b79e29a3da547b1361f1aab2bfbef9eebd6bf2a', class: "modal_header" }, h("slot", { key: '3b674d72cf30bf9fb2c195c4c21aa17d8a80d022', name: "header" }, ((_a = this.el) === null || _a === void 0 ? void 0 : _a.title) && h("h5", { key: 'afb6034eed3d5ecddd57b3fc6dade6005cf6687a', class: "modal_header__title" }, this.el.title))), h("div", { key: 'd0cd36f7fe4821db54547ecdea5462206a33ee01', class: { 'modal_content': true, overflow: this.overflow } }, h("slot", { key: '8c6e2adf73d99588042fc5ff1f5845f81c22107e' })), h("div", { key: '406e6ee06f3e99f8cc989bc17be057c94ddea227', class: "modal_footer" }, h("slot", { key: '207c4975d3314fea5d2249d783ed11e1dc213a0c', name: "footer" })), !!this.loading && (h("div", { key: '25d672ddcf45cc71f36edd380f9d8441c2708750', class: "loading" }, h("xv-loader-v2", { key: 'af81b4f6523adf05b7c7547fbcee9cdea9c894d1', size: SIZE_VAR.LG })))))));
61
+ return (h(Host, { key: '75c15cf653a00abfd8be6ed89462a0093e150c39', role: "dialog", size: this.size, id: this.el.id }, h("slot", { key: '246e214c3057e22056cf4f8b2928da9304edc125', name: "trigger", onSlotchange: this.setupTrigger }), h("div", { key: 'bb05dc45ca0310d99e77749733036134ab42bf0b', class: { backdrop: true }, onClick: this.onBackdropClick }, h("div", { key: 'bacfe225733904336335362525228bca07246932', class: "modal" }, h("button", { key: '2772c5b4e1123203b400b81a0d1d39d7e110a8e5', class: "modal_close", onClick: this.closeModal.bind(this) }, "\u00D7"), h("div", { key: '23928a21dd8c76352bae1f054289b71ac5aa1e56', class: "modal_header" }, h("slot", { key: '921de5beeba03483789b927ac2e19b56581a9886', name: "header" }, ((_a = this.el) === null || _a === void 0 ? void 0 : _a.title) && h("h5", { key: '025841d472e2be994d51cac496bbc48bee852de9', class: "modal_header__title" }, this.el.title))), h("div", { key: '606cf764df7936e9336532a999449693931dbd93', class: { 'modal_content': true, overflow: this.overflow } }, h("slot", { key: '3ad756e911c7ea5760814217b9087bb9a11a7cf0' })), h("div", { key: '3fd8b00e9fec6fab266791481886ab06c7074ebb', class: "modal_footer" }, h("slot", { key: 'b417b2eb294631a7c60df04d16f1cb2f5f13997d', name: "footer" })), !!this.loading && (h("div", { key: 'd1e740383a4f241fbd9c6cb5c80881f99244fd0b', class: "loading" }, h("xv-loader-v2", { key: 'f2aad280dfb13897f3fbac1f455f2758b19b5784', size: SIZE_VAR.LG })))))));
62
62
  }
63
63
  disconnectedCallback() {
64
64
  this.removeTriggerListener();
@@ -127,7 +127,8 @@ export class XvModal {
127
127
  "SIZE_VAR_STR": {
128
128
  "location": "import",
129
129
  "path": "../../types/enum",
130
- "id": "src/types/enum.ts::SIZE_VAR_STR"
130
+ "id": "src/types/enum.ts::SIZE_VAR_STR",
131
+ "referenceLocation": "SIZE_VAR_STR"
131
132
  }
132
133
  }
133
134
  },
@@ -25,7 +25,7 @@ export class XvNotification {
25
25
  };
26
26
  }
27
27
  render() {
28
- return (h(Host, { key: '9b5d0f226cff3059ac305ac7911d4403a3e61532', class: "xv-notification", type: this.variant }, this.renderIcon(this.variant), h("div", { key: '2c66b43b47030f8f60eddb04fcd289bb2a70be4d', class: "content" }, h("div", { key: '185f9db9d563f6fc6dc7aea725639c884ed1633a', class: "content_wrapper" }, this.el.title && h("h5", { key: 'd7e0af8fc7e88dc9e4893cb1267a0d18a1a4f9c7', class: "content_title" }, this.el.title), h("slot", { key: 'c8b5f9d3963eb918a94167adc588e49e07c77c4a' })), h("slot", { key: 'b5f27fcba6151ae94489d5e3aefb38d036a89eb1', name: "footer" })), this.dismissible && h("button", { key: '73ed9d9754f012e9c0bac958d6fd88359df753db', class: "close", onClick: this.closeHandle })));
28
+ return (h(Host, { key: 'b9723088121c3a418be0fe2cc6f9b5c7f949236e', class: "xv-notification", type: this.variant }, this.renderIcon(this.variant), h("div", { key: '22718e6d6976a6be552279e31f6903fccef9e73d', class: "content" }, h("div", { key: 'e99c9bc29eb6e06cf0ca62e69ced5798c080512f', class: "content_wrapper" }, this.el.title && h("h5", { key: '96b8271df8a5a60016f55bfc173e0b999f4732d0', class: "content_title" }, this.el.title), h("slot", { key: 'a81695e7573fec7efcdd864b0293c606ea780bf2' })), h("slot", { key: '7a905c0194446c5fc00e05dfea45c08e4dbe58b2', name: "footer" })), this.dismissible && h("button", { key: '123e1b43d8f107b92952465fac7db446863536c0', class: "close", onClick: this.closeHandle })));
29
29
  }
30
30
  static get is() { return "xv-notification-v2"; }
31
31
  static get encapsulation() { return "shadow"; }
@@ -52,7 +52,8 @@ export class XvNotification {
52
52
  "NOTIFICATION_VARIANTS_STR": {
53
53
  "location": "import",
54
54
  "path": "./_vars",
55
- "id": "src/components/xv-notification/_vars.ts::NOTIFICATION_VARIANTS_STR"
55
+ "id": "src/components/xv-notification/_vars.ts::NOTIFICATION_VARIANTS_STR",
56
+ "referenceLocation": "NOTIFICATION_VARIANTS_STR"
56
57
  }
57
58
  }
58
59
  },