@sapudex/web-components 2.24.0 → 2.25.1

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 (405) hide show
  1. package/bundle.esm.js +2 -0
  2. package/cypress/downloads/downloads.html +0 -0
  3. package/cypress/specs/EventRibbon.cy.tsx +7 -7
  4. package/cypress/specs/ImageGridTable.cy.tsx +41 -0
  5. package/cypress/specs/ImageGridTableItem.cy.tsx +101 -0
  6. package/cypress/specs/ImageGridTickerItem.cy.tsx +1 -2
  7. package/cypress/specs/MastheadProfileMenu.cy.tsx +16 -0
  8. package/cypress/specs/UploadItem.cy.tsx +14 -5
  9. package/cypress/support/component-imports.instrumented.ts +4 -0
  10. package/cypress/support/component-imports.src.ts +4 -0
  11. package/dist/Accordion.js +3 -2
  12. package/dist/Accordion.js.map +1 -1
  13. package/dist/Avatar.js +4 -3
  14. package/dist/Avatar.js.map +1 -1
  15. package/dist/Badge.js.map +1 -1
  16. package/dist/Breadcrumbs.js +4 -3
  17. package/dist/Breadcrumbs.js.map +1 -1
  18. package/dist/Button.js +3 -2
  19. package/dist/Button.js.map +1 -1
  20. package/dist/Carousel.d.ts +1 -0
  21. package/dist/Carousel.js +6 -4
  22. package/dist/Carousel.js.map +1 -1
  23. package/dist/CarouselTemplate.js +1 -1
  24. package/dist/CarouselTemplate.js.map +1 -1
  25. package/dist/Checkbox.js +3 -2
  26. package/dist/Checkbox.js.map +1 -1
  27. package/dist/Contact.js +5 -4
  28. package/dist/Contact.js.map +1 -1
  29. package/dist/CountrySelector.d.ts +1 -1
  30. package/dist/CountrySelector.js +1 -1
  31. package/dist/CountrySelector.js.map +1 -1
  32. package/dist/DatePicker.js +3 -2
  33. package/dist/DatePicker.js.map +1 -1
  34. package/dist/EventRibbon.d.ts +2 -2
  35. package/dist/EventRibbon.js.map +1 -1
  36. package/dist/FeedItem.js +2 -1
  37. package/dist/FeedItem.js.map +1 -1
  38. package/dist/FilterMenu.js +5 -4
  39. package/dist/FilterMenu.js.map +1 -1
  40. package/dist/Footer.js +15 -14
  41. package/dist/Footer.js.map +1 -1
  42. package/dist/ImageGridTable.d.ts +57 -0
  43. package/dist/ImageGridTable.js +120 -0
  44. package/dist/ImageGridTable.js.map +1 -0
  45. package/dist/ImageGridTableItem.d.ts +89 -0
  46. package/dist/ImageGridTableItem.js +108 -0
  47. package/dist/ImageGridTableItem.js.map +1 -0
  48. package/dist/ImageGridTableItemTemplate.d.ts +2 -0
  49. package/dist/ImageGridTableItemTemplate.js +13 -0
  50. package/dist/ImageGridTableItemTemplate.js.map +1 -0
  51. package/dist/ImageGridTableTemplate.d.ts +2 -0
  52. package/dist/ImageGridTableTemplate.js +5 -0
  53. package/dist/ImageGridTableTemplate.js.map +1 -0
  54. package/dist/ImageGridTicker.js +3 -2
  55. package/dist/ImageGridTicker.js.map +1 -1
  56. package/dist/ImageGridTickerItem.d.ts +4 -0
  57. package/dist/ImageGridTickerItem.js +14 -0
  58. package/dist/ImageGridTickerItem.js.map +1 -1
  59. package/dist/ImageGridTickerItemTemplate.js +1 -1
  60. package/dist/ImageGridTickerItemTemplate.js.map +1 -1
  61. package/dist/InputGroup.js +3 -2
  62. package/dist/InputGroup.js.map +1 -1
  63. package/dist/List.js +2 -1
  64. package/dist/List.js.map +1 -1
  65. package/dist/ListItem.d.ts +0 -2
  66. package/dist/ListItem.js +4 -9
  67. package/dist/ListItem.js.map +1 -1
  68. package/dist/ListSelectAll.js +2 -1
  69. package/dist/ListSelectAll.js.map +1 -1
  70. package/dist/MastheadCountrySelector.js +3 -2
  71. package/dist/MastheadCountrySelector.js.map +1 -1
  72. package/dist/MastheadItem.d.ts +1 -0
  73. package/dist/MastheadItem.js +13 -7
  74. package/dist/MastheadItem.js.map +1 -1
  75. package/dist/MastheadMenu.d.ts +3 -0
  76. package/dist/MastheadMenu.js +12 -2
  77. package/dist/MastheadMenu.js.map +1 -1
  78. package/dist/MastheadMenuItem.js +2 -1
  79. package/dist/MastheadMenuItem.js.map +1 -1
  80. package/dist/MastheadMobileMenu.d.ts +1 -0
  81. package/dist/MastheadMobileMenu.js +8 -1
  82. package/dist/MastheadMobileMenu.js.map +1 -1
  83. package/dist/MastheadProfileMenu.js +6 -5
  84. package/dist/MastheadProfileMenu.js.map +1 -1
  85. package/dist/MastheadShell.d.ts +22 -0
  86. package/dist/MastheadShell.js +66 -19
  87. package/dist/MastheadShell.js.map +1 -1
  88. package/dist/MessageStrip.js +2 -1
  89. package/dist/MessageStrip.js.map +1 -1
  90. package/dist/MessageStripTemplate.js +1 -1
  91. package/dist/MessageStripTemplate.js.map +1 -1
  92. package/dist/Pagination.d.ts +0 -2
  93. package/dist/Pagination.js +16 -29
  94. package/dist/Pagination.js.map +1 -1
  95. package/dist/PhoneNumberField.js +7 -6
  96. package/dist/PhoneNumberField.js.map +1 -1
  97. package/dist/ProgressBar.js +5 -4
  98. package/dist/ProgressBar.js.map +1 -1
  99. package/dist/PromoTile.js +3 -2
  100. package/dist/PromoTile.js.map +1 -1
  101. package/dist/RadioButton.js +5 -4
  102. package/dist/RadioButton.js.map +1 -1
  103. package/dist/RatingBar.js +2 -1
  104. package/dist/RatingBar.js.map +1 -1
  105. package/dist/RatingIndicator.js +2 -1
  106. package/dist/RatingIndicator.js.map +1 -1
  107. package/dist/Review.d.ts +1 -1
  108. package/dist/Review.js +3 -3
  109. package/dist/Review.js.map +1 -1
  110. package/dist/ReviewItem.js +2 -1
  111. package/dist/ReviewItem.js.map +1 -1
  112. package/dist/Search.d.ts +2 -0
  113. package/dist/Search.js +34 -19
  114. package/dist/Search.js.map +1 -1
  115. package/dist/SearchTemplate.js +1 -1
  116. package/dist/SearchTemplate.js.map +1 -1
  117. package/dist/SearchableListBase.d.ts +1 -1
  118. package/dist/SearchableListBase.js +4 -3
  119. package/dist/SearchableListBase.js.map +1 -1
  120. package/dist/SecondaryNavigation.js +2 -1
  121. package/dist/SecondaryNavigation.js.map +1 -1
  122. package/dist/SecondaryNavigationSubItem.js +2 -1
  123. package/dist/SecondaryNavigationSubItem.js.map +1 -1
  124. package/dist/SelectBase.d.ts +4 -11
  125. package/dist/SelectBase.js +4 -11
  126. package/dist/SelectBase.js.map +1 -1
  127. package/dist/SelectBox.d.ts +1 -1
  128. package/dist/SelectBox.js +1 -1
  129. package/dist/SelectBox.js.map +1 -1
  130. package/dist/SocialMediaButton.js +2 -1
  131. package/dist/SocialMediaButton.js.map +1 -1
  132. package/dist/StatusBadge.js +7 -6
  133. package/dist/StatusBadge.js.map +1 -1
  134. package/dist/StepInput.js +9 -2
  135. package/dist/StepInput.js.map +1 -1
  136. package/dist/StepInputTemplate.js +1 -1
  137. package/dist/StepInputTemplate.js.map +1 -1
  138. package/dist/Tab.js +2 -1
  139. package/dist/Tab.js.map +1 -1
  140. package/dist/TabNavigation.js +2 -1
  141. package/dist/TabNavigation.js.map +1 -1
  142. package/dist/Table.d.ts +2 -2
  143. package/dist/Table.js +5 -15
  144. package/dist/Table.js.map +1 -1
  145. package/dist/TableCell.js +3 -3
  146. package/dist/TableCell.js.map +1 -1
  147. package/dist/TableCellBase.js +1 -3
  148. package/dist/TableCellBase.js.map +1 -1
  149. package/dist/TableCellTemplate.d.ts +2 -0
  150. package/dist/TableCellTemplate.js +9 -0
  151. package/dist/TableCellTemplate.js.map +1 -0
  152. package/dist/TableGroupRow.d.ts +1 -1
  153. package/dist/TableGroupRow.js +3 -6
  154. package/dist/TableGroupRow.js.map +1 -1
  155. package/dist/TableGroupRowTemplate.d.ts +2 -0
  156. package/dist/TableGroupRowTemplate.js +7 -0
  157. package/dist/TableGroupRowTemplate.js.map +1 -0
  158. package/dist/TableHeaderCell.js +3 -4
  159. package/dist/TableHeaderCell.js.map +1 -1
  160. package/dist/TableHeaderCellTemplate.d.ts +2 -0
  161. package/dist/TableHeaderCellTemplate.js +6 -0
  162. package/dist/TableHeaderCellTemplate.js.map +1 -0
  163. package/dist/TableHeaderRow.js +3 -5
  164. package/dist/TableHeaderRow.js.map +1 -1
  165. package/dist/TableHeaderRowTemplate.d.ts +2 -0
  166. package/dist/TableHeaderRowTemplate.js +5 -0
  167. package/dist/TableHeaderRowTemplate.js.map +1 -0
  168. package/dist/TableRow.js +3 -4
  169. package/dist/TableRow.js.map +1 -1
  170. package/dist/TableRowBase.d.ts +1 -1
  171. package/dist/TableRowBase.js +0 -2
  172. package/dist/TableRowBase.js.map +1 -1
  173. package/dist/TableRowTemplate.d.ts +2 -0
  174. package/dist/TableRowTemplate.js +5 -0
  175. package/dist/TableRowTemplate.js.map +1 -0
  176. package/dist/TableTemplate.d.ts +2 -0
  177. package/dist/TableTemplate.js +20 -0
  178. package/dist/TableTemplate.js.map +1 -0
  179. package/dist/Tag.js +7 -0
  180. package/dist/Tag.js.map +1 -1
  181. package/dist/TextArea.js +9 -8
  182. package/dist/TextArea.js.map +1 -1
  183. package/dist/TextField.js +7 -6
  184. package/dist/TextField.js.map +1 -1
  185. package/dist/Toast.d.ts +3 -1
  186. package/dist/Toast.js +15 -9
  187. package/dist/Toast.js.map +1 -1
  188. package/dist/ToastTemplate.d.ts +2 -0
  189. package/dist/ToastTemplate.js +11 -0
  190. package/dist/ToastTemplate.js.map +1 -0
  191. package/dist/TruncatedText.js +3 -2
  192. package/dist/TruncatedText.js.map +1 -1
  193. package/dist/Upload.js +2 -1
  194. package/dist/Upload.js.map +1 -1
  195. package/dist/UploadItem.d.ts +7 -0
  196. package/dist/UploadItem.js +14 -3
  197. package/dist/UploadItem.js.map +1 -1
  198. package/dist/assets/{InputSuggestions-63QG0i9j.js → InputSuggestions-CTFZ6hH-.js} +1 -1
  199. package/dist/assets/{ListItemStandardExpandableTextTemplate-B1CpqSCb.js → ListItemStandardExpandableTextTemplate-wXdCijez.js} +1 -1
  200. package/dist/assets/{bundle.esm-lUYJDofa.js → bundle.esm-BXCZ9BP3.js} +267 -265
  201. package/dist/assets/messagebundle_en-mjqY85LY.js +1 -0
  202. package/dist/css/themes/ImageGridTable.css +1 -0
  203. package/dist/css/themes/ImageGridTableItem.css +1 -0
  204. package/dist/css/themes/ImageGridTicker.css +1 -1
  205. package/dist/css/themes/MastheadItem.css +1 -1
  206. package/dist/css/themes/MastheadShell.css +1 -1
  207. package/dist/css/themes/RatingIndicator.css +1 -1
  208. package/dist/css/themes/Search.css +1 -1
  209. package/dist/css/themes/Slider.css +1 -1
  210. package/dist/custom-elements-internal.json +9418 -7451
  211. package/dist/custom-elements.json +6830 -5351
  212. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  213. package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
  214. package/dist/generated/i18n/i18n-defaults.js +4 -3
  215. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  216. package/dist/generated/templates/MastheadItemTemplate.lit.js +1 -1
  217. package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
  218. package/dist/generated/templates/MastheadMenuTemplate.lit.js +9 -7
  219. package/dist/generated/templates/MastheadMenuTemplate.lit.js.map +1 -1
  220. package/dist/generated/templates/MastheadShellTemplate.lit.js +8 -7
  221. package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
  222. package/dist/generated/templates/UploadItemTemplate.lit.js +1 -1
  223. package/dist/generated/templates/UploadItemTemplate.lit.js.map +1 -1
  224. package/dist/generated/themes/ImageGridTable.css.d.ts +2 -0
  225. package/dist/generated/themes/ImageGridTable.css.js +8 -0
  226. package/dist/generated/themes/ImageGridTable.css.js.map +1 -0
  227. package/dist/generated/themes/ImageGridTableItem.css.d.ts +2 -0
  228. package/dist/generated/themes/ImageGridTableItem.css.js +8 -0
  229. package/dist/generated/themes/ImageGridTableItem.css.js.map +1 -0
  230. package/dist/generated/themes/ImageGridTicker.css.d.ts +1 -1
  231. package/dist/generated/themes/ImageGridTicker.css.js +1 -1
  232. package/dist/generated/themes/ImageGridTicker.css.js.map +1 -1
  233. package/dist/generated/themes/MastheadItem.css.d.ts +1 -1
  234. package/dist/generated/themes/MastheadItem.css.js +1 -1
  235. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  236. package/dist/generated/themes/MastheadShell.css.d.ts +1 -1
  237. package/dist/generated/themes/MastheadShell.css.js +1 -1
  238. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  239. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  240. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  241. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  242. package/dist/generated/themes/Search.css.d.ts +1 -1
  243. package/dist/generated/themes/Search.css.js +1 -1
  244. package/dist/generated/themes/Search.css.js.map +1 -1
  245. package/dist/generated/themes/Slider.css.d.ts +1 -1
  246. package/dist/generated/themes/Slider.css.js +1 -1
  247. package/dist/generated/themes/Slider.css.js.map +1 -1
  248. package/dist/messagebundle.properties +6 -2
  249. package/dist/messagebundle_en.properties +3 -2
  250. package/dist/types/CustomTranslations.d.ts +3 -0
  251. package/dist/types/CustomTranslations.js +2 -0
  252. package/dist/types/CustomTranslations.js.map +1 -0
  253. package/dist/types/EventRibbon.d.ts +1 -1
  254. package/dist/types/EventRibbon.js +39 -39
  255. package/dist/types/EventRibbon.js.map +1 -1
  256. package/dist/utils/translate.d.ts +7 -0
  257. package/dist/utils/translate.js +15 -0
  258. package/dist/utils/translate.js.map +1 -0
  259. package/dist/vscode.html-custom-data.json +207 -7
  260. package/dist/web-types.json +541 -12
  261. package/package.json +1 -1
  262. package/src/Accordion.ts +3 -2
  263. package/src/Avatar.ts +5 -3
  264. package/src/Badge.ts +5 -2
  265. package/src/Breadcrumbs.ts +4 -3
  266. package/src/Button.ts +3 -2
  267. package/src/Carousel.ts +7 -4
  268. package/src/CarouselTemplate.tsx +2 -1
  269. package/src/Checkbox.ts +3 -2
  270. package/src/Contact.ts +5 -4
  271. package/src/CountrySelector.ts +1 -1
  272. package/src/DatePicker.ts +3 -2
  273. package/src/EventRibbon.ts +2 -2
  274. package/src/FeedItem.ts +2 -1
  275. package/src/FilterMenu.ts +5 -4
  276. package/src/Footer.ts +15 -14
  277. package/src/ImageGridTable.ts +151 -0
  278. package/src/ImageGridTableItem.ts +148 -0
  279. package/src/ImageGridTableItemTemplate.tsx +48 -0
  280. package/src/ImageGridTableTemplate.tsx +9 -0
  281. package/src/ImageGridTicker.ts +4 -2
  282. package/src/ImageGridTickerItem.ts +20 -0
  283. package/src/ImageGridTickerItemTemplate.tsx +1 -0
  284. package/src/InputGroup.ts +3 -2
  285. package/src/List.ts +2 -1
  286. package/src/ListItem.ts +4 -11
  287. package/src/ListSelectAll.ts +2 -1
  288. package/src/MastheadCountrySelector.ts +3 -2
  289. package/src/MastheadItem.hbs +1 -1
  290. package/src/MastheadItem.ts +14 -7
  291. package/src/MastheadMenu.hbs +33 -12
  292. package/src/MastheadMenu.ts +11 -0
  293. package/src/MastheadMenuItem.ts +2 -1
  294. package/src/MastheadMobileMenu.ts +11 -2
  295. package/src/MastheadProfileMenu.ts +6 -5
  296. package/src/MastheadShell.hbs +38 -29
  297. package/src/MastheadShell.ts +85 -19
  298. package/src/MessageStrip.ts +2 -1
  299. package/src/MessageStripTemplate.tsx +1 -1
  300. package/src/Pagination.ts +15 -28
  301. package/src/PhoneNumberField.ts +7 -6
  302. package/src/ProgressBar.ts +5 -4
  303. package/src/PromoTile.ts +3 -2
  304. package/src/RadioButton.ts +5 -4
  305. package/src/RatingBar.ts +2 -1
  306. package/src/RatingIndicator.ts +2 -1
  307. package/src/Review.ts +4 -3
  308. package/src/ReviewItem.ts +2 -1
  309. package/src/Search.ts +36 -19
  310. package/src/SearchTemplate.tsx +1 -1
  311. package/src/SearchableListBase.ts +4 -3
  312. package/src/SecondaryNavigation.ts +2 -1
  313. package/src/SecondaryNavigationSubItem.ts +2 -1
  314. package/src/SelectBase.ts +6 -12
  315. package/src/SelectBox.ts +1 -1
  316. package/src/SocialMediaButton.ts +2 -1
  317. package/src/StatusBadge.ts +7 -6
  318. package/src/StepInput.ts +9 -2
  319. package/src/StepInputTemplate.tsx +6 -2
  320. package/src/Tab.ts +2 -1
  321. package/src/TabNavigation.ts +2 -1
  322. package/src/Table.ts +7 -15
  323. package/src/TableCell.ts +3 -3
  324. package/src/TableCellBase.ts +1 -3
  325. package/src/TableCellTemplate.tsx +21 -0
  326. package/src/TableGroupRow.ts +4 -6
  327. package/src/TableGroupRowTemplate.tsx +36 -0
  328. package/src/TableHeaderCell.ts +3 -4
  329. package/src/TableHeaderCellTemplate.tsx +36 -0
  330. package/src/TableHeaderRow.ts +3 -5
  331. package/src/TableHeaderRowTemplate.tsx +13 -0
  332. package/src/TableRow.ts +3 -4
  333. package/src/TableRowBase.ts +1 -2
  334. package/src/TableRowTemplate.tsx +13 -0
  335. package/src/TableTemplate.tsx +94 -0
  336. package/src/Tag.ts +1 -1
  337. package/src/TextArea.ts +8 -8
  338. package/src/TextField.ts +7 -6
  339. package/src/Toast.ts +17 -8
  340. package/src/ToastTemplate.tsx +42 -0
  341. package/src/TruncatedText.ts +3 -2
  342. package/src/Upload.ts +2 -1
  343. package/src/UploadItem.hbs +1 -1
  344. package/src/UploadItem.ts +13 -3
  345. package/src/generated/i18n/i18n-defaults.ts +2 -2
  346. package/src/generated/templates/MastheadItemTemplate.lit.ts +1 -1
  347. package/src/generated/templates/MastheadMenuTemplate.lit.ts +9 -7
  348. package/src/generated/templates/MastheadShellTemplate.lit.ts +8 -7
  349. package/src/generated/templates/UploadItemTemplate.lit.ts +1 -1
  350. package/src/generated/themes/ImageGridTable.css.ts +9 -0
  351. package/src/generated/themes/ImageGridTableItem.css.ts +9 -0
  352. package/src/generated/themes/ImageGridTicker.css.ts +1 -1
  353. package/src/generated/themes/MastheadItem.css.ts +1 -1
  354. package/src/generated/themes/MastheadShell.css.ts +1 -1
  355. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  356. package/src/generated/themes/Search.css.ts +1 -1
  357. package/src/generated/themes/Slider.css.ts +1 -1
  358. package/src/i18n/messagebundle.properties +6 -2
  359. package/src/i18n/messagebundle_en.properties +3 -2
  360. package/src/themes/Badge.css +0 -1
  361. package/src/themes/ImageGridTable.css +47 -0
  362. package/src/themes/ImageGridTableItem.css +102 -0
  363. package/src/themes/ImageGridTicker.css +1 -0
  364. package/src/themes/MastheadItem.css +1 -0
  365. package/src/themes/MastheadShell.css +1 -0
  366. package/src/themes/Search.css +2 -3
  367. package/src/types/CustomTranslations.ts +1 -0
  368. package/src/types/EventRibbon.ts +1 -1
  369. package/src/utils/translate.ts +21 -0
  370. package/dist/assets/messagebundle_en-D_yCmNrd.js +0 -1
  371. package/dist/generated/templates/TableCellTemplate.lit.d.ts +0 -3
  372. package/dist/generated/templates/TableCellTemplate.lit.js +0 -8
  373. package/dist/generated/templates/TableCellTemplate.lit.js.map +0 -1
  374. package/dist/generated/templates/TableGroupRowTemplate.lit.d.ts +0 -3
  375. package/dist/generated/templates/TableGroupRowTemplate.lit.js +0 -9
  376. package/dist/generated/templates/TableGroupRowTemplate.lit.js.map +0 -1
  377. package/dist/generated/templates/TableHeaderCellTemplate.lit.d.ts +0 -3
  378. package/dist/generated/templates/TableHeaderCellTemplate.lit.js +0 -11
  379. package/dist/generated/templates/TableHeaderCellTemplate.lit.js.map +0 -1
  380. package/dist/generated/templates/TableHeaderRowTemplate.lit.d.ts +0 -3
  381. package/dist/generated/templates/TableHeaderRowTemplate.lit.js +0 -8
  382. package/dist/generated/templates/TableHeaderRowTemplate.lit.js.map +0 -1
  383. package/dist/generated/templates/TableRowTemplate.lit.d.ts +0 -3
  384. package/dist/generated/templates/TableRowTemplate.lit.js +0 -8
  385. package/dist/generated/templates/TableRowTemplate.lit.js.map +0 -1
  386. package/dist/generated/templates/TableTemplate.lit.d.ts +0 -3
  387. package/dist/generated/templates/TableTemplate.lit.js +0 -13
  388. package/dist/generated/templates/TableTemplate.lit.js.map +0 -1
  389. package/dist/generated/templates/ToastTemplate.lit.d.ts +0 -3
  390. package/dist/generated/templates/ToastTemplate.lit.js +0 -10
  391. package/dist/generated/templates/ToastTemplate.lit.js.map +0 -1
  392. package/src/Table.hbs +0 -45
  393. package/src/TableCell.hbs +0 -4
  394. package/src/TableGroupRow.hbs +0 -24
  395. package/src/TableHeaderCell.hbs +0 -19
  396. package/src/TableHeaderRow.hbs +0 -3
  397. package/src/TableRow.hbs +0 -3
  398. package/src/Toast.hbs +0 -20
  399. package/src/generated/templates/TableCellTemplate.lit.ts +0 -12
  400. package/src/generated/templates/TableGroupRowTemplate.lit.ts +0 -13
  401. package/src/generated/templates/TableHeaderCellTemplate.lit.ts +0 -15
  402. package/src/generated/templates/TableHeaderRowTemplate.lit.ts +0 -12
  403. package/src/generated/templates/TableRowTemplate.lit.ts +0 -12
  404. package/src/generated/templates/TableTemplate.lit.ts +0 -17
  405. package/src/generated/templates/ToastTemplate.lit.ts +0 -14
@@ -19,7 +19,7 @@ import "@ui5/webcomponents-icons/dist/menu2.js";
19
19
  import "@ui5/webcomponents-icons/dist/search.js";
20
20
  import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
21
21
  import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
22
- import { MAIN_LINKS } from "./generated/i18n/i18n-defaults.js";
22
+ import { MAIN_LINKS, SEARCH } from "./generated/i18n/i18n-defaults.js";
23
23
  import UDExMastheadItem, { UDExMastheadDropdownItemAction } from "./MastheadItem.js";
24
24
  import UDExMastheadMenu from "./MastheadMenu.js";
25
25
  import UDExControlButton from "./ControlButton.js";
@@ -27,6 +27,7 @@ import UDExMastheadMobileMenu from "./MastheadMobileMenu.js";
27
27
  import { BreakpointUtils } from "./utils/Breakpoints.js";
28
28
  import AnalyticsName from "./types/AnalyticsName.js";
29
29
  import MastheadShellTemplate from "./generated/templates/MastheadShellTemplate.lit.js";
30
+ import translate from "./utils/translate.js";
30
31
  // Styles
31
32
  import MastheadShellCss from "./generated/themes/MastheadShell.css.js";
32
33
  const canvasContentFont = "14px '72 Brand Variable'";
@@ -72,8 +73,9 @@ let UDExMastheadShell = UDExMastheadShell_1 = class UDExMastheadShell extends UI
72
73
  onAfterRendering() {
73
74
  this._rootHolder = this.mastheadHolder;
74
75
  this._searchOpener = this.searchOpener;
76
+ this._desktopSearch = this.desktopSearchSlot;
75
77
  this._mobileMenu = this.mastheadMobileMenu;
76
- if (this._isSearchOpened) {
78
+ if (this._isSearchOpened && this._desktopSearch) {
77
79
  this.focusSearchInput();
78
80
  }
79
81
  if (this._closeBtnClicked) {
@@ -187,10 +189,17 @@ let UDExMastheadShell = UDExMastheadShell_1 = class UDExMastheadShell extends UI
187
189
  handleCartClick(e) {
188
190
  e.stopPropagation();
189
191
  this.fireMastheadEvent("cart-click", e);
192
+ this.mobileMenuReset();
193
+ }
194
+ handleJouleClick(e) {
195
+ e.stopPropagation();
196
+ this.fireMastheadEvent("joule-click", e);
197
+ this.mobileMenuReset();
190
198
  }
191
199
  handleProfileClick(e) {
192
200
  e.stopPropagation();
193
201
  this.fireMastheadEvent("profile-click", e);
202
+ this.mobileMenuReset();
194
203
  }
195
204
  handleSupportClick(e) {
196
205
  e.stopPropagation();
@@ -199,6 +208,7 @@ let UDExMastheadShell = UDExMastheadShell_1 = class UDExMastheadShell extends UI
199
208
  handleCountrySelectorClick(e) {
200
209
  e.stopPropagation();
201
210
  this.fireMastheadEvent("country-selector-click", e);
211
+ this.mobileMenuReset();
202
212
  }
203
213
  handleOpenMobileMenu() {
204
214
  const clickedItem = this.mobileBtn;
@@ -216,6 +226,7 @@ let UDExMastheadShell = UDExMastheadShell_1 = class UDExMastheadShell extends UI
216
226
  this._closeBtnClicked = true;
217
227
  this.fireMastheadEvent("search-close-click", e);
218
228
  this.closeSearch();
229
+ this.resetSearch();
219
230
  }
220
231
  handleEnterAndSpaceOnCloseBtn(e) {
221
232
  if (isSpace(e) || isEnter(e)) {
@@ -225,11 +236,8 @@ let UDExMastheadShell = UDExMastheadShell_1 = class UDExMastheadShell extends UI
225
236
  }
226
237
  }
227
238
  focusSearchInput() {
228
- const searchSlot = this.querySelector("[udex-search]");
229
- if (searchSlot) {
230
- const input = searchSlot.shadowRoot.querySelector("input");
231
- input?.focus();
232
- }
239
+ const input = this._desktopSearch?.shadowRoot.querySelector("input");
240
+ input?.focus();
233
241
  }
234
242
  focusPreviousMenuItem(item) {
235
243
  const menuItems = this.menuItems;
@@ -254,6 +262,11 @@ let UDExMastheadShell = UDExMastheadShell_1 = class UDExMastheadShell extends UI
254
262
  }
255
263
  });
256
264
  }
265
+ resetSearch() {
266
+ if (this._desktopSearch) {
267
+ this._desktopSearch.value = "";
268
+ }
269
+ }
257
270
  setSelectedItem(e) {
258
271
  const clickedItem = e.detail.item;
259
272
  if (clickedItem) {
@@ -273,6 +286,7 @@ let UDExMastheadShell = UDExMastheadShell_1 = class UDExMastheadShell extends UI
273
286
  const buttonsArray = [
274
287
  ...this.menuItems,
275
288
  ...this.exploreSAP,
289
+ ...this.joule,
276
290
  ...this.cart,
277
291
  ...this.support,
278
292
  ...this.profile,
@@ -403,6 +417,12 @@ let UDExMastheadShell = UDExMastheadShell_1 = class UDExMastheadShell extends UI
403
417
  };
404
418
  this.fireDecoratorEvent(eventName, eventDetails);
405
419
  }
420
+ mobileMenuReset() {
421
+ if (this._isMobileMenuOpen) {
422
+ this._mobileMenu?.showFirstLevelMenu();
423
+ this._mobileMenu?.resetSearch();
424
+ }
425
+ }
406
426
  /**
407
427
  * Close the search panel.
408
428
  * @public
@@ -451,6 +471,7 @@ let UDExMastheadShell = UDExMastheadShell_1 = class UDExMastheadShell extends UI
451
471
  this.mobileBtn.selected = false;
452
472
  this._isMobileMenuOpen = false;
453
473
  this._mobileMenu?.showFirstLevelMenu();
474
+ this._mobileMenu?.resetSearch();
454
475
  if (this.bodyOverflow) {
455
476
  this.removeOverflowBody();
456
477
  }
@@ -467,6 +488,9 @@ let UDExMastheadShell = UDExMastheadShell_1 = class UDExMastheadShell extends UI
467
488
  this.countrySelectorMenu,
468
489
  ];
469
490
  }
491
+ get desktopSearchSlot() {
492
+ return this.querySelector("[udex-search]");
493
+ }
470
494
  get searchOpener() {
471
495
  return this.shadowRoot?.querySelector(".udex-masthead-shell__search-btn");
472
496
  }
@@ -515,6 +539,9 @@ let UDExMastheadShell = UDExMastheadShell_1 = class UDExMastheadShell extends UI
515
539
  get hasExploreSAP() {
516
540
  return !!this.exploreSAP.length;
517
541
  }
542
+ get hasJoule() {
543
+ return !!this.joule.length;
544
+ }
518
545
  get hasCountrySelector() {
519
546
  return !!this.countrySelector.length;
520
547
  }
@@ -545,8 +572,11 @@ let UDExMastheadShell = UDExMastheadShell_1 = class UDExMastheadShell extends UI
545
572
  get shouldHandleMobileView() {
546
573
  return !this.isAtMostBreakpointSizeM && this.isMainMenuVisible;
547
574
  }
575
+ get openSearchButtonAccessibleNameText() {
576
+ return this.openSearchButtonAccessibleName || translate(UDExMastheadShell_1, SEARCH);
577
+ }
548
578
  get mainNavigationAriaLabel() {
549
- return UDExMastheadShell_1.i18nBundle.getText(MAIN_LINKS);
579
+ return translate(UDExMastheadShell_1, MAIN_LINKS);
550
580
  }
551
581
  get isSimpleExploreMode() {
552
582
  return !this.hasSearch && !this.hasProfile && !this.hasCart && !this.hasSupport && !this.hasCountrySelector;
@@ -580,6 +610,9 @@ __decorate([
580
610
  __decorate([
581
611
  slot({ type: HTMLElement })
582
612
  ], UDExMastheadShell.prototype, "cart", void 0);
613
+ __decorate([
614
+ slot({ type: HTMLElement })
615
+ ], UDExMastheadShell.prototype, "joule", void 0);
583
616
  __decorate([
584
617
  slot({ type: HTMLElement })
585
618
  ], UDExMastheadShell.prototype, "profile", void 0);
@@ -634,6 +667,9 @@ __decorate([
634
667
  __decorate([
635
668
  property()
636
669
  ], UDExMastheadShell.prototype, "closeButtonAccessibleName", void 0);
670
+ __decorate([
671
+ property()
672
+ ], UDExMastheadShell.prototype, "openSearchButtonAccessibleName", void 0);
637
673
  __decorate([
638
674
  property()
639
675
  ], UDExMastheadShell.prototype, "mobileCloseButtonAccessibleName", void 0);
@@ -685,7 +721,7 @@ UDExMastheadShell = UDExMastheadShell_1 = __decorate([
685
721
  * Fired event when the user clicks the mobile menu button closer.
686
722
  *
687
723
  * @public
688
- * @param {AnalyticsName} analyticsName The analytics name for the mobile menu open event
724
+ * @param {AnalyticsName} analyticsName The analytics name for the mobile menu close event
689
725
  */
690
726
  ,
691
727
  event("mobile-menu-close", { bubbles: true })
@@ -705,7 +741,7 @@ UDExMastheadShell = UDExMastheadShell_1 = __decorate([
705
741
  * Fired event when the user clicks the search close button.
706
742
  *
707
743
  * @public
708
- * @param {AnalyticsName} analyticsName The analytics name for the search click event
744
+ * @param {AnalyticsName} analyticsName The analytics name for the search close click event
709
745
  * @param {PointerEvent} originalEvent The original pointer event
710
746
  * @param {HTMLElement} sourceNode The source element that fired the event
711
747
  * @param {UDExMastheadItem} [item] The masthead item that was clicked
@@ -716,7 +752,7 @@ UDExMastheadShell = UDExMastheadShell_1 = __decorate([
716
752
  * Fired event when the search panel is opened.
717
753
  *
718
754
  * @public
719
- * @param {AnalyticsName} analyticsName The analytics name for the mobile menu open event
755
+ * @param {AnalyticsName} analyticsName The analytics name for the search opened event
720
756
  */
721
757
  ,
722
758
  event("search-opened", { bubbles: true })
@@ -724,15 +760,26 @@ UDExMastheadShell = UDExMastheadShell_1 = __decorate([
724
760
  * Fired event when the search panel is closed.
725
761
  *
726
762
  * @public
727
- * @param {AnalyticsName} analyticsName The analytics name for the mobile menu open event
763
+ * @param {AnalyticsName} analyticsName The analytics name for the search closed event
728
764
  */
729
765
  ,
730
766
  event("search-closed", { bubbles: true })
767
+ /**
768
+ * Fired event when the user clicks the joule button trigger.
769
+ *
770
+ * @public
771
+ * @param {AnalyticsName} analyticsName The analytics name for the joule click event
772
+ * @param {PointerEvent} originalEvent The original pointer event
773
+ * @param {HTMLElement} sourceNode The source element that fired the event
774
+ * @param {UDExMastheadItem} [item] The masthead item that was clicked
775
+ */
776
+ ,
777
+ event("joule-click", { bubbles: true })
731
778
  /**
732
779
  * Fired event when the user clicks the cart button trigger.
733
780
  *
734
781
  * @public
735
- * @param {AnalyticsName} analyticsName The analytics name for the search click event
782
+ * @param {AnalyticsName} analyticsName The analytics name for the cart click event
736
783
  * @param {PointerEvent} originalEvent The original pointer event
737
784
  * @param {HTMLElement} sourceNode The source element that fired the event
738
785
  * @param {UDExMastheadItem} [item] The masthead item that was clicked
@@ -743,7 +790,7 @@ UDExMastheadShell = UDExMastheadShell_1 = __decorate([
743
790
  * Fired event when the user clicks the support button trigger.
744
791
  *
745
792
  * @public
746
- * @param {AnalyticsName} analyticsName The analytics name for the search click event
793
+ * @param {AnalyticsName} analyticsName The analytics name for the support click event
747
794
  * @param {PointerEvent} originalEvent The original pointer event
748
795
  * @param {HTMLElement} sourceNode The source element that fired the event
749
796
  * @param {UDExMastheadItem} [item] The masthead item that was clicked
@@ -754,7 +801,7 @@ UDExMastheadShell = UDExMastheadShell_1 = __decorate([
754
801
  * Fired event when the user clicks the profile button trigger.
755
802
  *
756
803
  * @public
757
- * @param {AnalyticsName} analyticsName The analytics name for the search click event
804
+ * @param {AnalyticsName} analyticsName The analytics name for the profile click event
758
805
  * @param {PointerEvent} originalEvent The original pointer event
759
806
  * @param {HTMLElement} sourceNode The source element that fired the event
760
807
  * @param {UDExMastheadItem} [item] The masthead item that was clicked
@@ -765,7 +812,7 @@ UDExMastheadShell = UDExMastheadShell_1 = __decorate([
765
812
  * Fired event when the user clicks the country selector button trigger.
766
813
  *
767
814
  * @public
768
- * @param {AnalyticsName} analyticsName The analytics name for the search click event
815
+ * @param {AnalyticsName} analyticsName The analytics name for the country selector click event
769
816
  * @param {PointerEvent} originalEvent The original pointer event
770
817
  * @param {HTMLElement} sourceNode The source element that fired the event
771
818
  * @param {UDExMastheadItem} [item] The masthead item that was clicked
@@ -776,7 +823,7 @@ UDExMastheadShell = UDExMastheadShell_1 = __decorate([
776
823
  * Fired event when the user clicks the logo.
777
824
  *
778
825
  * @public
779
- * @param {AnalyticsName} analyticsName The analytics name for the search click event
826
+ * @param {AnalyticsName} analyticsName The analytics name for the logo click event
780
827
  * @param {PointerEvent} originalEvent The original pointer event
781
828
  * @param {HTMLElement} sourceNode The source element that fired the event
782
829
  * @param {UDExMastheadItem} [item] The masthead item that was clicked
@@ -787,7 +834,7 @@ UDExMastheadShell = UDExMastheadShell_1 = __decorate([
787
834
  * Fired event when the user clicks the site label.
788
835
  *
789
836
  * @public
790
- * @param {AnalyticsName} analyticsName The analytics name for the search click event
837
+ * @param {AnalyticsName} analyticsName The analytics name for the site label click event
791
838
  * @param {PointerEvent} originalEvent The original pointer event
792
839
  * @param {HTMLElement} sourceNode The source element that fired the event
793
840
  * @param {UDExMastheadItem} [item] The masthead item that was clicked
@@ -798,7 +845,7 @@ UDExMastheadShell = UDExMastheadShell_1 = __decorate([
798
845
  * Fired event when the user clicks the co-brand.
799
846
  *
800
847
  * @public
801
- * @param {AnalyticsName} analyticsName The analytics name for the search click event
848
+ * @param {AnalyticsName} analyticsName The analytics name for the co-brand click event
802
849
  * @param {PointerEvent} originalEvent The original pointer event
803
850
  * @param {HTMLElement} sourceNode The source element that fired the event
804
851
  * @param {UDExMastheadItem} [item] The masthead item that was clicked
@@ -1 +1 @@
1
- {"version":3,"file":"MastheadShell.js","sourceRoot":"","sources":["../src/MastheadShell.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAE5E,OAAO,OAAO,MAAM,iCAAiC,CAAC;AACtD,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAE7E,OAAO,aAAa,MAAM,wDAAwD,CAAC;AACnF,OAAO,EACL,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,GAC5C,MAAM,sCAAsC,CAAC;AAC9C,OAAO,0CAA0C,CAAC;AAClD,OAAO,wCAAwC,CAAC;AAChD,OAAO,yCAAyC,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,gBAAgB,EAAE,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,gBAAgB,MAAM,mBAAmB,CAAC;AACjD,OAAO,iBAAiB,MAAM,oBAAoB,CAAC;AAEnD,OAAO,sBAAsB,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,aAAa,MAAM,0BAA0B,CAAC;AACrD,OAAO,qBAAqB,MAAM,oDAAoD,CAAC;AAEvF,SAAS;AACT,OAAO,gBAAgB,MAAM,yCAAyC,CAAC;AAEvE,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AAKrD,MAAM,CAAN,IAAY,oBAUX;AAVD,WAAY,oBAAoB;IAC9B,yGAAiF,CAAA;IACjF,qFAA6D,CAAA;IAC7D,oFAA4D,CAAA;IAC5D,kFAA0D,CAAA;IAC1D,+EAAuD,CAAA;IACvD,8EAAsD,CAAA;IACtD,2EAAmD,CAAA;IACnD,uEAA+C,CAAA;IAC/C,kEAA0C,CAAA;AAC5C,CAAC,EAVW,oBAAoB,KAApB,oBAAoB,QAU/B;AAaD;;;;;;;;;;;;;;;;GAgBG;AAoJH,IAAM,iBAAiB,yBAAvB,MAAM,iBAAkB,SAAQ,UAAU;IAuSxC;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,iBAAiB;QACf,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAE3C,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;QAED,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,UAAU;QACR,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACtD,IAAI,SAAS,EAAE,EAAE,CAAC;YAChB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,SAAS;QACP,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC1D,CAAC;IAED,cAAc,CAAC,EAAE,IAAI,EAAc;QACjC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACtD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,aAAa;QACX,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC;QAED,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvD,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAClC,CAAC;IAED,gBAAgB;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACpC,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;YAC5D,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACxD,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAChD,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC9C,MAAM,cAAc,GAAG,eAAe,GAAG,cAAc,GAAG,kBAAkB,CAAC;YAE7E,IAAI,aAAa,IAAI,cAAc,EAAE,CAAC;gBACpC,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,CAAC;YAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAED,aAAa,CAAC,CAAgB;QAC5B,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,mBAAmB,CAAC,CAAc;QAChC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,CAAkB,CAAC;QAE7C,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAC9D,OAAO;YACT,CAAC;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED,eAAe,CAAC,CAAgB;QAC9B,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACd,MAAM,WAAW,GAAG,CAAC,CAAC,MAA0B,CAAC;YACjD,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;gBACvC,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;oBACzB,WAAW,CAAC,aAAa,EAAE,CAAC;gBAC9B,CAAC;gBACD,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,CAAgB;QAC/B,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,CAAC,CAAC,MAA0B,CAAC;YACjD,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;gBACvC,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;oBACzB,WAAW,CAAC,aAAa,EAAE,CAAC;gBAC9B,CAAC;gBACD,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAED,eAAe,CAAC,CAAe;QAC7B,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,oBAAoB,CAAC,CAAe;QAClC,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,kBAAkB,CAAC,CAAe;QAChC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,iBAAiB,CAAC,CAAe;QAC/B,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,eAAe,CAAC,CAAe;QAC7B,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,kBAAkB,CAAC,CAAe;QAChC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,kBAAkB,CAAC,CAAe;QAChC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,0BAA0B,CAAC,CAAe;QACxC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,oBAAoB;QAClB,MAAM,WAAW,GAAG,IAAI,CAAC,SAA6B,CAAC;QACvD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAE9B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IAC7C,CAAC;IAED,iBAAiB,CAAC,CAAe;QAC/B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,6BAA6B,CAAC,CAAgB;QAC5C,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAa,eAAe,CAAC,CAAC;QACnE,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,UAAU,CAAC,UAAW,CAAC,aAAa,CAAc,OAAO,CAAC,CAAC;YACzE,KAAK,EAAE,KAAK,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED,qBAAqB,CAAC,IAAsB;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3C,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,mBAAmB,GAAG,oBAAoB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAoB,GAAG,CAAC,CAAC;QACpG,SAAS,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;IACzC,CAAC;IAED,iBAAiB,CAAC,IAAsB;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,eAAe,GAAG,oBAAoB,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,GAAG,CAAC,CAAC;QACvG,SAAS,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;IACrC,CAAC;IAED,kBAAkB,CAAC,SAAkB;QACnC,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACrC,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC5C,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;oBACzB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,EAAE,8BAA8B,CAAC,YAAY,CAAC,CAAC;gBAChG,CAAC;gBACD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACxB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,CAAc;QAC5B,MAAM,WAAW,GAAqB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QACpD,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,cAAc;QACZ,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAChC,CAAC;IACH,CAAC;IAED,eAAe,CAAC,IAAsB;QACpC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,gBAAgB;QACd,MAAM,YAAY,GAA4B;YAC5C,GAAG,IAAI,CAAC,SAAS;YACjB,GAAG,IAAI,CAAC,UAAU;YAClB,GAAG,IAAI,CAAC,IAAI;YACZ,GAAG,IAAI,CAAC,OAAO;YACf,GAAG,IAAI,CAAC,OAAO;YACf,GAAG,IAAI,CAAC,eAAe;YACvB,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E,CAAC;QAEF,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED,kBAAkB,CAAC,IAAiB;QAClC,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC;QACjG,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC;QAC7E,OAAO,IAAI,CAAC,SAAS,EAAG,CAAC,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;IACnE,CAAC;IAED,qBAAqB;QACnB,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,oCAAoC,CAAC,CAAC;QAC/E,OAAO,aAAa,EAAE,WAAW,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,iBAAiB;QACf,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,UAAW,CAAC,gBAAgB,CAAiB,iCAAiC,CAAC,CAAC,CAAC;QAC5G,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAClE,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,YAAY,GAAG,WAAW,EAAE,YAAY,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC;QAC9E,MAAM,oBAAoB,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,YAAY,CAAC;QACzF,OAAO,eAAe,GAAG,oBAAoB,GAAG,cAAc,GAAG,aAAa,CAAC;IACjF,CAAC;IAED,eAAe,CAAC,eAAuB;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;QAExD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,KAAK,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;QAC5D,OAAO,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;IACvE,CAAC;IAED,qBAAqB;QACnB,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;QACnF,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,8BAA8B,CAAC,CAAC;QACpG,OAAO,aAAa,GAAG,iBAAiB,CAAC;IAC3C,CAAC;IAED,gBAAgB;QACd,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACjE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YACxD,MAAM,QAAQ,GAAG,IAAwB,CAAC;YAC1C,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YACtE,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,OAAO,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,cAAc,CAAC;QAC3G,CAAC,EAAE,CAAC,CAAC,CAAC;IACR,CAAC;IAED,aAAa,CAAC,QAAgB;QAC5B,OAAO,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,YAAY,CAAC,IAAsB;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxC,OAAO,CAAC,IAAI,GAAG,iBAAiB,CAAC;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC;IAED,gBAAgB;QACd,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAE,CAAC;IAClC,CAAC;IAED,cAAc;QACZ,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAED,mBAAmB;QACjB,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,eAAe;QACb,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;QAC/E,OAAO,QAAQ,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAED,UAAU,CAAC,YAAoB;QAC7B,OAAO,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAG,CAAC,CAAC,gBAAgB,CAAC,GAAG,YAAY,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,gBAAgB,CAAC,IAAsB;QACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED,eAAe;QACb,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,QAAQ,CAAC;QACrC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,kBAAkB;QAChB,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,QAAQ,CAAC;QACrC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED,aAAa;QACX,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAyB,EAAE,EAAE;YACtD,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB;QACjB,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,CAAC;QACrH,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC;QACjD,MAAM,gBAAgB,GAAG,GAAG,MAAM,CAAC,WAAW,GAAG,cAAc,GAAG,OAAO,IAAI,CAAC;QAC9E,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IAClF,CAAC;IAED,oBAAoB;QAClB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACzD,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAyB,EAAE,EAAE;YACtD,IAAI,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAClD,CAAC;IAED,iBAAiB,CAAC,SAAqC,EAAE,CAAgB;QACvE,MAAM,YAAY,GAAG;YACnB,aAAa,EAAE,aAAa,CAAC,MAAM;YACnC,GAAG,CAAC,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;YAC9B,GAAG,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,aAA4B,EAAE,CAAC;SACf,CAAC;QAC5C,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACnD,CAAC;IAED;;;OAGG;IACH,WAAW;QACT,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,MAAM,0BAA0B,GAAG,IAAI,CAAC,eAAe;eAClD,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC;eAC3D,IAAI,CAAC,aAAa;eAClB,CAAC,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAEjE,IAAI,0BAA0B,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACrD,IAAI,CAAC,SAAS,EAAE,oBAAoB,EAAE,CAAC;YACvC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAEA,IAAI,CAAC,SAA8B,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtD,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,WAAW,EAAE,kBAAkB,EAAE,CAAC;QAEvC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,YAAY;QACd,OAAO;YACL,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,QAAQ;YACb,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,gBAAgB;YACrB,IAAI,CAAC,mBAAmB;YACxB,IAAI,CAAC,mBAAmB;SACzB,CAAC;IACJ,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,kCAAkC,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,gCAAgC,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,iCAAiC,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,eAAe,CAAmB,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,eAAe,CAAmB,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,eAAe,CAAmB,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,eAAe,CAAmB,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,8BAA8B,CAAE,CAAC;IAC7D,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,kCAAkC,CAAE,CAAC;IACjE,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,IAAI,aAAa;QACf,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;IAClC,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;IACvC,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;IAClC,CAAC;IAED,IAAI,uBAAuB;QACzB,OAAO,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,wBAAwB;QAC1B,OAAO,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,uBAAuB,CAAC;IAC5D,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IACvF,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,eAAe,CAAC;IAC1D,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC;IAC5E,CAAC;IAED,IAAI,sBAAsB;QACxB,OAAO,CAAC,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,iBAAiB,CAAC;IACjE,CAAC;IAED,IAAI,uBAAuB;QACzB,OAAO,mBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;IAC9G,CAAC;IAED,IAAI,cAAc;QAChB,MAAM,IAAI,GAAG,iCAAiC,CAAC;QAC/C,MAAM,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,OAAO,GAAG,IAAI,IAAI,kBAAkB,EAAE,CAAC,IAAI,EAAE,CAAC;IAChD,CAAC;IAED,IAAI,SAAS;QACX,MAAM,IAAI,GAAG,qBAAqB,CAAC;QACnC,MAAM,sBAAsB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC;QACrH,OAAO,GAAG,IAAI,IAAI,sBAAsB,EAAE,CAAC,IAAI,EAAE,CAAC;IACpD,CAAC;CACF,CAAA;AAp3BG;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;0DACuB;AAQ1C;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;qDACD;AAQzB;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;oDAC9B;AAUpC;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;iDACE;AAQrB;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;qDACW;AAQrC;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;+CACK;AAQ/B;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;kDACQ;AAQlC;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;kDACQ;AASlC;IADD,QAAQ,EAAE;kDACQ;AASjB;IADD,QAAQ,EAAE;uDACa;AAStB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;uDACH;AASvB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;8DACI;AAS9B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;yDACD;AASzB;IADD,QAAQ,EAAE;uDACa;AAStB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qDACL;AASpB;IADD,QAAQ,EAAE;qDACW;AASpB;IADD,QAAQ,EAAE;uDACa;AAStB;IADD,QAAQ,EAAE;2DACiB;AAS1B;IADD,QAAQ,EAAE;kDACQ;AASjB;IADD,QAAQ,EAAE;oDACU;AASnB;IADD,QAAQ,EAAE;yDACe;AASxB;IADD,QAAQ,EAAE;oDACU;AASnB;IADD,QAAQ,EAAE;kDACQ;AASjB;IADD,QAAQ,EAAE;oEAC0B;AASnC;IADD,QAAQ,EAAE;0EACgC;AASzC;IADD,QAAQ,EAAE;4DACkB;AAS3B;IADD,QAAQ,EAAE;6DACmB;AAQ5B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0DACA;AAQ1B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4DACE;AAQ5B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;wDACF;AAQxB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;2DACC;AAGtB;IADN,IAAI,CAAC,yBAAyB,CAAC;2CACF;AA9R1B,iBAAiB;IAnJtB,aAAa,CAAC;QACb,GAAG,EAAE,qBAAqB;QAC1B,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,gBAAgB;QACxB,QAAQ,EAAE,qBAAqB;QAC/B,YAAY,EAAE;YACZ,sBAAsB;YACtB,iBAAiB;YACjB,gBAAgB;YAChB,gBAAgB;YAChB,OAAO;SACR;KACF,CAAC;IAEF;;;;;OAKG;;IACF,KAAK,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE7C;;;;;OAKG;;IACF,KAAK,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE9C;;;;;;;;;OASG;;IACF,KAAK,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEzC;;;;;;;;OAQG;;IACF,KAAK,CAAC,oBAAoB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE/C;;;;;OAKG;;IACF,KAAK,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE1C;;;;;OAKG;;IACF,KAAK,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE1C;;;;;;;;OAQG;;IACF,KAAK,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEvC;;;;;;;;OAQG;;IACF,KAAK,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE1C;;;;;;;;OAQG;;IACF,KAAK,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE1C;;;;;;;;OAQG;;IACF,KAAK,CAAC,wBAAwB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEnD;;;;;;;;OAQG;;IACF,KAAK,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEvC;;;;;;;;OAQG;;IACF,KAAK,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE7C;;;;;;;;OAQG;;IACF,KAAK,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;GAErC,iBAAiB,CA04BtB;AAED,iBAAiB,CAAC,MAAM,EAAE,CAAC;AAE3B,eAAe,iBAAiB,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport type { ChangeInfo } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport {\n isLeft, isRight, isSpace, isEnter, isEscape,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/menu2.js\";\nimport \"@ui5/webcomponents-icons/dist/search.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { MAIN_LINKS } from \"./generated/i18n/i18n-defaults.js\";\nimport UDExMastheadItem, { UDExMastheadDropdownItemAction } from \"./MastheadItem.js\";\nimport UDExMastheadMenu from \"./MastheadMenu.js\";\nimport UDExControlButton from \"./ControlButton.js\";\nimport type UDExSearch from \"./Search.js\";\nimport UDExMastheadMobileMenu from \"./MastheadMobileMenu.js\";\nimport type UDExMastheadProfileMenu from \"./MastheadProfileMenu.js\";\nimport type UDExMastheadCountrySelector from \"./MastheadCountrySelector.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\nimport AnalyticsName from \"./types/AnalyticsName.js\";\nimport MastheadShellTemplate from \"./generated/templates/MastheadShellTemplate.lit.js\";\n\n// Styles\nimport MastheadShellCss from \"./generated/themes/MastheadShell.css.js\";\n\nconst canvasContentFont = \"14px '72 Brand Variable'\";\n\nexport type MastheadSlottedItem = UDExMastheadItem | UDExMastheadProfileMenu | UDExMastheadMenu | UDExMastheadCountrySelector | undefined | null;\nexport type MastheadItemType = UDExMastheadItem | null | undefined;\n\nexport enum UDExMastheadVariable {\n itemArrowIconMarginInlineStart = \"--udex-masthead-item-arrow-margin-inline-start\",\n mobileMenuHeight = \"--udex-masthead-shell-mobile-menu-height\",\n itemButtonIconSize = \"--udex-masthead-item-button-icon-size\",\n itemArrowIconSize = \"--udex-masthead-item-arrow-icon-size\",\n rightMenuPadding = \"--udex-masthead-right-menu-padding\",\n exploreMargin = \"--udex-masthead-shell-explore-margin\",\n itemIconGap = \"--udex-masthead-shell-item-icon-gap\",\n mastheadHeight = \"--udex-masthead-shell-height\",\n itemGap = \"--udex-masthead-shell-item-gap\",\n}\n\ntype UDExMastheadShellBaseEventDetail = {\n originalEvent: PointerEvent,\n analyticsName: AnalyticsName,\n sourceNode: HTMLElement,\n item?: UDExMastheadItem,\n}\n\ntype UDExMastheadShellAnalyticsNameEventDetail = {\n analyticsName: AnalyticsName,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-masthead-shell</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/MastheadShell.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-masthead-shell\",\n languageAware: true,\n renderer: litRender,\n styles: MastheadShellCss,\n template: MastheadShellTemplate,\n dependencies: [\n UDExMastheadMobileMenu,\n UDExControlButton,\n UDExMastheadItem,\n UDExMastheadMenu,\n UI5Icon,\n ],\n})\n\n/**\n * Fired event when the user clicks the mobile menu button opener.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the mobile menu open event\n */\n@event(\"mobile-menu-open\", { bubbles: true })\n\n/**\n * Fired event when the user clicks the mobile menu button closer.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the mobile menu open event\n */\n@event(\"mobile-menu-close\", { bubbles: true })\n\n/**\n * Fired event when the user clicks the search button trigger.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the search click event\n * @param {PointerEvent} originalEvent The original pointer event\n * @param {HTMLElement} sourceNode The source element that fired the event\n * @param {UDExMastheadItem} [item] The masthead item that was clicked\n *\n */\n@event(\"search-click\", { bubbles: true })\n\n/**\n * Fired event when the user clicks the search close button.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the search click event\n * @param {PointerEvent} originalEvent The original pointer event\n * @param {HTMLElement} sourceNode The source element that fired the event\n * @param {UDExMastheadItem} [item] The masthead item that was clicked\n */\n@event(\"search-close-click\", { bubbles: true })\n\n/**\n * Fired event when the search panel is opened.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the mobile menu open event\n */\n@event(\"search-opened\", { bubbles: true })\n\n/**\n * Fired event when the search panel is closed.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the mobile menu open event\n */\n@event(\"search-closed\", { bubbles: true })\n\n/**\n * Fired event when the user clicks the cart button trigger.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the search click event\n * @param {PointerEvent} originalEvent The original pointer event\n * @param {HTMLElement} sourceNode The source element that fired the event\n * @param {UDExMastheadItem} [item] The masthead item that was clicked\n */\n@event(\"cart-click\", { bubbles: true })\n\n/**\n * Fired event when the user clicks the support button trigger.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the search click event\n * @param {PointerEvent} originalEvent The original pointer event\n * @param {HTMLElement} sourceNode The source element that fired the event\n * @param {UDExMastheadItem} [item] The masthead item that was clicked\n */\n@event(\"support-click\", { bubbles: true })\n\n/**\n * Fired event when the user clicks the profile button trigger.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the search click event\n * @param {PointerEvent} originalEvent The original pointer event\n * @param {HTMLElement} sourceNode The source element that fired the event\n * @param {UDExMastheadItem} [item] The masthead item that was clicked\n */\n@event(\"profile-click\", { bubbles: true })\n\n/**\n * Fired event when the user clicks the country selector button trigger.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the search click event\n * @param {PointerEvent} originalEvent The original pointer event\n * @param {HTMLElement} sourceNode The source element that fired the event\n * @param {UDExMastheadItem} [item] The masthead item that was clicked\n */\n@event(\"country-selector-click\", { bubbles: true })\n\n/**\n * Fired event when the user clicks the logo.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the search click event\n * @param {PointerEvent} originalEvent The original pointer event\n * @param {HTMLElement} sourceNode The source element that fired the event\n * @param {UDExMastheadItem} [item] The masthead item that was clicked\n */\n@event(\"logo-click\", { bubbles: true })\n\n/**\n * Fired event when the user clicks the site label.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the search click event\n * @param {PointerEvent} originalEvent The original pointer event\n * @param {HTMLElement} sourceNode The source element that fired the event\n * @param {UDExMastheadItem} [item] The masthead item that was clicked\n */\n@event(\"site-label-click\", { bubbles: true })\n\n/**\n * Fired event when the user clicks the co-brand.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the search click event\n * @param {PointerEvent} originalEvent The original pointer event\n * @param {HTMLElement} sourceNode The source element that fired the event\n * @param {UDExMastheadItem} [item] The masthead item that was clicked\n */\n@event(\"co-brand-click\", { bubbles: true })\n\nclass UDExMastheadShell extends UI5Element {\n eventDetails!: {\n \"mobile-menu-open\": UDExMastheadShellAnalyticsNameEventDetail,\n \"mobile-menu-close\": UDExMastheadShellAnalyticsNameEventDetail,\n \"search-opened\": UDExMastheadShellAnalyticsNameEventDetail,\n \"search-closed\": UDExMastheadShellAnalyticsNameEventDetail,\n \"cart-click\": UDExMastheadShellBaseEventDetail,\n \"support-click\": UDExMastheadShellBaseEventDetail,\n \"profile-click\": UDExMastheadShellBaseEventDetail,\n \"country-selector-click\": UDExMastheadShellBaseEventDetail,\n \"search-click\": UDExMastheadShellBaseEventDetail,\n \"search-close-click\": UDExMastheadShellBaseEventDetail,\n \"logo-click\": UDExMastheadShellBaseEventDetail,\n \"site-label-click\": UDExMastheadShellBaseEventDetail,\n \"co-brand-click\": UDExMastheadShellBaseEventDetail,\n };\n /**\n * Slot for country selector item.\n *\n * @public\n */\n @slot({ type: Node })\n countrySelector!: Array<UDExMastheadItem>;\n\n /**\n * Slot for mobile menu\n *\n * @public\n */\n @slot({ type: HTMLElement })\n mobileMenu!: Array<Node>;\n\n /**\n * Slot for main menu items.\n *\n * @public\n */\n @slot({ type: HTMLElement, individualSlots: true, \"default\": true })\n menuItems!: Array<UDExMastheadItem>;\n\n /**\n * Slot for search component - will be visible on search icon click.\n * Note: search component should be hidden by default.\n * Note: search icon won't be visible if this slot would be empty\n *\n * @public\n */\n @slot({ type: Node })\n search!: Array<Node>;\n\n /**\n * Slot for 'Explore SAP' menu\n *\n * @public\n */\n @slot({ type: HTMLElement })\n exploreSAP!: Array<UDExMastheadItem>;\n\n /**\n * Slot for cart menu\n *\n * @public\n */\n @slot({ type: HTMLElement })\n cart!: Array<UDExMastheadItem>;\n\n /**\n * Slot for avatar\n *\n * @public\n */\n @slot({ type: HTMLElement })\n profile!: Array<UDExMastheadItem>;\n\n /**\n * Slot for support\n *\n * @public\n */\n @slot({ type: HTMLElement })\n support!: Array<UDExMastheadItem>;\n\n /**\n * Defines URL to homepage. It will be used as a link on a logo and a site label\n *\n * @default undefined\n * @public\n */\n @property()\n homeUrl?: string;\n\n /**\n * Defines URL for site label. It will be used as a link on a logo and a site label\n *\n * @default undefined\n * @public\n */\n @property()\n siteLabelUrl?: string;\n\n /**\n * Defines overflow style for the body after clicking mobile menu opener button\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n bodyOverflow!: boolean;\n\n /**\n * Defines the visibility of the Search by default.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n showSearchByDefault!: boolean;\n\n /**\n * Defines sticky position for component\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n stickyPosition!: boolean;\n\n /**\n * Defines the co-brand image\n *\n * @default undefined\n * @public\n */\n @property()\n coBrandImage?: string;\n\n /**\n * Defines an alt text for the co-brand image\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n coBrandAlt?: string;\n\n /**\n * Defines the co-brand URL\n *\n * @default undefined\n * @public\n */\n @property()\n coBrandUrl?: string;\n\n /**\n * Defines the default tooltip title for co-brand\n *\n * @default undefined\n * @public\n */\n @property()\n coBrandTitle?: string;\n\n /**\n * Defines an aria label for the co-brand link\n *\n * @default undefined\n * @public\n */\n @property()\n coBrandAriaLabel?: string;\n\n /**\n * Defines the Logo image URL\n *\n * @default undefined\n * @public\n */\n @property()\n logoUrl?: string;\n\n /**\n * Defines the Logo default title\n *\n * @default undefined\n * @public\n */\n @property()\n logoTitle?: string;\n\n /**\n * Defines the default tooltip title for site label\n *\n * @default undefined\n * @public\n */\n @property()\n siteLabelTitle?: string;\n\n /**\n * Defines a site label. It will be displayed next to a logo.\n *\n * @default undefined\n * @public\n */\n @property()\n siteLabel?: string;\n\n /**\n * Defines an alt text for logo\n *\n * @default undefined\n * @public\n */\n @property()\n logoAlt?: string;\n\n /**\n * Defines an accessible name for close icon for the search bar\n *\n * @default undefined\n * @public\n */\n @property()\n closeButtonAccessibleName?: string;\n\n /**\n * Defines an accessible name for the close mobile menu button\n *\n * @default undefined\n * @public\n */\n @property()\n mobileCloseButtonAccessibleName?: string;\n\n /**\n * Defines an aria label for the homepage link\n *\n * @default undefined\n * @public\n */\n @property()\n homepageAriaLabel?: string;\n\n /**\n * Defines an aria label for the site label\n *\n * @default undefined\n * @public\n */\n @property()\n siteLabelAriaLabel?: string;\n\n /**\n * Defines if the search container is opened\n *\n * @private\n */\n @property({ type: Boolean })\n _isSearchOpened!: boolean;\n\n /**\n * Defines if the mobile menu is open\n *\n * @private\n */\n @property({ type: Boolean })\n _isMobileMenuOpen!: boolean;\n\n /**\n * Defines the mobile mode for component\n *\n * @private\n */\n @property({ type: Boolean })\n _isMobileMode!: boolean;\n\n /**\n * Defines if the close button was clicked\n *\n * @private\n */\n @property({ type: Boolean })\n _closeBtnClicked!: boolean;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _searchOpener!: UDExMastheadItem | null | undefined;\n _mobileMenu!: UDExMastheadMobileMenu | null | undefined;\n _handleResizeBound: ResizeObserverCallback;\n _rootHolder!: HTMLElement | null | undefined;\n _shouldHandleResize!: boolean;\n _isVisible!: boolean;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onBeforeRendering() {\n if (this.isMobileMenuMode) {\n this.setMobileMenuHeight();\n }\n }\n\n onAfterRendering() {\n this._rootHolder = this.mastheadHolder;\n this._searchOpener = this.searchOpener;\n this._mobileMenu = this.mastheadMobileMenu;\n\n if (this._isSearchOpened) {\n this.focusSearchInput();\n }\n\n if (this._closeBtnClicked) {\n this.focusSearchBtn();\n }\n\n if (this.shouldHandleMobileView) {\n this.updateVisibility();\n }\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._handleResizeBound);\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n onInvalidation({ name }: ChangeInfo): void {\n if (name === \"default\" && this.shouldHandleMobileView) {\n this.handleMobileMode();\n }\n }\n\n _handleResize(): void {\n if (this.shouldHandleMobileView) {\n this.handleMobileMode();\n }\n\n if (this.isAtMostBreakpointSizeM) {\n this._isSearchOpened = false;\n }\n\n if (this._shouldHandleResize && this._isMobileMenuOpen) {\n this.closeMobileMenu();\n this.resetSelectedItems();\n return;\n }\n\n if (this.isMobileMenuMode) {\n this.setMobileMenuHeight();\n this.setProfileMobileMode();\n }\n\n this._shouldHandleResize = true;\n }\n\n handleMobileMode(): void {\n const rootHolder = this.getDomRef();\n if (rootHolder) {\n const rootHolderWidth = this.getRootHolderWidth(rootHolder);\n const landingHolderWidth = this.getLandingHolderWidth();\n const rightMenuWidth = this.getRightMenuWidth();\n const mainMenuWidth = this.getMainMenuWidth();\n const availableWidth = rootHolderWidth - rightMenuWidth - landingHolderWidth;\n\n if (mainMenuWidth >= availableWidth) {\n this.setMobileMode();\n } else {\n this.removeMobileMode();\n }\n\n this._isVisible = true;\n }\n }\n\n handleKeyDown(e: KeyboardEvent): void {\n e.stopPropagation();\n this.handleLeftArrow(e);\n this.handleRightArrow(e);\n }\n\n handleSearchKeyDown(e: CustomEvent): void {\n e.stopPropagation();\n const keyEvent = e.detail.e as KeyboardEvent;\n\n if (isEscape(keyEvent)) {\n if (this.showSearchByDefault && this.isAtLeastBreakpointSizeM) {\n return;\n }\n this.closeSearch();\n this.focusSearchBtn();\n }\n }\n\n handleLeftArrow(e: KeyboardEvent): void {\n if (isLeft(e)) {\n const currentItem = e.target as UDExMastheadItem;\n if (this.isNavigationItem(currentItem)) {\n if (currentItem.selected) {\n currentItem.closeDropdown();\n }\n this.focusPreviousMenuItem(currentItem);\n }\n }\n }\n\n handleRightArrow(e: KeyboardEvent): void {\n if (isRight(e)) {\n const currentItem = e.target as UDExMastheadItem;\n if (this.isNavigationItem(currentItem)) {\n if (currentItem.selected) {\n currentItem.closeDropdown();\n }\n this.focusNextMenuItem(currentItem);\n }\n }\n }\n\n handleLogoClick(e: PointerEvent): void {\n this.fireMastheadEvent(\"logo-click\", e);\n }\n\n handleSiteLabelClick(e: PointerEvent): void {\n this.fireMastheadEvent(\"site-label-click\", e);\n }\n\n handleCoBrandClick(e: PointerEvent): void {\n this.fireMastheadEvent(\"co-brand-click\", e);\n }\n\n handleSearchClick(e: PointerEvent): void {\n e.stopPropagation();\n this.fireMastheadEvent(\"search-click\", e);\n this.openSearch();\n }\n\n handleCartClick(e: PointerEvent): void {\n e.stopPropagation();\n this.fireMastheadEvent(\"cart-click\", e);\n }\n\n handleProfileClick(e: PointerEvent): void {\n e.stopPropagation();\n this.fireMastheadEvent(\"profile-click\", e);\n }\n\n handleSupportClick(e: PointerEvent): void {\n e.stopPropagation();\n this.fireMastheadEvent(\"support-click\", e);\n }\n\n handleCountrySelectorClick(e: PointerEvent): void {\n e.stopPropagation();\n this.fireMastheadEvent(\"country-selector-click\", e);\n }\n\n handleOpenMobileMenu(): void {\n const clickedItem = this.mobileBtn as UDExMastheadItem;\n if (!clickedItem) {\n return;\n }\n\n this.resetSelectedItems(clickedItem._id);\n this._isMobileMenuOpen = true;\n\n if (this.bodyOverflow) {\n this.setOverflowBody();\n }\n\n this.fireMastheadEvent(\"mobile-menu-open\");\n }\n\n handleCloseSearch(e: PointerEvent): void {\n this._closeBtnClicked = true;\n this.fireMastheadEvent(\"search-close-click\", e);\n this.closeSearch();\n }\n\n handleEnterAndSpaceOnCloseBtn(e: KeyboardEvent): void {\n if (isSpace(e) || isEnter(e)) {\n e.preventDefault();\n this.closeMobileMenu();\n this.mobileBtn?.focus();\n }\n }\n\n focusSearchInput(): void {\n const searchSlot = this.querySelector<UDExSearch>(\"[udex-search]\");\n if (searchSlot) {\n const input = searchSlot.shadowRoot!.querySelector<HTMLElement>(\"input\");\n input?.focus();\n }\n }\n\n focusPreviousMenuItem(item: UDExMastheadItem): void {\n const menuItems = this.menuItems;\n const lastItemIndex = menuItems.length - 1;\n const currentSelectedIndex = this.getCurrentIndex(item);\n const previousSelectIndex = currentSelectedIndex - 1 < 0 ? lastItemIndex : currentSelectedIndex - 1;\n menuItems[previousSelectIndex].focus();\n }\n\n focusNextMenuItem(item: UDExMastheadItem): void {\n const menuItems = this.menuItems;\n const currentSelectedIndex = this.getCurrentIndex(item);\n const nextSelectIndex = currentSelectedIndex + 1 > menuItems.length - 1 ? 0 : currentSelectedIndex + 1;\n menuItems[nextSelectIndex].focus();\n }\n\n resetSelectedItems(clickedId?: string): void {\n this.getSelectedItems().forEach(item => {\n if (item._id !== clickedId && item.selected) {\n if (item.hasDropdownSlot) {\n item.fireDropdownCloseEvent(item.eventItemTitle, UDExMastheadDropdownItemAction.ClickOutside);\n }\n item.selected = false;\n }\n });\n }\n\n setSelectedItem(e: CustomEvent): void {\n const clickedItem: UDExMastheadItem = e.detail.item;\n if (clickedItem) {\n this.resetSelectedItems(clickedItem._id);\n }\n }\n\n focusSearchBtn(): void {\n if (this._searchOpener) {\n this._searchOpener.focus();\n this._closeBtnClicked = false;\n }\n }\n\n getCurrentIndex(item: UDExMastheadItem): number {\n return this.menuItems.indexOf(item);\n }\n\n getSelectedItems(): Array<UDExMastheadItem> {\n const buttonsArray: Array<UDExMastheadItem> = [\n ...this.menuItems,\n ...this.exploreSAP,\n ...this.cart,\n ...this.support,\n ...this.profile,\n ...this.countrySelector,\n ...(this.mobileBtn && this.closeBtn ? [this.mobileBtn, this.closeBtn] : []),\n ];\n\n return buttonsArray.filter(({ selected }) => selected);\n }\n\n getRootHolderWidth(root: HTMLElement): number {\n const rootPadding = parseInt(window.getComputedStyle(root).getPropertyValue(\"padding-left\")) * 2;\n const scrollWidth = window.innerWidth - document.documentElement.clientWidth;\n return this.getDomRef()!.clientWidth + scrollWidth - rootPadding;\n }\n\n getLandingHolderWidth(): number {\n const landingHolder = this.getDomElement(\".udex-masthead-shell__landing-wrap\");\n return landingHolder?.offsetWidth || 0;\n }\n\n getRightMenuWidth(): number {\n const itemsIcon = [...this.shadowRoot!.querySelectorAll<HTMLDivElement>(\".udex-masthead-shell__item_icon\")];\n const itemIconWidths = itemsIcon.length * this.getItemIconWidth();\n const itemIconGaps = itemsIcon.length * this.getItemIconGap();\n const exploreItem = this.exploreSAP[0];\n const hasArrowIcon = exploreItem?.hasArrowDown && !exploreItem?.hideArrowIcon;\n const exploreItemIconWidth = hasArrowIcon ? this.getItemArrowIconWidth() : 0;\n const exploreSAPWidth = this.hasExploreSAP ? this.getItemWidth(exploreItem) : 0;\n const rightMenuGaps = this.getRightMenuGap() + this.getExploreSapBtnGap() + itemIconGaps;\n return exploreSAPWidth + exploreItemIconWidth + itemIconWidths + rightMenuGaps;\n }\n\n getItemIconSize(cssVariableName: string): number {\n const item = this.querySelector(\"[udex-masthead-item]\");\n\n if (!item) {\n return 0;\n }\n\n const style = window.getComputedStyle(item);\n const iconSizeVar = style.getPropertyValue(cssVariableName);\n return parseInt(iconSizeVar);\n }\n\n getItemIconWidth(): number {\n return this.getItemIconSize(UDExMastheadVariable.itemButtonIconSize);\n }\n\n getItemArrowIconWidth(): number {\n const arrowIconSize = this.getItemIconSize(UDExMastheadVariable.itemArrowIconSize);\n const marginInlineStart = this.getItemIconSize(UDExMastheadVariable.itemArrowIconMarginInlineStart);\n return arrowIconSize + marginInlineStart;\n }\n\n getMainMenuWidth(): number {\n const mainItems = this.getSlottedNodes(\"menuItems\");\n const gapItemVar = this.getRootVar(UDExMastheadVariable.itemGap);\n return mainItems.reduce((accumulatedWidth, item, index) => {\n const mainItem = item as UDExMastheadItem;\n const hasArrowIcon = mainItem.hasArrowDown && !mainItem.hideArrowIcon;\n const arrowIconWidth = hasArrowIcon ? this.getItemArrowIconWidth() : 0;\n return accumulatedWidth + this.getItemWidth(mainItem) + (index && parseInt(gapItemVar)) + arrowIconWidth;\n }, 0);\n }\n\n getDomElement(selector: string): HTMLElement | undefined | null {\n return this.shadowRoot?.querySelector(`${selector}`);\n }\n\n getItemWidth(item: UDExMastheadItem): number {\n const context = this.getCanvasContext();\n context.font = canvasContentFont;\n return Math.ceil(context.measureText(item.innerText.trim()).width);\n }\n\n getCanvasContext(): CanvasRenderingContext2D {\n const canvas = document.createElement(\"canvas\");\n return canvas.getContext(\"2d\")!;\n }\n\n getItemIconGap(): number {\n const gapIconItemVar = this.getRootVar(UDExMastheadVariable.itemIconGap);\n return parseInt(gapIconItemVar);\n }\n\n getExploreSapBtnGap(): number {\n const exploreSapBtnGapVar = this.getRootVar(UDExMastheadVariable.exploreMargin);\n return this.hasExploreSAP ? parseInt(exploreSapBtnGapVar) : 0;\n }\n\n getRightMenuGap(): number {\n const rightMenuGapVar = this.getRootVar(UDExMastheadVariable.rightMenuPadding);\n return parseInt(rightMenuGapVar);\n }\n\n getRootVar(variableName: string): string {\n return window.getComputedStyle(this.getDomRef()!).getPropertyValue(`${variableName}`);\n }\n\n isNavigationItem(item: UDExMastheadItem): boolean {\n return this.menuItems.some(menuItem => menuItem === item);\n }\n\n setOverflowBody() {\n const { body: { style } } = document;\n this._shouldHandleResize = false;\n style.overflow = \"hidden\";\n }\n\n removeOverflowBody() {\n const { body: { style } } = document;\n style.removeProperty(\"overflow\");\n }\n\n setMobileMode(): void {\n this._isMobileMode = true;\n this.slottedItems.forEach((item: MastheadSlottedItem) => {\n if (item) {\n item._isMobileMode = true;\n }\n });\n }\n\n setMobileMenuHeight(): void {\n const mastheadHeight = parseInt(window.getComputedStyle(this).getPropertyValue(UDExMastheadVariable.mastheadHeight));\n const rectTop = this.getBoundingClientRect().top;\n const mobileMenuHeight = `${window.innerHeight - mastheadHeight - rectTop}px`;\n this.style.setProperty(UDExMastheadVariable.mobileMenuHeight, mobileMenuHeight);\n }\n\n setProfileMobileMode(): void {\n if (this.profileMenu) {\n this.profileMenu._isMobileMode = this.isMobileMenuMode;\n }\n }\n\n removeMobileMode(): void {\n this._isMobileMode = false;\n this.slottedItems.forEach((item: MastheadSlottedItem) => {\n item?.removeAttribute(\"_is-mobile-mode\");\n });\n }\n\n updateVisibility(): void {\n this.style.opacity = this.isVisible ? \"1\" : \"0\";\n }\n\n fireMastheadEvent(eventName: keyof this[\"eventDetails\"], e?: PointerEvent): void {\n const eventDetails = {\n analyticsName: AnalyticsName.Header,\n ...(e && { originalEvent: e }),\n ...(e && { sourceNode: e.currentTarget as HTMLElement }),\n } as this[\"eventDetails\"][typeof eventName];\n this.fireDecoratorEvent(eventName, eventDetails);\n }\n\n /**\n * Close the search panel.\n * @public\n */\n closeSearch(): void {\n this._isSearchOpened = false;\n this.fireMastheadEvent(\"search-closed\");\n }\n\n /**\n * Open the search panel.\n * @public\n */\n openSearch(): void {\n const shouldPreventOpeningSearch = this._isSearchOpened\n || (this.isAtMostBreakpointSizeM && !this.showSearchByDefault)\n || this._isMobileMode\n || (this.isAtLeastBreakpointSizeM && this.showSearchByDefault);\n\n if (shouldPreventOpeningSearch) {\n return;\n }\n\n this._isSearchOpened = true;\n this.resetSelectedItems();\n\n if (this._searchOpener) {\n this._searchOpener.selected = false;\n }\n\n this.fireMastheadEvent(\"search-opened\");\n }\n\n /**\n * Open the mobile menu panel.\n * @public\n */\n openMobileMenu(): void {\n if (!this._isMobileMenuOpen && this.isMobileMenuMode) {\n this.mobileBtn?.handleSelectedChange();\n this.handleOpenMobileMenu();\n }\n }\n\n /**\n * Close the mobile menu panel.\n * @public\n */\n closeMobileMenu(): void {\n if (!this._isMobileMenuOpen) {\n return;\n }\n\n (this.mobileBtn as UDExMastheadItem).selected = false;\n this._isMobileMenuOpen = false;\n this._mobileMenu?.showFirstLevelMenu();\n\n if (this.bodyOverflow) {\n this.removeOverflowBody();\n }\n\n this.fireMastheadEvent(\"mobile-menu-close\");\n }\n\n get slottedItems(): (MastheadSlottedItem)[] {\n return [\n this.profileItem,\n this.profileMenu,\n this.cartItem,\n this.supportItem,\n this.profileMenuLinks,\n this.countrySelectorItem,\n this.countrySelectorMenu,\n ];\n }\n\n get searchOpener(): MastheadItemType {\n return this.shadowRoot?.querySelector(\".udex-masthead-shell__search-btn\");\n }\n\n get mastheadHolder(): HTMLElement | null | undefined {\n return this.shadowRoot?.querySelector(\".udex-masthead-shell\");\n }\n\n get mastheadMobileMenu(): UDExMastheadMobileMenu | null {\n return this.querySelector(\"[udex-masthead-mobile-menu]\");\n }\n\n get mobileBtn(): MastheadItemType {\n return this.shadowRoot?.querySelector(\".udex-masthead-shell__menu-btn\");\n }\n\n get closeBtn(): MastheadItemType {\n return this.shadowRoot?.querySelector(\".udex-masthead-shell__close-btn\");\n }\n\n get profileItem(): UDExMastheadItem {\n return this.getSlottedNodes<UDExMastheadItem>(\"profile\")[0];\n }\n\n get countrySelectorItem(): UDExMastheadItem {\n return this.getSlottedNodes<UDExMastheadItem>(\"countrySelector\")[0];\n }\n\n get cartItem(): MastheadItemType {\n return this.getSlottedNodes<UDExMastheadItem>(\"cart\")[0];\n }\n\n get supportItem(): MastheadItemType {\n return this.getSlottedNodes<UDExMastheadItem>(\"support\")[0];\n }\n\n get profileMenu(): UDExMastheadProfileMenu {\n return this.querySelector(\"[udex-masthead-profile-menu]\")!;\n }\n\n get countrySelectorMenu(): UDExMastheadCountrySelector {\n return this.querySelector(\"[udex-masthead-country-selector]\")!;\n }\n\n get profileMenuLinks(): UDExMastheadMenu | undefined | null {\n return this.profileMenu?.shadowRoot?.querySelector(\"[udex-masthead-menu]\");\n }\n\n get hasProfile(): boolean {\n return !!this.profile.length;\n }\n\n get hasCart(): boolean {\n return !!this.cart.length;\n }\n\n get hasSearch(): boolean {\n return !!this.search.length;\n }\n\n get hasExploreSAP(): boolean {\n return !!this.exploreSAP.length;\n }\n\n get hasCountrySelector(): boolean {\n return !!this.countrySelector.length;\n }\n\n get hasSupport(): boolean {\n return !!this.support.length;\n }\n\n get hasMobileMenuButtons(): boolean {\n return !!this.mobileMenu.length;\n }\n\n get isAtMostBreakpointSizeM(): boolean {\n return BreakpointUtils.isAtMost(\"M\");\n }\n\n get isAtLeastBreakpointSizeM(): boolean {\n return BreakpointUtils.isAtLeast(\"M\");\n }\n\n get isMobileMenuMode(): boolean {\n return this._isMobileMode || this.isAtMostBreakpointSizeM;\n }\n\n get isMainMenuVisible(): boolean {\n return !this.showSearchByDefault && !this._isSearchOpened && !!this.menuItems.length;\n }\n\n get isSearchVisible(): boolean {\n return this.showSearchByDefault || this._isSearchOpened;\n }\n\n get isVisible(): boolean {\n return this.isMobileMenuMode || !this.menuItems.length || this._isVisible;\n }\n\n get shouldHandleMobileView(): boolean {\n return !this.isAtMostBreakpointSizeM && this.isMainMenuVisible;\n }\n\n get mainNavigationAriaLabel(): string {\n return UDExMastheadShell.i18nBundle.getText(MAIN_LINKS);\n }\n\n get isSimpleExploreMode(): boolean {\n return !this.hasSearch && !this.hasProfile && !this.hasCart && !this.hasSupport && !this.hasCountrySelector;\n }\n\n get rightMenuClass(): string {\n const root = \"udex-masthead-shell__right-menu\";\n const simpleExploreClass = this.isSimpleExploreMode ? `${root}_simple-explore` : \"\";\n return `${root} ${simpleExploreClass}`.trim();\n }\n\n get mainClass(): string {\n const root = \"udex-masthead-shell\";\n const coBrandWithoutNavClass = (!!this.coBrandImage && !this.menuItems.length) ? `${root}_co-brand-without-nav` : \"\";\n return `${root} ${coBrandWithoutNavClass}`.trim();\n }\n}\n\nUDExMastheadShell.define();\n\nexport default UDExMastheadShell;\nexport type { UDExMastheadShellBaseEventDetail, UDExMastheadShellAnalyticsNameEventDetail };\n"]}
1
+ {"version":3,"file":"MastheadShell.js","sourceRoot":"","sources":["../src/MastheadShell.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAE5E,OAAO,OAAO,MAAM,iCAAiC,CAAC;AACtD,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAE7E,OAAO,aAAa,MAAM,wDAAwD,CAAC;AACnF,OAAO,EACL,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,GAC5C,MAAM,sCAAsC,CAAC;AAC9C,OAAO,0CAA0C,CAAC;AAClD,OAAO,wCAAwC,CAAC;AAChD,OAAO,yCAAyC,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,gBAAgB,EAAE,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,gBAAgB,MAAM,mBAAmB,CAAC;AACjD,OAAO,iBAAiB,MAAM,oBAAoB,CAAC;AAEnD,OAAO,sBAAsB,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,aAAa,MAAM,0BAA0B,CAAC;AACrD,OAAO,qBAAqB,MAAM,oDAAoD,CAAC;AACvF,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C,SAAS;AACT,OAAO,gBAAgB,MAAM,yCAAyC,CAAC;AAEvE,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AAKrD,MAAM,CAAN,IAAY,oBAUX;AAVD,WAAY,oBAAoB;IAC9B,yGAAiF,CAAA;IACjF,qFAA6D,CAAA;IAC7D,oFAA4D,CAAA;IAC5D,kFAA0D,CAAA;IAC1D,+EAAuD,CAAA;IACvD,8EAAsD,CAAA;IACtD,2EAAmD,CAAA;IACnD,uEAA+C,CAAA;IAC/C,kEAA0C,CAAA;AAC5C,CAAC,EAVW,oBAAoB,KAApB,oBAAoB,QAU/B;AAaD;;;;;;;;;;;;;;;;GAgBG;AA+JH,IAAM,iBAAiB,yBAAvB,MAAM,iBAAkB,SAAQ,UAAU;IA0TxC;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,iBAAiB;QACf,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAE3C,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAChD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;QAED,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,UAAU;QACR,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACtD,IAAI,SAAS,EAAE,EAAE,CAAC;YAChB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,SAAS;QACP,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC1D,CAAC;IAED,cAAc,CAAC,EAAE,IAAI,EAAc;QACjC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACtD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,aAAa;QACX,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC;QAED,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvD,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAClC,CAAC;IAED,gBAAgB;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACpC,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;YAC5D,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACxD,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAChD,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC9C,MAAM,cAAc,GAAG,eAAe,GAAG,cAAc,GAAG,kBAAkB,CAAC;YAE7E,IAAI,aAAa,IAAI,cAAc,EAAE,CAAC;gBACpC,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,CAAC;YAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAED,aAAa,CAAC,CAAgB;QAC5B,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,mBAAmB,CAAC,CAAc;QAChC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,CAAkB,CAAC;QAE7C,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAC9D,OAAO;YACT,CAAC;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED,eAAe,CAAC,CAAgB;QAC9B,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACd,MAAM,WAAW,GAAG,CAAC,CAAC,MAA0B,CAAC;YACjD,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;gBACvC,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;oBACzB,WAAW,CAAC,aAAa,EAAE,CAAC;gBAC9B,CAAC;gBACD,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,CAAgB;QAC/B,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,CAAC,CAAC,MAA0B,CAAC;YACjD,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;gBACvC,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;oBACzB,WAAW,CAAC,aAAa,EAAE,CAAC;gBAC9B,CAAC;gBACD,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAED,eAAe,CAAC,CAAe;QAC7B,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,oBAAoB,CAAC,CAAe;QAClC,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,kBAAkB,CAAC,CAAe;QAChC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,iBAAiB,CAAC,CAAe;QAC/B,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,eAAe,CAAC,CAAe;QAC7B,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,gBAAgB,CAAC,CAAe;QAC9B,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,kBAAkB,CAAC,CAAe;QAChC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,kBAAkB,CAAC,CAAe;QAChC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,0BAA0B,CAAC,CAAe;QACxC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,oBAAoB;QAClB,MAAM,WAAW,GAAG,IAAI,CAAC,SAA6B,CAAC;QACvD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAE9B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IAC7C,CAAC;IAED,iBAAiB,CAAC,CAAe;QAC/B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,6BAA6B,CAAC,CAAgB;QAC5C,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,UAAW,CAAC,aAAa,CAAc,OAAO,CAAC,CAAC;QACnF,KAAK,EAAE,KAAK,EAAE,CAAC;IACjB,CAAC;IAED,qBAAqB,CAAC,IAAsB;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3C,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,mBAAmB,GAAG,oBAAoB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAoB,GAAG,CAAC,CAAC;QACpG,SAAS,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;IACzC,CAAC;IAED,iBAAiB,CAAC,IAAsB;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,eAAe,GAAG,oBAAoB,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,GAAG,CAAC,CAAC;QACvG,SAAS,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;IACrC,CAAC;IAED,kBAAkB,CAAC,SAAkB;QACnC,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACrC,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC5C,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;oBACzB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,EAAE,8BAA8B,CAAC,YAAY,CAAC,CAAC;gBAChG,CAAC;gBACD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACxB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;IAED,eAAe,CAAC,CAAc;QAC5B,MAAM,WAAW,GAAqB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QACpD,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,cAAc;QACZ,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAChC,CAAC;IACH,CAAC;IAED,eAAe,CAAC,IAAsB;QACpC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,gBAAgB;QACd,MAAM,YAAY,GAA4B;YAC5C,GAAG,IAAI,CAAC,SAAS;YACjB,GAAG,IAAI,CAAC,UAAU;YAClB,GAAG,IAAI,CAAC,KAAK;YACb,GAAG,IAAI,CAAC,IAAI;YACZ,GAAG,IAAI,CAAC,OAAO;YACf,GAAG,IAAI,CAAC,OAAO;YACf,GAAG,IAAI,CAAC,eAAe;YACvB,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E,CAAC;QAEF,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED,kBAAkB,CAAC,IAAiB;QAClC,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC;QACjG,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC;QAC7E,OAAO,IAAI,CAAC,SAAS,EAAG,CAAC,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;IACnE,CAAC;IAED,qBAAqB;QACnB,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,oCAAoC,CAAC,CAAC;QAC/E,OAAO,aAAa,EAAE,WAAW,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,iBAAiB;QACf,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,UAAW,CAAC,gBAAgB,CAAiB,iCAAiC,CAAC,CAAC,CAAC;QAC5G,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAClE,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,YAAY,GAAG,WAAW,EAAE,YAAY,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC;QAC9E,MAAM,oBAAoB,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,YAAY,CAAC;QACzF,OAAO,eAAe,GAAG,oBAAoB,GAAG,cAAc,GAAG,aAAa,CAAC;IACjF,CAAC;IAED,eAAe,CAAC,eAAuB;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;QAExD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,KAAK,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;QAC5D,OAAO,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;IACvE,CAAC;IAED,qBAAqB;QACnB,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;QACnF,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,8BAA8B,CAAC,CAAC;QACpG,OAAO,aAAa,GAAG,iBAAiB,CAAC;IAC3C,CAAC;IAED,gBAAgB;QACd,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACjE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YACxD,MAAM,QAAQ,GAAG,IAAwB,CAAC;YAC1C,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YACtE,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,OAAO,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,cAAc,CAAC;QAC3G,CAAC,EAAE,CAAC,CAAC,CAAC;IACR,CAAC;IAED,aAAa,CAAC,QAAgB;QAC5B,OAAO,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,YAAY,CAAC,IAAsB;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxC,OAAO,CAAC,IAAI,GAAG,iBAAiB,CAAC;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC;IAED,gBAAgB;QACd,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAE,CAAC;IAClC,CAAC;IAED,cAAc;QACZ,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAED,mBAAmB;QACjB,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,eAAe;QACb,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;QAC/E,OAAO,QAAQ,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAED,UAAU,CAAC,YAAoB;QAC7B,OAAO,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAG,CAAC,CAAC,gBAAgB,CAAC,GAAG,YAAY,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,gBAAgB,CAAC,IAAsB;QACrC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED,eAAe;QACb,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,QAAQ,CAAC;QACrC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,kBAAkB;QAChB,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,QAAQ,CAAC;QACrC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED,aAAa;QACX,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAyB,EAAE,EAAE;YACtD,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB;QACjB,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,CAAC;QACrH,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC;QACjD,MAAM,gBAAgB,GAAG,GAAG,MAAM,CAAC,WAAW,GAAG,cAAc,GAAG,OAAO,IAAI,CAAC;QAC9E,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IAClF,CAAC;IAED,oBAAoB;QAClB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACzD,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAyB,EAAE,EAAE;YACtD,IAAI,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAClD,CAAC;IAED,iBAAiB,CAAC,SAAqC,EAAE,CAAgB;QACvE,MAAM,YAAY,GAAG;YACnB,aAAa,EAAE,aAAa,CAAC,MAAM;YACnC,GAAG,CAAC,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;YAC9B,GAAG,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,aAA4B,EAAE,CAAC;SACf,CAAC;QAC5C,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACnD,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,IAAI,CAAC,WAAW,EAAE,kBAAkB,EAAE,CAAC;YACvC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,WAAW;QACT,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,MAAM,0BAA0B,GAAG,IAAI,CAAC,eAAe;eAClD,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC;eAC3D,IAAI,CAAC,aAAa;eAClB,CAAC,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAEjE,IAAI,0BAA0B,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACrD,IAAI,CAAC,SAAS,EAAE,oBAAoB,EAAE,CAAC;YACvC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAEA,IAAI,CAAC,SAA8B,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtD,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,WAAW,EAAE,kBAAkB,EAAE,CAAC;QACvC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC;QAEhC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,YAAY;QACd,OAAO;YACL,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,QAAQ;YACb,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,gBAAgB;YACrB,IAAI,CAAC,mBAAmB;YACxB,IAAI,CAAC,mBAAmB;SACzB,CAAC;IACJ,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,aAAa,CAAa,eAAe,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,kCAAkC,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,gCAAgC,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,iCAAiC,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,eAAe,CAAmB,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,eAAe,CAAmB,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,eAAe,CAAmB,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,eAAe,CAAmB,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,8BAA8B,CAAE,CAAC;IAC7D,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,kCAAkC,CAAE,CAAC;IACjE,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,IAAI,aAAa;QACf,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;IAClC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;IACvC,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;IAClC,CAAC;IAED,IAAI,uBAAuB;QACzB,OAAO,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,wBAAwB;QAC1B,OAAO,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,uBAAuB,CAAC;IAC5D,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IACvF,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,eAAe,CAAC;IAC1D,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC;IAC5E,CAAC;IAED,IAAI,sBAAsB;QACxB,OAAO,CAAC,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,iBAAiB,CAAC;IACjE,CAAC;IAED,IAAI,kCAAkC;QACpC,OAAO,IAAI,CAAC,8BAA8B,IAAI,SAAS,CAAC,mBAAiB,EAAE,MAAM,CAAC,CAAC;IACrF,CAAC;IAED,IAAI,uBAAuB;QACzB,OAAO,SAAS,CAAC,mBAAiB,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;IAC9G,CAAC;IAED,IAAI,cAAc;QAChB,MAAM,IAAI,GAAG,iCAAiC,CAAC;QAC/C,MAAM,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,OAAO,GAAG,IAAI,IAAI,kBAAkB,EAAE,CAAC,IAAI,EAAE,CAAC;IAChD,CAAC;IAED,IAAI,SAAS;QACX,MAAM,IAAI,GAAG,qBAAqB,CAAC;QACnC,MAAM,sBAAsB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC;QACrH,OAAO,GAAG,IAAI,IAAI,sBAAsB,EAAE,CAAC,IAAI,EAAE,CAAC;IACpD,CAAC;CACF,CAAA;AAz6BG;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;0DACuB;AAQ1C;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;qDACD;AAQzB;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;oDAC9B;AAUpC;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;iDACE;AAQrB;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;qDACW;AAQrC;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;+CACK;AAQ/B;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;gDACM;AAQhC;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;kDACQ;AAQlC;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;kDACQ;AASlC;IADD,QAAQ,EAAE;kDACQ;AASjB;IADD,QAAQ,EAAE;uDACa;AAStB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;uDACH;AASvB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;8DACI;AAS9B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;yDACD;AASzB;IADD,QAAQ,EAAE;uDACa;AAStB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qDACL;AASpB;IADD,QAAQ,EAAE;qDACW;AASpB;IADD,QAAQ,EAAE;uDACa;AAStB;IADD,QAAQ,EAAE;2DACiB;AAS1B;IADD,QAAQ,EAAE;kDACQ;AASjB;IADD,QAAQ,EAAE;oDACU;AASnB;IADD,QAAQ,EAAE;yDACe;AASxB;IADD,QAAQ,EAAE;oDACU;AASnB;IADD,QAAQ,EAAE;kDACQ;AASjB;IADD,QAAQ,EAAE;oEAC0B;AASnC;IADD,QAAQ,EAAE;yEAC+B;AASxC;IADD,QAAQ,EAAE;0EACgC;AASzC;IADD,QAAQ,EAAE;4DACkB;AAS3B;IADD,QAAQ,EAAE;6DACmB;AAQ5B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0DACA;AAQ1B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4DACE;AAQ5B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;wDACF;AAQxB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;2DACC;AAGtB;IADN,IAAI,CAAC,yBAAyB,CAAC;2CACF;AAhT1B,iBAAiB;IA9JtB,aAAa,CAAC;QACb,GAAG,EAAE,qBAAqB;QAC1B,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,gBAAgB;QACxB,QAAQ,EAAE,qBAAqB;QAC/B,YAAY,EAAE;YACZ,sBAAsB;YACtB,iBAAiB;YACjB,gBAAgB;YAChB,gBAAgB;YAChB,OAAO;SACR;KACF,CAAC;IAEF;;;;;OAKG;;IACF,KAAK,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE7C;;;;;OAKG;;IACF,KAAK,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE9C;;;;;;;;;OASG;;IACF,KAAK,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEzC;;;;;;;;OAQG;;IACF,KAAK,CAAC,oBAAoB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE/C;;;;;OAKG;;IACF,KAAK,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE1C;;;;;OAKG;;IACF,KAAK,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE1C;;;;;;;;OAQG;;IACF,KAAK,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAExC;;;;;;;;OAQG;;IACF,KAAK,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEvC;;;;;;;;OAQG;;IACF,KAAK,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE1C;;;;;;;;OAQG;;IACF,KAAK,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE1C;;;;;;;;OAQG;;IACF,KAAK,CAAC,wBAAwB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEnD;;;;;;;;OAQG;;IACF,KAAK,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEvC;;;;;;;;OAQG;;IACF,KAAK,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE7C;;;;;;;;OAQG;;IACF,KAAK,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;GAErC,iBAAiB,CAg8BtB;AAED,iBAAiB,CAAC,MAAM,EAAE,CAAC;AAE3B,eAAe,iBAAiB,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport type { ChangeInfo } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport {\n isLeft, isRight, isSpace, isEnter, isEscape,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/menu2.js\";\nimport \"@ui5/webcomponents-icons/dist/search.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { MAIN_LINKS, SEARCH } from \"./generated/i18n/i18n-defaults.js\";\nimport UDExMastheadItem, { UDExMastheadDropdownItemAction } from \"./MastheadItem.js\";\nimport UDExMastheadMenu from \"./MastheadMenu.js\";\nimport UDExControlButton from \"./ControlButton.js\";\nimport type UDExSearch from \"./Search.js\";\nimport UDExMastheadMobileMenu from \"./MastheadMobileMenu.js\";\nimport type UDExMastheadProfileMenu from \"./MastheadProfileMenu.js\";\nimport type UDExMastheadCountrySelector from \"./MastheadCountrySelector.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\nimport AnalyticsName from \"./types/AnalyticsName.js\";\nimport MastheadShellTemplate from \"./generated/templates/MastheadShellTemplate.lit.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport MastheadShellCss from \"./generated/themes/MastheadShell.css.js\";\n\nconst canvasContentFont = \"14px '72 Brand Variable'\";\n\nexport type MastheadSlottedItem = UDExMastheadItem | UDExMastheadProfileMenu | UDExMastheadMenu | UDExMastheadCountrySelector | undefined | null;\nexport type MastheadItemType = UDExMastheadItem | null | undefined;\n\nexport enum UDExMastheadVariable {\n itemArrowIconMarginInlineStart = \"--udex-masthead-item-arrow-margin-inline-start\",\n mobileMenuHeight = \"--udex-masthead-shell-mobile-menu-height\",\n itemButtonIconSize = \"--udex-masthead-item-button-icon-size\",\n itemArrowIconSize = \"--udex-masthead-item-arrow-icon-size\",\n rightMenuPadding = \"--udex-masthead-right-menu-padding\",\n exploreMargin = \"--udex-masthead-shell-explore-margin\",\n itemIconGap = \"--udex-masthead-shell-item-icon-gap\",\n mastheadHeight = \"--udex-masthead-shell-height\",\n itemGap = \"--udex-masthead-shell-item-gap\",\n}\n\ntype UDExMastheadShellBaseEventDetail = {\n originalEvent: PointerEvent,\n analyticsName: AnalyticsName,\n sourceNode: HTMLElement,\n item?: UDExMastheadItem,\n}\n\ntype UDExMastheadShellAnalyticsNameEventDetail = {\n analyticsName: AnalyticsName,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-masthead-shell</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/MastheadShell.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-masthead-shell\",\n languageAware: true,\n renderer: litRender,\n styles: MastheadShellCss,\n template: MastheadShellTemplate,\n dependencies: [\n UDExMastheadMobileMenu,\n UDExControlButton,\n UDExMastheadItem,\n UDExMastheadMenu,\n UI5Icon,\n ],\n})\n\n/**\n * Fired event when the user clicks the mobile menu button opener.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the mobile menu open event\n */\n@event(\"mobile-menu-open\", { bubbles: true })\n\n/**\n * Fired event when the user clicks the mobile menu button closer.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the mobile menu close event\n */\n@event(\"mobile-menu-close\", { bubbles: true })\n\n/**\n * Fired event when the user clicks the search button trigger.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the search click event\n * @param {PointerEvent} originalEvent The original pointer event\n * @param {HTMLElement} sourceNode The source element that fired the event\n * @param {UDExMastheadItem} [item] The masthead item that was clicked\n *\n */\n@event(\"search-click\", { bubbles: true })\n\n/**\n * Fired event when the user clicks the search close button.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the search close click event\n * @param {PointerEvent} originalEvent The original pointer event\n * @param {HTMLElement} sourceNode The source element that fired the event\n * @param {UDExMastheadItem} [item] The masthead item that was clicked\n */\n@event(\"search-close-click\", { bubbles: true })\n\n/**\n * Fired event when the search panel is opened.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the search opened event\n */\n@event(\"search-opened\", { bubbles: true })\n\n/**\n * Fired event when the search panel is closed.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the search closed event\n */\n@event(\"search-closed\", { bubbles: true })\n\n/**\n * Fired event when the user clicks the joule button trigger.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the joule click event\n * @param {PointerEvent} originalEvent The original pointer event\n * @param {HTMLElement} sourceNode The source element that fired the event\n * @param {UDExMastheadItem} [item] The masthead item that was clicked\n */\n@event(\"joule-click\", { bubbles: true })\n\n/**\n * Fired event when the user clicks the cart button trigger.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the cart click event\n * @param {PointerEvent} originalEvent The original pointer event\n * @param {HTMLElement} sourceNode The source element that fired the event\n * @param {UDExMastheadItem} [item] The masthead item that was clicked\n */\n@event(\"cart-click\", { bubbles: true })\n\n/**\n * Fired event when the user clicks the support button trigger.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the support click event\n * @param {PointerEvent} originalEvent The original pointer event\n * @param {HTMLElement} sourceNode The source element that fired the event\n * @param {UDExMastheadItem} [item] The masthead item that was clicked\n */\n@event(\"support-click\", { bubbles: true })\n\n/**\n * Fired event when the user clicks the profile button trigger.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the profile click event\n * @param {PointerEvent} originalEvent The original pointer event\n * @param {HTMLElement} sourceNode The source element that fired the event\n * @param {UDExMastheadItem} [item] The masthead item that was clicked\n */\n@event(\"profile-click\", { bubbles: true })\n\n/**\n * Fired event when the user clicks the country selector button trigger.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the country selector click event\n * @param {PointerEvent} originalEvent The original pointer event\n * @param {HTMLElement} sourceNode The source element that fired the event\n * @param {UDExMastheadItem} [item] The masthead item that was clicked\n */\n@event(\"country-selector-click\", { bubbles: true })\n\n/**\n * Fired event when the user clicks the logo.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the logo click event\n * @param {PointerEvent} originalEvent The original pointer event\n * @param {HTMLElement} sourceNode The source element that fired the event\n * @param {UDExMastheadItem} [item] The masthead item that was clicked\n */\n@event(\"logo-click\", { bubbles: true })\n\n/**\n * Fired event when the user clicks the site label.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the site label click event\n * @param {PointerEvent} originalEvent The original pointer event\n * @param {HTMLElement} sourceNode The source element that fired the event\n * @param {UDExMastheadItem} [item] The masthead item that was clicked\n */\n@event(\"site-label-click\", { bubbles: true })\n\n/**\n * Fired event when the user clicks the co-brand.\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the co-brand click event\n * @param {PointerEvent} originalEvent The original pointer event\n * @param {HTMLElement} sourceNode The source element that fired the event\n * @param {UDExMastheadItem} [item] The masthead item that was clicked\n */\n@event(\"co-brand-click\", { bubbles: true })\n\nclass UDExMastheadShell extends UI5Element {\n eventDetails!: {\n \"mobile-menu-open\": UDExMastheadShellAnalyticsNameEventDetail,\n \"mobile-menu-close\": UDExMastheadShellAnalyticsNameEventDetail,\n \"search-opened\": UDExMastheadShellAnalyticsNameEventDetail,\n \"search-closed\": UDExMastheadShellAnalyticsNameEventDetail,\n \"joule-click\": UDExMastheadShellBaseEventDetail,\n \"cart-click\": UDExMastheadShellBaseEventDetail,\n \"support-click\": UDExMastheadShellBaseEventDetail,\n \"profile-click\": UDExMastheadShellBaseEventDetail,\n \"country-selector-click\": UDExMastheadShellBaseEventDetail,\n \"search-click\": UDExMastheadShellBaseEventDetail,\n \"search-close-click\": UDExMastheadShellBaseEventDetail,\n \"logo-click\": UDExMastheadShellBaseEventDetail,\n \"site-label-click\": UDExMastheadShellBaseEventDetail,\n \"co-brand-click\": UDExMastheadShellBaseEventDetail,\n };\n /**\n * Slot for country selector item.\n *\n * @public\n */\n @slot({ type: Node })\n countrySelector!: Array<UDExMastheadItem>;\n\n /**\n * Slot for mobile menu\n *\n * @public\n */\n @slot({ type: HTMLElement })\n mobileMenu!: Array<Node>;\n\n /**\n * Slot for main menu items.\n *\n * @public\n */\n @slot({ type: HTMLElement, individualSlots: true, \"default\": true })\n menuItems!: Array<UDExMastheadItem>;\n\n /**\n * Slot for search component - will be visible on search icon click.\n * Note: search component should be hidden by default.\n * Note: search icon won't be visible if this slot would be empty\n *\n * @public\n */\n @slot({ type: Node })\n search!: Array<Node>;\n\n /**\n * Slot for 'Explore SAP' menu\n *\n * @public\n */\n @slot({ type: HTMLElement })\n exploreSAP!: Array<UDExMastheadItem>;\n\n /**\n * Slot for cart menu\n *\n * @public\n */\n @slot({ type: HTMLElement })\n cart!: Array<UDExMastheadItem>;\n\n /**\n * Slot for joule menu\n *\n * @public\n */\n @slot({ type: HTMLElement })\n joule!: Array<UDExMastheadItem>;\n\n /**\n * Slot for avatar\n *\n * @public\n */\n @slot({ type: HTMLElement })\n profile!: Array<UDExMastheadItem>;\n\n /**\n * Slot for support\n *\n * @public\n */\n @slot({ type: HTMLElement })\n support!: Array<UDExMastheadItem>;\n\n /**\n * Defines URL to homepage. It will be used as a link on a logo and a site label\n *\n * @default undefined\n * @public\n */\n @property()\n homeUrl?: string;\n\n /**\n * Defines URL for site label. It will be used as a link on a logo and a site label\n *\n * @default undefined\n * @public\n */\n @property()\n siteLabelUrl?: string;\n\n /**\n * Defines overflow style for the body after clicking mobile menu opener button\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n bodyOverflow!: boolean;\n\n /**\n * Defines the visibility of the Search by default.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n showSearchByDefault!: boolean;\n\n /**\n * Defines sticky position for component\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n stickyPosition!: boolean;\n\n /**\n * Defines the co-brand image\n *\n * @default undefined\n * @public\n */\n @property()\n coBrandImage?: string;\n\n /**\n * Defines an alt text for the co-brand image\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n coBrandAlt?: string;\n\n /**\n * Defines the co-brand URL\n *\n * @default undefined\n * @public\n */\n @property()\n coBrandUrl?: string;\n\n /**\n * Defines the default tooltip title for co-brand\n *\n * @default undefined\n * @public\n */\n @property()\n coBrandTitle?: string;\n\n /**\n * Defines an aria label for the co-brand link\n *\n * @default undefined\n * @public\n */\n @property()\n coBrandAriaLabel?: string;\n\n /**\n * Defines the Logo image URL\n *\n * @default undefined\n * @public\n */\n @property()\n logoUrl?: string;\n\n /**\n * Defines the Logo default title\n *\n * @default undefined\n * @public\n */\n @property()\n logoTitle?: string;\n\n /**\n * Defines the default tooltip title for site label\n *\n * @default undefined\n * @public\n */\n @property()\n siteLabelTitle?: string;\n\n /**\n * Defines a site label. It will be displayed next to a logo.\n *\n * @default undefined\n * @public\n */\n @property()\n siteLabel?: string;\n\n /**\n * Defines an alt text for logo\n *\n * @default undefined\n * @public\n */\n @property()\n logoAlt?: string;\n\n /**\n * Defines an accessible name for close icon for the search bar\n *\n * @default undefined\n * @public\n */\n @property()\n closeButtonAccessibleName?: string;\n\n /**\n * Defines an accessible name for open search icon\n *\n * @default undefined\n * @public\n */\n @property()\n openSearchButtonAccessibleName?: string;\n\n /**\n * Defines an accessible name for the close mobile menu button\n *\n * @default undefined\n * @public\n */\n @property()\n mobileCloseButtonAccessibleName?: string;\n\n /**\n * Defines an aria label for the homepage link\n *\n * @default undefined\n * @public\n */\n @property()\n homepageAriaLabel?: string;\n\n /**\n * Defines an aria label for the site label\n *\n * @default undefined\n * @public\n */\n @property()\n siteLabelAriaLabel?: string;\n\n /**\n * Defines if the search container is opened\n *\n * @private\n */\n @property({ type: Boolean })\n _isSearchOpened!: boolean;\n\n /**\n * Defines if the mobile menu is open\n *\n * @private\n */\n @property({ type: Boolean })\n _isMobileMenuOpen!: boolean;\n\n /**\n * Defines the mobile mode for component\n *\n * @private\n */\n @property({ type: Boolean })\n _isMobileMode!: boolean;\n\n /**\n * Defines if the close button was clicked\n *\n * @private\n */\n @property({ type: Boolean })\n _closeBtnClicked!: boolean;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _searchOpener!: UDExMastheadItem | null | undefined;\n _desktopSearch!: UDExSearch | null | undefined;\n _mobileMenu!: UDExMastheadMobileMenu | null | undefined;\n _handleResizeBound: ResizeObserverCallback;\n _rootHolder!: HTMLElement | null | undefined;\n _shouldHandleResize!: boolean;\n _isVisible!: boolean;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onBeforeRendering() {\n if (this.isMobileMenuMode) {\n this.setMobileMenuHeight();\n }\n }\n\n onAfterRendering() {\n this._rootHolder = this.mastheadHolder;\n this._searchOpener = this.searchOpener;\n this._desktopSearch = this.desktopSearchSlot;\n this._mobileMenu = this.mastheadMobileMenu;\n\n if (this._isSearchOpened && this._desktopSearch) {\n this.focusSearchInput();\n }\n\n if (this._closeBtnClicked) {\n this.focusSearchBtn();\n }\n\n if (this.shouldHandleMobileView) {\n this.updateVisibility();\n }\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._handleResizeBound);\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n onInvalidation({ name }: ChangeInfo): void {\n if (name === \"default\" && this.shouldHandleMobileView) {\n this.handleMobileMode();\n }\n }\n\n _handleResize(): void {\n if (this.shouldHandleMobileView) {\n this.handleMobileMode();\n }\n\n if (this.isAtMostBreakpointSizeM) {\n this._isSearchOpened = false;\n }\n\n if (this._shouldHandleResize && this._isMobileMenuOpen) {\n this.closeMobileMenu();\n this.resetSelectedItems();\n return;\n }\n\n if (this.isMobileMenuMode) {\n this.setMobileMenuHeight();\n this.setProfileMobileMode();\n }\n\n this._shouldHandleResize = true;\n }\n\n handleMobileMode(): void {\n const rootHolder = this.getDomRef();\n if (rootHolder) {\n const rootHolderWidth = this.getRootHolderWidth(rootHolder);\n const landingHolderWidth = this.getLandingHolderWidth();\n const rightMenuWidth = this.getRightMenuWidth();\n const mainMenuWidth = this.getMainMenuWidth();\n const availableWidth = rootHolderWidth - rightMenuWidth - landingHolderWidth;\n\n if (mainMenuWidth >= availableWidth) {\n this.setMobileMode();\n } else {\n this.removeMobileMode();\n }\n\n this._isVisible = true;\n }\n }\n\n handleKeyDown(e: KeyboardEvent): void {\n e.stopPropagation();\n this.handleLeftArrow(e);\n this.handleRightArrow(e);\n }\n\n handleSearchKeyDown(e: CustomEvent): void {\n e.stopPropagation();\n const keyEvent = e.detail.e as KeyboardEvent;\n\n if (isEscape(keyEvent)) {\n if (this.showSearchByDefault && this.isAtLeastBreakpointSizeM) {\n return;\n }\n this.closeSearch();\n this.focusSearchBtn();\n }\n }\n\n handleLeftArrow(e: KeyboardEvent): void {\n if (isLeft(e)) {\n const currentItem = e.target as UDExMastheadItem;\n if (this.isNavigationItem(currentItem)) {\n if (currentItem.selected) {\n currentItem.closeDropdown();\n }\n this.focusPreviousMenuItem(currentItem);\n }\n }\n }\n\n handleRightArrow(e: KeyboardEvent): void {\n if (isRight(e)) {\n const currentItem = e.target as UDExMastheadItem;\n if (this.isNavigationItem(currentItem)) {\n if (currentItem.selected) {\n currentItem.closeDropdown();\n }\n this.focusNextMenuItem(currentItem);\n }\n }\n }\n\n handleLogoClick(e: PointerEvent): void {\n this.fireMastheadEvent(\"logo-click\", e);\n }\n\n handleSiteLabelClick(e: PointerEvent): void {\n this.fireMastheadEvent(\"site-label-click\", e);\n }\n\n handleCoBrandClick(e: PointerEvent): void {\n this.fireMastheadEvent(\"co-brand-click\", e);\n }\n\n handleSearchClick(e: PointerEvent): void {\n e.stopPropagation();\n this.fireMastheadEvent(\"search-click\", e);\n this.openSearch();\n }\n\n handleCartClick(e: PointerEvent): void {\n e.stopPropagation();\n this.fireMastheadEvent(\"cart-click\", e);\n this.mobileMenuReset();\n }\n\n handleJouleClick(e: PointerEvent): void {\n e.stopPropagation();\n this.fireMastheadEvent(\"joule-click\", e);\n this.mobileMenuReset();\n }\n\n handleProfileClick(e: PointerEvent): void {\n e.stopPropagation();\n this.fireMastheadEvent(\"profile-click\", e);\n this.mobileMenuReset();\n }\n\n handleSupportClick(e: PointerEvent): void {\n e.stopPropagation();\n this.fireMastheadEvent(\"support-click\", e);\n }\n\n handleCountrySelectorClick(e: PointerEvent): void {\n e.stopPropagation();\n this.fireMastheadEvent(\"country-selector-click\", e);\n this.mobileMenuReset();\n }\n\n handleOpenMobileMenu(): void {\n const clickedItem = this.mobileBtn as UDExMastheadItem;\n if (!clickedItem) {\n return;\n }\n\n this.resetSelectedItems(clickedItem._id);\n this._isMobileMenuOpen = true;\n\n if (this.bodyOverflow) {\n this.setOverflowBody();\n }\n\n this.fireMastheadEvent(\"mobile-menu-open\");\n }\n\n handleCloseSearch(e: PointerEvent): void {\n this._closeBtnClicked = true;\n this.fireMastheadEvent(\"search-close-click\", e);\n this.closeSearch();\n this.resetSearch();\n }\n\n handleEnterAndSpaceOnCloseBtn(e: KeyboardEvent): void {\n if (isSpace(e) || isEnter(e)) {\n e.preventDefault();\n this.closeMobileMenu();\n this.mobileBtn?.focus();\n }\n }\n\n focusSearchInput(): void {\n const input = this._desktopSearch?.shadowRoot!.querySelector<HTMLElement>(\"input\");\n input?.focus();\n }\n\n focusPreviousMenuItem(item: UDExMastheadItem): void {\n const menuItems = this.menuItems;\n const lastItemIndex = menuItems.length - 1;\n const currentSelectedIndex = this.getCurrentIndex(item);\n const previousSelectIndex = currentSelectedIndex - 1 < 0 ? lastItemIndex : currentSelectedIndex - 1;\n menuItems[previousSelectIndex].focus();\n }\n\n focusNextMenuItem(item: UDExMastheadItem): void {\n const menuItems = this.menuItems;\n const currentSelectedIndex = this.getCurrentIndex(item);\n const nextSelectIndex = currentSelectedIndex + 1 > menuItems.length - 1 ? 0 : currentSelectedIndex + 1;\n menuItems[nextSelectIndex].focus();\n }\n\n resetSelectedItems(clickedId?: string): void {\n this.getSelectedItems().forEach(item => {\n if (item._id !== clickedId && item.selected) {\n if (item.hasDropdownSlot) {\n item.fireDropdownCloseEvent(item.eventItemTitle, UDExMastheadDropdownItemAction.ClickOutside);\n }\n item.selected = false;\n }\n });\n }\n\n resetSearch(): void {\n if (this._desktopSearch) {\n this._desktopSearch.value = \"\";\n }\n }\n\n setSelectedItem(e: CustomEvent): void {\n const clickedItem: UDExMastheadItem = e.detail.item;\n if (clickedItem) {\n this.resetSelectedItems(clickedItem._id);\n }\n }\n\n focusSearchBtn(): void {\n if (this._searchOpener) {\n this._searchOpener.focus();\n this._closeBtnClicked = false;\n }\n }\n\n getCurrentIndex(item: UDExMastheadItem): number {\n return this.menuItems.indexOf(item);\n }\n\n getSelectedItems(): Array<UDExMastheadItem> {\n const buttonsArray: Array<UDExMastheadItem> = [\n ...this.menuItems,\n ...this.exploreSAP,\n ...this.joule,\n ...this.cart,\n ...this.support,\n ...this.profile,\n ...this.countrySelector,\n ...(this.mobileBtn && this.closeBtn ? [this.mobileBtn, this.closeBtn] : []),\n ];\n\n return buttonsArray.filter(({ selected }) => selected);\n }\n\n getRootHolderWidth(root: HTMLElement): number {\n const rootPadding = parseInt(window.getComputedStyle(root).getPropertyValue(\"padding-left\")) * 2;\n const scrollWidth = window.innerWidth - document.documentElement.clientWidth;\n return this.getDomRef()!.clientWidth + scrollWidth - rootPadding;\n }\n\n getLandingHolderWidth(): number {\n const landingHolder = this.getDomElement(\".udex-masthead-shell__landing-wrap\");\n return landingHolder?.offsetWidth || 0;\n }\n\n getRightMenuWidth(): number {\n const itemsIcon = [...this.shadowRoot!.querySelectorAll<HTMLDivElement>(\".udex-masthead-shell__item_icon\")];\n const itemIconWidths = itemsIcon.length * this.getItemIconWidth();\n const itemIconGaps = itemsIcon.length * this.getItemIconGap();\n const exploreItem = this.exploreSAP[0];\n const hasArrowIcon = exploreItem?.hasArrowDown && !exploreItem?.hideArrowIcon;\n const exploreItemIconWidth = hasArrowIcon ? this.getItemArrowIconWidth() : 0;\n const exploreSAPWidth = this.hasExploreSAP ? this.getItemWidth(exploreItem) : 0;\n const rightMenuGaps = this.getRightMenuGap() + this.getExploreSapBtnGap() + itemIconGaps;\n return exploreSAPWidth + exploreItemIconWidth + itemIconWidths + rightMenuGaps;\n }\n\n getItemIconSize(cssVariableName: string): number {\n const item = this.querySelector(\"[udex-masthead-item]\");\n\n if (!item) {\n return 0;\n }\n\n const style = window.getComputedStyle(item);\n const iconSizeVar = style.getPropertyValue(cssVariableName);\n return parseInt(iconSizeVar);\n }\n\n getItemIconWidth(): number {\n return this.getItemIconSize(UDExMastheadVariable.itemButtonIconSize);\n }\n\n getItemArrowIconWidth(): number {\n const arrowIconSize = this.getItemIconSize(UDExMastheadVariable.itemArrowIconSize);\n const marginInlineStart = this.getItemIconSize(UDExMastheadVariable.itemArrowIconMarginInlineStart);\n return arrowIconSize + marginInlineStart;\n }\n\n getMainMenuWidth(): number {\n const mainItems = this.getSlottedNodes(\"menuItems\");\n const gapItemVar = this.getRootVar(UDExMastheadVariable.itemGap);\n return mainItems.reduce((accumulatedWidth, item, index) => {\n const mainItem = item as UDExMastheadItem;\n const hasArrowIcon = mainItem.hasArrowDown && !mainItem.hideArrowIcon;\n const arrowIconWidth = hasArrowIcon ? this.getItemArrowIconWidth() : 0;\n return accumulatedWidth + this.getItemWidth(mainItem) + (index && parseInt(gapItemVar)) + arrowIconWidth;\n }, 0);\n }\n\n getDomElement(selector: string): HTMLElement | undefined | null {\n return this.shadowRoot?.querySelector(`${selector}`);\n }\n\n getItemWidth(item: UDExMastheadItem): number {\n const context = this.getCanvasContext();\n context.font = canvasContentFont;\n return Math.ceil(context.measureText(item.innerText.trim()).width);\n }\n\n getCanvasContext(): CanvasRenderingContext2D {\n const canvas = document.createElement(\"canvas\");\n return canvas.getContext(\"2d\")!;\n }\n\n getItemIconGap(): number {\n const gapIconItemVar = this.getRootVar(UDExMastheadVariable.itemIconGap);\n return parseInt(gapIconItemVar);\n }\n\n getExploreSapBtnGap(): number {\n const exploreSapBtnGapVar = this.getRootVar(UDExMastheadVariable.exploreMargin);\n return this.hasExploreSAP ? parseInt(exploreSapBtnGapVar) : 0;\n }\n\n getRightMenuGap(): number {\n const rightMenuGapVar = this.getRootVar(UDExMastheadVariable.rightMenuPadding);\n return parseInt(rightMenuGapVar);\n }\n\n getRootVar(variableName: string): string {\n return window.getComputedStyle(this.getDomRef()!).getPropertyValue(`${variableName}`);\n }\n\n isNavigationItem(item: UDExMastheadItem): boolean {\n return this.menuItems.some(menuItem => menuItem === item);\n }\n\n setOverflowBody() {\n const { body: { style } } = document;\n this._shouldHandleResize = false;\n style.overflow = \"hidden\";\n }\n\n removeOverflowBody() {\n const { body: { style } } = document;\n style.removeProperty(\"overflow\");\n }\n\n setMobileMode(): void {\n this._isMobileMode = true;\n this.slottedItems.forEach((item: MastheadSlottedItem) => {\n if (item) {\n item._isMobileMode = true;\n }\n });\n }\n\n setMobileMenuHeight(): void {\n const mastheadHeight = parseInt(window.getComputedStyle(this).getPropertyValue(UDExMastheadVariable.mastheadHeight));\n const rectTop = this.getBoundingClientRect().top;\n const mobileMenuHeight = `${window.innerHeight - mastheadHeight - rectTop}px`;\n this.style.setProperty(UDExMastheadVariable.mobileMenuHeight, mobileMenuHeight);\n }\n\n setProfileMobileMode(): void {\n if (this.profileMenu) {\n this.profileMenu._isMobileMode = this.isMobileMenuMode;\n }\n }\n\n removeMobileMode(): void {\n this._isMobileMode = false;\n this.slottedItems.forEach((item: MastheadSlottedItem) => {\n item?.removeAttribute(\"_is-mobile-mode\");\n });\n }\n\n updateVisibility(): void {\n this.style.opacity = this.isVisible ? \"1\" : \"0\";\n }\n\n fireMastheadEvent(eventName: keyof this[\"eventDetails\"], e?: PointerEvent): void {\n const eventDetails = {\n analyticsName: AnalyticsName.Header,\n ...(e && { originalEvent: e }),\n ...(e && { sourceNode: e.currentTarget as HTMLElement }),\n } as this[\"eventDetails\"][typeof eventName];\n this.fireDecoratorEvent(eventName, eventDetails);\n }\n\n mobileMenuReset(): void {\n if (this._isMobileMenuOpen) {\n this._mobileMenu?.showFirstLevelMenu();\n this._mobileMenu?.resetSearch();\n }\n }\n\n /**\n * Close the search panel.\n * @public\n */\n closeSearch(): void {\n this._isSearchOpened = false;\n this.fireMastheadEvent(\"search-closed\");\n }\n\n /**\n * Open the search panel.\n * @public\n */\n openSearch(): void {\n const shouldPreventOpeningSearch = this._isSearchOpened\n || (this.isAtMostBreakpointSizeM && !this.showSearchByDefault)\n || this._isMobileMode\n || (this.isAtLeastBreakpointSizeM && this.showSearchByDefault);\n\n if (shouldPreventOpeningSearch) {\n return;\n }\n\n this._isSearchOpened = true;\n this.resetSelectedItems();\n\n if (this._searchOpener) {\n this._searchOpener.selected = false;\n }\n\n this.fireMastheadEvent(\"search-opened\");\n }\n\n /**\n * Open the mobile menu panel.\n * @public\n */\n openMobileMenu(): void {\n if (!this._isMobileMenuOpen && this.isMobileMenuMode) {\n this.mobileBtn?.handleSelectedChange();\n this.handleOpenMobileMenu();\n }\n }\n\n /**\n * Close the mobile menu panel.\n * @public\n */\n closeMobileMenu(): void {\n if (!this._isMobileMenuOpen) {\n return;\n }\n\n (this.mobileBtn as UDExMastheadItem).selected = false;\n this._isMobileMenuOpen = false;\n this._mobileMenu?.showFirstLevelMenu();\n this._mobileMenu?.resetSearch();\n\n if (this.bodyOverflow) {\n this.removeOverflowBody();\n }\n\n this.fireMastheadEvent(\"mobile-menu-close\");\n }\n\n get slottedItems(): (MastheadSlottedItem)[] {\n return [\n this.profileItem,\n this.profileMenu,\n this.cartItem,\n this.supportItem,\n this.profileMenuLinks,\n this.countrySelectorItem,\n this.countrySelectorMenu,\n ];\n }\n\n get desktopSearchSlot(): UDExSearch | null {\n return this.querySelector<UDExSearch>(\"[udex-search]\");\n }\n\n get searchOpener(): MastheadItemType {\n return this.shadowRoot?.querySelector(\".udex-masthead-shell__search-btn\");\n }\n\n get mastheadHolder(): HTMLElement | null | undefined {\n return this.shadowRoot?.querySelector(\".udex-masthead-shell\");\n }\n\n get mastheadMobileMenu(): UDExMastheadMobileMenu | null {\n return this.querySelector(\"[udex-masthead-mobile-menu]\");\n }\n\n get mobileBtn(): MastheadItemType {\n return this.shadowRoot?.querySelector(\".udex-masthead-shell__menu-btn\");\n }\n\n get closeBtn(): MastheadItemType {\n return this.shadowRoot?.querySelector(\".udex-masthead-shell__close-btn\");\n }\n\n get profileItem(): UDExMastheadItem {\n return this.getSlottedNodes<UDExMastheadItem>(\"profile\")[0];\n }\n\n get countrySelectorItem(): UDExMastheadItem {\n return this.getSlottedNodes<UDExMastheadItem>(\"countrySelector\")[0];\n }\n\n get cartItem(): MastheadItemType {\n return this.getSlottedNodes<UDExMastheadItem>(\"cart\")[0];\n }\n\n get supportItem(): MastheadItemType {\n return this.getSlottedNodes<UDExMastheadItem>(\"support\")[0];\n }\n\n get profileMenu(): UDExMastheadProfileMenu {\n return this.querySelector(\"[udex-masthead-profile-menu]\")!;\n }\n\n get countrySelectorMenu(): UDExMastheadCountrySelector {\n return this.querySelector(\"[udex-masthead-country-selector]\")!;\n }\n\n get profileMenuLinks(): UDExMastheadMenu | undefined | null {\n return this.profileMenu?.shadowRoot?.querySelector(\"[udex-masthead-menu]\");\n }\n\n get hasProfile(): boolean {\n return !!this.profile.length;\n }\n\n get hasCart(): boolean {\n return !!this.cart.length;\n }\n\n get hasSearch(): boolean {\n return !!this.search.length;\n }\n\n get hasExploreSAP(): boolean {\n return !!this.exploreSAP.length;\n }\n\n get hasJoule(): boolean {\n return !!this.joule.length;\n }\n\n get hasCountrySelector(): boolean {\n return !!this.countrySelector.length;\n }\n\n get hasSupport(): boolean {\n return !!this.support.length;\n }\n\n get hasMobileMenuButtons(): boolean {\n return !!this.mobileMenu.length;\n }\n\n get isAtMostBreakpointSizeM(): boolean {\n return BreakpointUtils.isAtMost(\"M\");\n }\n\n get isAtLeastBreakpointSizeM(): boolean {\n return BreakpointUtils.isAtLeast(\"M\");\n }\n\n get isMobileMenuMode(): boolean {\n return this._isMobileMode || this.isAtMostBreakpointSizeM;\n }\n\n get isMainMenuVisible(): boolean {\n return !this.showSearchByDefault && !this._isSearchOpened && !!this.menuItems.length;\n }\n\n get isSearchVisible(): boolean {\n return this.showSearchByDefault || this._isSearchOpened;\n }\n\n get isVisible(): boolean {\n return this.isMobileMenuMode || !this.menuItems.length || this._isVisible;\n }\n\n get shouldHandleMobileView(): boolean {\n return !this.isAtMostBreakpointSizeM && this.isMainMenuVisible;\n }\n\n get openSearchButtonAccessibleNameText(): string {\n return this.openSearchButtonAccessibleName || translate(UDExMastheadShell, SEARCH);\n }\n\n get mainNavigationAriaLabel(): string {\n return translate(UDExMastheadShell, MAIN_LINKS);\n }\n\n get isSimpleExploreMode(): boolean {\n return !this.hasSearch && !this.hasProfile && !this.hasCart && !this.hasSupport && !this.hasCountrySelector;\n }\n\n get rightMenuClass(): string {\n const root = \"udex-masthead-shell__right-menu\";\n const simpleExploreClass = this.isSimpleExploreMode ? `${root}_simple-explore` : \"\";\n return `${root} ${simpleExploreClass}`.trim();\n }\n\n get mainClass(): string {\n const root = \"udex-masthead-shell\";\n const coBrandWithoutNavClass = (!!this.coBrandImage && !this.menuItems.length) ? `${root}_co-brand-without-nav` : \"\";\n return `${root} ${coBrandWithoutNavClass}`.trim();\n }\n}\n\nUDExMastheadShell.define();\n\nexport default UDExMastheadShell;\nexport type { UDExMastheadShellBaseEventDetail, UDExMastheadShellAnalyticsNameEventDetail };\n"]}
@@ -13,6 +13,7 @@ import MessageStrip from "@ui5/webcomponents/dist/MessageStrip.js";
13
13
  import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
14
14
  import { MESSAGE_STRIP_ERROR, MESSAGE_STRIP_INFORMATION, MESSAGE_STRIP_SUCCESS, MESSAGE_STRIP_WARNING, MESSAGE_STRIP_ACTION, MESSAGE_STRIP_CLOSE_BUTTON, } from "./generated/i18n/i18n-defaults.js";
15
15
  import { UDExMessageStripDesign, UDExMessageStripStatusType } from "./types/MessageStrip.js";
16
+ import translate from "./utils/translate.js";
16
17
  // Template
17
18
  import MessageStripTemplate from "./MessageStripTemplate.js";
18
19
  // Styles
@@ -47,7 +48,7 @@ let UDExMessageStrip = UDExMessageStrip_1 = class UDExMessageStrip extends Messa
47
48
  }
48
49
  }
49
50
  getTranslation(text) {
50
- return UDExMessageStrip_1.i18nBundle.getText(text);
51
+ return translate(UDExMessageStrip_1, text);
51
52
  }
52
53
  textStatusTypeMapping() {
53
54
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"MessageStrip.js","sourceRoot":"","sources":["../src/MessageStrip.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport MessageStrip from \"@ui5/webcomponents/dist/MessageStrip.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { I18nText } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n MESSAGE_STRIP_ERROR,\n MESSAGE_STRIP_INFORMATION,\n MESSAGE_STRIP_SUCCESS,\n MESSAGE_STRIP_WARNING,\n MESSAGE_STRIP_ACTION,\n MESSAGE_STRIP_CLOSE_BUTTON,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport { UDExMessageStripDesign, UDExMessageStripStatusType } from \"./types/MessageStrip.js\";\n\n// Template\nimport MessageStripTemplate from \"./MessageStripTemplate.js\";\n\n// Styles\nimport MessageStripCss from \"./generated/themes/MessageStrip.css.js\";\n\n/**\n * @class\n *\n * @constructor\n * @extends MessageStrip\n * @tagname udex-message-strip\n * @public\n */\n@customElement({\n tag: \"udex-message-strip\",\n renderer: jsxRenderer,\n styles: [MessageStrip.styles, MessageStripCss],\n template: MessageStripTemplate,\n})\n\nclass UDExMessageStrip extends MessageStrip {\n /**\n * Defines the component type.\n *\n * @public\n */\n @property()\n /** @ts-expect-error */\n design!: `${UDExMessageStripDesign}` = UDExMessageStripDesign.Action;\n\n /**\n * Defines the component Status Type.\n *\n * @public\n */\n @property()\n statusType: `${UDExMessageStripStatusType}` = UDExMessageStripStatusType.Icon;\n\n /**\n * Defines whether the MessageStrip renders close button.\n *\n * @public\n */\n @property({ type: Boolean })\n hideCloseButton!: boolean;\n\n /**\n * Defines the content of the component.\n *\n * @slot\n * @public\n */\n @slot({ type: Node }) default!: Node;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n onBeforeRendering() {\n if (this.isDesignActionOrIsNotIconType) {\n this.hideIcon = true;\n }\n }\n\n getTranslation(text: I18nText): string {\n return UDExMessageStrip.i18nBundle.getText(text);\n }\n\n textStatusTypeMapping(): Record<string, string> {\n return {\n [UDExMessageStripDesign.Information]: this.getTranslation(MESSAGE_STRIP_INFORMATION),\n [UDExMessageStripDesign.Positive]: this.getTranslation(MESSAGE_STRIP_SUCCESS),\n [UDExMessageStripDesign.Negative]: this.getTranslation(MESSAGE_STRIP_ERROR),\n [UDExMessageStripDesign.Warning]: this.getTranslation(MESSAGE_STRIP_WARNING),\n [UDExMessageStripDesign.Action]: this.getTranslation(MESSAGE_STRIP_ACTION),\n };\n }\n\n isDesignAction(): boolean {\n return this.design === UDExMessageStripDesign.Action;\n }\n\n get isDesignWarning(): boolean {\n return this.design === UDExMessageStripDesign.Warning;\n }\n\n _closeClick(): void {\n this.fireDecoratorEvent(\"close\");\n }\n\n get shouldHideIcon(): boolean {\n if (this.isDesignActionOrIsNotIconType) {\n return this.hideIcon || this.icon.length === 0;\n }\n\n return this.hideIcon;\n }\n\n get hideTextStatus(): boolean {\n return this.statusType !== UDExMessageStripStatusType.Text || this.isDesignAction();\n }\n\n get textStatus(): string | undefined {\n if (this.design !== UDExMessageStripDesign.Action) {\n return this.textStatusTypeMapping()[this.design];\n }\n }\n\n get _closeButtonText(): string {\n return `${this.textStatus ?? \"\"} ${this.getTranslation(MESSAGE_STRIP_CLOSE_BUTTON)}`;\n }\n\n get isNotIconStatusType(): boolean {\n return this.statusType !== UDExMessageStripStatusType.Icon;\n }\n\n get hasIcon(): boolean {\n return this.icon.length > 0;\n }\n\n get isDesignActionOrIsNotIconType(): boolean {\n return this.isDesignAction() || this.isNotIconStatusType;\n }\n\n get hiddenText(): string {\n return `${this.textStatusTypeMapping()[this.design]} ${this.hideCloseButton ? \"\" : this._closableText}`;\n }\n}\n\nUDExMessageStrip.define();\n\nexport default UDExMessageStrip;\n"]}
1
+ {"version":3,"file":"MessageStrip.js","sourceRoot":"","sources":["../src/MessageStrip.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport MessageStrip from \"@ui5/webcomponents/dist/MessageStrip.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { I18nText } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n MESSAGE_STRIP_ERROR,\n MESSAGE_STRIP_INFORMATION,\n MESSAGE_STRIP_SUCCESS,\n MESSAGE_STRIP_WARNING,\n MESSAGE_STRIP_ACTION,\n MESSAGE_STRIP_CLOSE_BUTTON,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport { UDExMessageStripDesign, UDExMessageStripStatusType } from \"./types/MessageStrip.js\";\nimport translate from \"./utils/translate.js\";\n\n// Template\nimport MessageStripTemplate from \"./MessageStripTemplate.js\";\n\n// Styles\nimport MessageStripCss from \"./generated/themes/MessageStrip.css.js\";\n\n/**\n * @class\n *\n * @constructor\n * @extends MessageStrip\n * @tagname udex-message-strip\n * @public\n */\n@customElement({\n tag: \"udex-message-strip\",\n renderer: jsxRenderer,\n styles: [MessageStrip.styles, MessageStripCss],\n template: MessageStripTemplate,\n})\n\nclass UDExMessageStrip extends MessageStrip {\n /**\n * Defines the component type.\n *\n * @public\n */\n @property()\n /** @ts-expect-error */\n design!: `${UDExMessageStripDesign}` = UDExMessageStripDesign.Action;\n\n /**\n * Defines the component Status Type.\n *\n * @public\n */\n @property()\n statusType: `${UDExMessageStripStatusType}` = UDExMessageStripStatusType.Icon;\n\n /**\n * Defines whether the MessageStrip renders close button.\n *\n * @public\n */\n @property({ type: Boolean })\n hideCloseButton!: boolean;\n\n /**\n * Defines the content of the component.\n *\n * @slot\n * @public\n */\n @slot({ type: Node }) default!: Node;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n onBeforeRendering() {\n if (this.isDesignActionOrIsNotIconType) {\n this.hideIcon = true;\n }\n }\n\n getTranslation(text: I18nText): string {\n return translate(UDExMessageStrip, text);\n }\n\n textStatusTypeMapping(): Record<string, string> {\n return {\n [UDExMessageStripDesign.Information]: this.getTranslation(MESSAGE_STRIP_INFORMATION),\n [UDExMessageStripDesign.Positive]: this.getTranslation(MESSAGE_STRIP_SUCCESS),\n [UDExMessageStripDesign.Negative]: this.getTranslation(MESSAGE_STRIP_ERROR),\n [UDExMessageStripDesign.Warning]: this.getTranslation(MESSAGE_STRIP_WARNING),\n [UDExMessageStripDesign.Action]: this.getTranslation(MESSAGE_STRIP_ACTION),\n };\n }\n\n isDesignAction(): boolean {\n return this.design === UDExMessageStripDesign.Action;\n }\n\n get isDesignWarning(): boolean {\n return this.design === UDExMessageStripDesign.Warning;\n }\n\n _closeClick(): void {\n this.fireDecoratorEvent(\"close\");\n }\n\n get shouldHideIcon(): boolean {\n if (this.isDesignActionOrIsNotIconType) {\n return this.hideIcon || this.icon.length === 0;\n }\n\n return this.hideIcon;\n }\n\n get hideTextStatus(): boolean {\n return this.statusType !== UDExMessageStripStatusType.Text || this.isDesignAction();\n }\n\n get textStatus(): string | undefined {\n if (this.design !== UDExMessageStripDesign.Action) {\n return this.textStatusTypeMapping()[this.design];\n }\n }\n\n get _closeButtonText(): string {\n return `${this.textStatus ?? \"\"} ${this.getTranslation(MESSAGE_STRIP_CLOSE_BUTTON)}`;\n }\n\n get isNotIconStatusType(): boolean {\n return this.statusType !== UDExMessageStripStatusType.Icon;\n }\n\n get hasIcon(): boolean {\n return this.icon.length > 0;\n }\n\n get isDesignActionOrIsNotIconType(): boolean {\n return this.isDesignAction() || this.isNotIconStatusType;\n }\n\n get hiddenText(): string {\n return `${this.textStatusTypeMapping()[this.design]} ${this.hideCloseButton ? \"\" : this._closableText}`;\n }\n}\n\nUDExMessageStrip.define();\n\nexport default UDExMessageStrip;\n"]}
@@ -16,7 +16,7 @@ export default function MessageStripTemplate() {
16
16
  "ui5-message-strip-root-hide-icon": this.shouldHideIcon,
17
17
  "ui5-message-strip-root-hide-close-button": this.hideCloseButton,
18
18
  "ui5-message-strip-root--critical": this.isDesignWarning,
19
- [this.designClasses]: true,
19
+ ...(this.designClasses ? { [this.designClasses]: true } : {}),
20
20
  }, id: this._id, role: "note", "aria-labelledby": this._id, children: [!this.shouldHideIcon && (_jsx("div", { class: "ui5-message-strip-icon-wrapper udex-message-strip", "aria-hidden": "true", children: this.hasIcon ? (_jsx("slot", { name: "icon" })) : (_jsx(Icon, { name: standardIconName.call(this), class: "ui5-message-strip-icon" })) })), _jsx("span", { class: "ui5-hidden-text", children: this.hiddenText }), _jsxs("span", { class: "ui5-message-strip-text message-strip__text", children: [!this.hideTextStatus && (_jsxs("strong", { class: "message-strip__text-status", children: [this.textStatus, ":"] })), _jsx("slot", {})] }), !this.hideCloseButton && (_jsx(UDExButton, { size: UDExButtonSize.Small, icon: decline, design: UDExButtonDesign.Tertiary, onClick: this._closeClick, tooltip: this._closeButtonText, part: "close-button" }))] }));
21
21
  }
22
22
  function standardIconName() {