@dubai-design-system/components-js 5.2.0 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/MIGRATION.md +138 -18
  3. package/dist/cjs/dda-accordion.cjs.entry.js +3 -3
  4. package/dist/cjs/dda-alert.cjs.entry.js +5 -5
  5. package/dist/cjs/dda-attach-file.cjs.entry.js +3 -3
  6. package/dist/cjs/dda-avatar.cjs.entry.js +8 -8
  7. package/dist/{dda/dda-tooltip.entry.js → cjs/dda-banner-card.cjs.entry.js} +16 -36
  8. package/dist/cjs/dda-banner.cjs.entry.js +3 -3
  9. package/dist/cjs/dda-breadcrumb.cjs.entry.js +2 -2
  10. package/dist/cjs/dda-button.cjs.entry.js +3 -3
  11. package/dist/cjs/dda-checkbox.cjs.entry.js +3 -3
  12. package/dist/cjs/dda-chip.cjs.entry.js +3 -3
  13. package/dist/cjs/dda-credit-card.cjs.entry.js +3 -3
  14. package/dist/cjs/dda-creditcard-field.cjs.entry.js +4 -4
  15. package/dist/cjs/dda-dropdown.cjs.entry.js +4 -4
  16. package/dist/cjs/dda-footer.cjs.entry.js +3 -3
  17. package/dist/cjs/dda-header.cjs.entry.js +208 -23
  18. package/dist/cjs/dda-home-banner.cjs.entry.js +4 -4
  19. package/dist/{dda/dda-tabs.entry.js → cjs/dda-home-carousel.cjs.entry.js} +18 -49
  20. package/dist/cjs/dda-horizontal-stepper.cjs.entry.js +3 -3
  21. package/dist/cjs/dda-input.cjs.entry.js +3 -3
  22. package/dist/cjs/dda-link-button_2.cjs.entry.js +6 -6
  23. package/dist/cjs/dda-number-field.cjs.entry.js +3 -3
  24. package/dist/cjs/dda-pagination.cjs.entry.js +4 -4
  25. package/dist/cjs/dda-phonefield.cjs.entry.js +3 -3
  26. package/dist/cjs/dda-progressbar.cjs.entry.js +3 -3
  27. package/dist/cjs/dda-range-slider.cjs.entry.js +3 -3
  28. package/dist/cjs/dda-search-input.cjs.entry.js +3 -3
  29. package/dist/cjs/dda-segmented-tabs.cjs.entry.js +5 -5
  30. package/dist/cjs/dda-select.cjs.entry.js +4 -6
  31. package/dist/cjs/dda-sticky-footer.cjs.entry.js +41 -4
  32. package/dist/cjs/dda-tabs.cjs.entry.js +4 -4
  33. package/dist/cjs/dda-textarea.cjs.entry.js +1351 -16189
  34. package/dist/cjs/dda-toggle.cjs.entry.js +3 -3
  35. package/dist/cjs/dda-tooltip.cjs.entry.js +3 -3
  36. package/dist/cjs/dda-ui-card.cjs.entry.js +3 -3
  37. package/dist/cjs/dda-vertical-stepper.cjs.entry.js +2 -2
  38. package/dist/cjs/dda.cjs.js +3 -30
  39. package/dist/cjs/{index-Na_7EWDR.js → index-DD8fdSxb.js} +1 -1
  40. package/dist/cjs/index.cjs.js +0 -10
  41. package/dist/cjs/loader.cjs.js +2 -2
  42. package/dist/cjs/parse-json-prop-B0KWD8qe.js +38 -0
  43. package/dist/collection/collection-manifest.json +5 -3
  44. package/dist/collection/components/dda-accordion/dda-accordion.js +1 -1
  45. package/dist/collection/components/dda-alert/dda-alert.js +1 -1
  46. package/dist/collection/components/dda-attach-file/dda-attach-file.js +1 -1
  47. package/dist/collection/components/dda-avatar/dda-avatar.js +5 -5
  48. package/dist/collection/components/dda-banner/dda-banner.js +1 -1
  49. package/dist/collection/components/dda-banner-card/dda-banner-card.js +243 -0
  50. package/dist/collection/components/dda-button/dda-button.js +1 -1
  51. package/dist/collection/components/dda-checkbox/dda-checkbox.js +1 -1
  52. package/dist/collection/components/dda-chip/dda-chip.js +1 -1
  53. package/dist/collection/components/dda-credit-card/dda-credit-card.js +1 -1
  54. package/dist/collection/components/dda-creditcard-field/dda-creditcard-field.js +1 -1
  55. package/dist/collection/components/dda-dropdown/dda-dropdown.js +1 -1
  56. package/dist/collection/components/dda-footer/dda-footer.js +1 -1
  57. package/dist/collection/components/dda-header/dda-header.js +838 -88
  58. package/dist/collection/components/dda-header/dda-header.stories.js +200 -35
  59. package/dist/collection/components/dda-header/nav-model.js +69 -0
  60. package/dist/collection/components/dda-home-banner/dda-home-banner.js +2 -2
  61. package/dist/collection/components/dda-home-carousel/dda-home-carousel.js +164 -0
  62. package/dist/collection/components/dda-home-carousel/dda-home-carousel.stories.js +24 -0
  63. package/dist/collection/components/dda-input/dda-input.js +1 -1
  64. package/dist/collection/components/dda-link-button/dda-link-button.js +2 -2
  65. package/dist/collection/components/dda-number-field/dda-number-field.js +1 -1
  66. package/dist/collection/components/dda-pagination/dda-pagination.js +1 -1
  67. package/dist/collection/components/dda-phonefield/dda-phonefield.js +1 -1
  68. package/dist/collection/components/dda-progressbar/dda-progressbar.js +1 -1
  69. package/dist/collection/components/dda-radiobutton/dda-radiobutton.css +228 -6
  70. package/dist/collection/components/dda-radiobutton/dda-radiobutton.js +1 -1
  71. package/dist/collection/components/dda-range-slider/dda-range-slider.js +2 -2
  72. package/dist/collection/components/dda-search-input/dda-search-input.js +1 -1
  73. package/dist/collection/components/dda-select/dda-select.js +1 -1
  74. package/dist/collection/components/dda-sticky-footer/dda-sticky-footer.js +496 -5
  75. package/dist/collection/components/dda-sticky-footer/dda-sticky-footer.stories.js +12 -1
  76. package/dist/collection/components/dda-tabs/dda-tabs.js +1 -1
  77. package/dist/collection/components/dda-textarea/dda-textarea.js +2 -2
  78. package/dist/collection/components/dda-toggle/dda-toggle.js +1 -1
  79. package/dist/collection/components/dda-tooltip/dda-tooltip.js +1 -1
  80. package/dist/collection/components/dda-ui-card/dda-ui-card.js +1 -1
  81. package/dist/collection/components/segmented-groups/dda-segmented-tabs/dda-segmented-tabs.css +29 -9
  82. package/dist/collection/components/segmented-groups/dda-segmented-tabs/dda-segmented-tabs.js +1 -1
  83. package/dist/collection/components/stepper/dda-horizontal-stepper/dda-horizontal-stepper.js +1 -1
  84. package/dist/collection/components/stepper/dda-vertical-stepper/dda-vertical-stepper.js +1 -1
  85. package/dist/collection/global/global.css +228 -6
  86. package/dist/collection/utils/parse-json-prop.js +34 -0
  87. package/dist/components/dda-accordion.js +1 -59
  88. package/dist/components/dda-alert.js +1 -94
  89. package/dist/components/dda-attach-file.js +1 -138
  90. package/dist/components/dda-avatar.js +1 -107
  91. package/dist/components/dda-banner-card.d.ts +11 -0
  92. package/dist/components/dda-banner-card.js +1 -0
  93. package/dist/components/dda-banner.js +1 -57
  94. package/dist/components/dda-breadcrumb.js +1 -66
  95. package/dist/components/dda-button.js +1 -6
  96. package/dist/components/dda-checkbox.js +1 -59
  97. package/dist/components/dda-chip.js +1 -55
  98. package/dist/components/dda-credit-card.js +1 -54
  99. package/dist/components/dda-creditcard-field.js +1 -133
  100. package/dist/components/dda-dropdown.js +1 -113
  101. package/dist/components/dda-footer.js +1 -72
  102. package/dist/components/dda-header.js +1 -367
  103. package/dist/components/dda-home-banner.js +1 -249
  104. package/dist/components/dda-home-carousel.d.ts +11 -0
  105. package/dist/components/dda-home-carousel.js +1 -0
  106. package/dist/components/dda-horizontal-stepper.js +1 -69
  107. package/dist/components/dda-input.js +1 -92
  108. package/dist/components/dda-link-button.js +1 -6
  109. package/dist/components/dda-number-field.js +1 -127
  110. package/dist/components/dda-pagination.js +1 -133
  111. package/dist/components/dda-phonefield.js +1 -316
  112. package/dist/components/dda-progressbar.js +1 -58
  113. package/dist/components/dda-radiobutton.js +1 -6
  114. package/dist/components/dda-range-slider.js +1 -93
  115. package/dist/components/dda-search-input.js +1 -102
  116. package/dist/components/dda-segmented-tabs.js +1 -133
  117. package/dist/components/dda-select.js +1 -219
  118. package/dist/components/dda-sticky-footer.js +1 -132
  119. package/dist/components/dda-tabs.js +1 -91
  120. package/dist/components/dda-textarea.js +1 -31277
  121. package/dist/components/dda-toggle.js +1 -55
  122. package/dist/components/dda-tooltip.js +1 -6
  123. package/dist/components/dda-ui-card.js +1 -71
  124. package/dist/components/dda-vertical-stepper.js +1 -72
  125. package/dist/components/index.js +1 -34
  126. package/dist/components/{p-D7sJgBDk.js → p-BCtBptNq.js} +1 -1
  127. package/dist/components/p-BP6BxgDV.js +1 -0
  128. package/dist/components/p-BZzFtOHg.js +1 -0
  129. package/dist/components/p-CvcFE821.js +1 -0
  130. package/dist/components/{p-_-I_65FG.js → p-D3e_hki9.js} +1 -1
  131. package/dist/components/{p-C2Cs3ruo.js → p-DCwxgkNU.js} +1 -1
  132. package/dist/components/{p-C520q-ka.js → p-R9p4F9Pi.js} +1 -1
  133. package/dist/dda/dda.css +2 -6393
  134. package/dist/dda/dda.esm.js +1 -47
  135. package/dist/dda/index.esm.js +1 -29
  136. package/dist/dda/{p-ee6d56fc.entry.js → p-0480f0a9.entry.js} +1 -1
  137. package/dist/dda/{p-0a86a74c.entry.js → p-06188c4c.entry.js} +1 -1
  138. package/dist/dda/p-08e1892a.entry.js +1 -0
  139. package/dist/dda/{p-0574c9df.entry.js → p-10c5a752.entry.js} +1 -1
  140. package/dist/dda/{p-2630152f.entry.js → p-169ba650.entry.js} +1 -1
  141. package/dist/dda/{p-9c86dc30.entry.js → p-25058697.entry.js} +1 -1
  142. package/dist/dda/{p-e8ca224f.entry.js → p-32a7c588.entry.js} +1 -1
  143. package/dist/dda/{p-95e1a389.entry.js → p-333205aa.entry.js} +1 -1
  144. package/dist/dda/{p-3835f3b7.entry.js → p-46df4933.entry.js} +1 -1
  145. package/dist/dda/{p-eecfe091.entry.js → p-47322b02.entry.js} +1 -1
  146. package/dist/dda/{p-489a3711.entry.js → p-4e717a2e.entry.js} +1 -1
  147. package/dist/dda/{p-271c5f91.entry.js → p-5840fad9.entry.js} +1 -1
  148. package/dist/dda/p-5bb62ef7.entry.js +1 -0
  149. package/dist/dda/p-5e757702.entry.js +1 -0
  150. package/dist/dda/{p-32746429.entry.js → p-6430c363.entry.js} +1 -1
  151. package/dist/dda/{p-8de4f35e.entry.js → p-6d4f5672.entry.js} +1 -1
  152. package/dist/dda/{p-9416d8ec.entry.js → p-6db5588a.entry.js} +1 -1
  153. package/dist/dda/{p-16f94322.entry.js → p-76859bf8.entry.js} +1 -1
  154. package/dist/dda/p-7c1abbd2.entry.js +1 -0
  155. package/dist/dda/{p-eed4a104.entry.js → p-7ffce954.entry.js} +1 -1
  156. package/dist/dda/{p-58de747b.entry.js → p-8108c4ed.entry.js} +1 -1
  157. package/dist/dda/{p-95b87c55.entry.js → p-8852dafb.entry.js} +1 -1
  158. package/dist/dda/{p-98c59aa8.entry.js → p-8dbbc0ca.entry.js} +1 -1
  159. package/dist/dda/{p-3d57e957.entry.js → p-95100f73.entry.js} +1 -1
  160. package/dist/dda/{p-b6190656.entry.js → p-9a4e34d1.entry.js} +1 -1
  161. package/dist/dda/p-9b234635.entry.js +1 -0
  162. package/dist/dda/{p-d06c5daf.entry.js → p-9d9834ff.entry.js} +1 -1
  163. package/dist/dda/{p-1acc0fda.entry.js → p-9f01cb56.entry.js} +1 -1
  164. package/dist/dda/{p-c39d196d.entry.js → p-9ff8dc84.entry.js} +1 -1
  165. package/dist/dda/p-BnrqwGTj.js +2 -0
  166. package/dist/dda/p-CvcFE821.js +1 -0
  167. package/dist/dda/{p-e660a594.entry.js → p-a8a1ee5d.entry.js} +1 -1
  168. package/dist/dda/{p-d8fd3f73.entry.js → p-b37f40a9.entry.js} +1 -1
  169. package/dist/dda/p-eaffd32d.entry.js +1 -0
  170. package/dist/dda/{p-63754a93.entry.js → p-f2efc121.entry.js} +1 -1
  171. package/dist/dda/{p-96741f45.entry.js → p-faed59dd.entry.js} +1 -1
  172. package/dist/dda/p-fb00dec4.entry.js +1 -0
  173. package/dist/esm/dda-accordion.entry.js +3 -3
  174. package/dist/esm/dda-alert.entry.js +5 -5
  175. package/dist/esm/dda-attach-file.entry.js +3 -3
  176. package/dist/esm/dda-avatar.entry.js +8 -8
  177. package/dist/{dda/dda-credit-card.entry.js → esm/dda-banner-card.entry.js} +14 -16
  178. package/dist/esm/dda-banner.entry.js +3 -3
  179. package/dist/esm/dda-breadcrumb.entry.js +2 -2
  180. package/dist/esm/dda-button.entry.js +3 -3
  181. package/dist/esm/dda-checkbox.entry.js +3 -3
  182. package/dist/esm/dda-chip.entry.js +3 -3
  183. package/dist/esm/dda-credit-card.entry.js +3 -3
  184. package/dist/esm/dda-creditcard-field.entry.js +4 -4
  185. package/dist/esm/dda-dropdown.entry.js +4 -4
  186. package/dist/esm/dda-footer.entry.js +3 -3
  187. package/dist/esm/dda-header.entry.js +208 -23
  188. package/dist/esm/dda-home-banner.entry.js +4 -4
  189. package/dist/{dda/dda-breadcrumb.entry.js → esm/dda-home-carousel.entry.js} +16 -30
  190. package/dist/esm/dda-horizontal-stepper.entry.js +3 -3
  191. package/dist/esm/dda-input.entry.js +3 -3
  192. package/dist/esm/dda-link-button_2.entry.js +6 -6
  193. package/dist/esm/dda-number-field.entry.js +3 -3
  194. package/dist/esm/dda-pagination.entry.js +4 -4
  195. package/dist/esm/dda-phonefield.entry.js +3 -3
  196. package/dist/esm/dda-progressbar.entry.js +3 -3
  197. package/dist/esm/dda-range-slider.entry.js +3 -3
  198. package/dist/esm/dda-search-input.entry.js +3 -3
  199. package/dist/esm/dda-segmented-tabs.entry.js +5 -5
  200. package/dist/esm/dda-select.entry.js +4 -6
  201. package/dist/esm/dda-sticky-footer.entry.js +41 -4
  202. package/dist/esm/dda-tabs.entry.js +4 -4
  203. package/dist/esm/dda-textarea.entry.js +1351 -16189
  204. package/dist/esm/dda-toggle.entry.js +3 -3
  205. package/dist/esm/dda-tooltip.entry.js +3 -3
  206. package/dist/esm/dda-ui-card.entry.js +3 -3
  207. package/dist/esm/dda-vertical-stepper.entry.js +2 -2
  208. package/dist/esm/dda.js +4 -31
  209. package/dist/esm/{index-CI_UcUy5.js → index-BnrqwGTj.js} +1 -1
  210. package/dist/esm/index.js +0 -10
  211. package/dist/esm/loader.js +3 -3
  212. package/dist/esm/parse-json-prop-CvcFE821.js +36 -0
  213. package/dist/types/components/dda-banner-card/dda-banner-card.d.ts +25 -0
  214. package/dist/types/components/dda-header/dda-header.d.ts +114 -4
  215. package/dist/types/components/dda-header/dda-header.stories.d.ts +187 -0
  216. package/dist/types/components/dda-header/nav-model.d.ts +19 -0
  217. package/dist/types/components/dda-home-carousel/dda-home-carousel.d.ts +29 -0
  218. package/dist/types/components/dda-home-carousel/dda-home-carousel.stories.d.ts +20 -0
  219. package/dist/types/components/dda-sticky-footer/dda-sticky-footer.d.ts +70 -1
  220. package/dist/types/components/dda-sticky-footer/dda-sticky-footer.stories.d.ts +4 -0
  221. package/dist/types/components.d.ts +726 -11
  222. package/dist/types/utils/parse-json-prop.d.ts +1 -0
  223. package/package.json +4 -2
  224. package/dist/cjs/dda-link-button.cjs.entry.js +0 -51
  225. package/dist/cjs/dda-radiobutton.cjs.entry.js +0 -27
  226. package/dist/cjs/index-DXyiIgGK.js +0 -4637
  227. package/dist/components/dda-button2.js +0 -80
  228. package/dist/components/dda-link-button2.js +0 -81
  229. package/dist/components/dda-radiobutton2.js +0 -54
  230. package/dist/components/dda-tooltip2.js +0 -70
  231. package/dist/components/index2.js +0 -4622
  232. package/dist/components/p-CZO9Eawo.js +0 -1
  233. package/dist/components/unique-id.js +0 -12
  234. package/dist/dda/dda-accordion.entry.js +0 -31
  235. package/dist/dda/dda-alert.entry.js +0 -57
  236. package/dist/dda/dda-attach-file.entry.js +0 -102
  237. package/dist/dda/dda-avatar.entry.js +0 -70
  238. package/dist/dda/dda-banner.entry.js +0 -30
  239. package/dist/dda/dda-button.entry.js +0 -47
  240. package/dist/dda/dda-checkbox.entry.js +0 -27
  241. package/dist/dda/dda-chip.entry.js +0 -25
  242. package/dist/dda/dda-creditcard-field.entry.js +0 -94
  243. package/dist/dda/dda-dropdown.entry.js +0 -75
  244. package/dist/dda/dda-footer.entry.js +0 -34
  245. package/dist/dda/dda-header.entry.js +0 -282
  246. package/dist/dda/dda-home-banner.entry.js +0 -208
  247. package/dist/dda/dda-horizontal-stepper.entry.js +0 -39
  248. package/dist/dda/dda-input.entry.js +0 -56
  249. package/dist/dda/dda-link-button.entry.js +0 -49
  250. package/dist/dda/dda-number-field.entry.js +0 -86
  251. package/dist/dda/dda-pagination.entry.js +0 -86
  252. package/dist/dda/dda-phonefield.entry.js +0 -271
  253. package/dist/dda/dda-progressbar.entry.js +0 -30
  254. package/dist/dda/dda-radiobutton.entry.js +0 -25
  255. package/dist/dda/dda-range-slider.entry.js +0 -55
  256. package/dist/dda/dda-search-input.entry.js +0 -63
  257. package/dist/dda/dda-segmented-tabs.entry.js +0 -96
  258. package/dist/dda/dda-select.entry.js +0 -183
  259. package/dist/dda/dda-sticky-footer.entry.js +0 -61
  260. package/dist/dda/dda-textarea.entry.js +0 -31241
  261. package/dist/dda/dda-toggle.entry.js +0 -25
  262. package/dist/dda/dda-ui-card.entry.js +0 -41
  263. package/dist/dda/dda-vertical-stepper.entry.js +0 -41
  264. package/dist/dda/index-CFIwfRqf.js +0 -4622
  265. package/dist/dda/p-87d647e7.entry.js +0 -1
  266. package/dist/dda/p-9541e108.entry.js +0 -1
  267. package/dist/dda/p-CI_UcUy5.js +0 -2
  268. package/dist/dda/p-c0da1e14.entry.js +0 -1
  269. package/dist/dda/p-c5ebf7df.entry.js +0 -1
  270. package/dist/dda/p-ea1720d2.entry.js +0 -1
  271. package/dist/dda/unique-id-B-I003EB.js +0 -12
  272. package/dist/esm/dda-link-button.entry.js +0 -49
  273. package/dist/esm/dda-radiobutton.entry.js +0 -25
  274. package/dist/esm/index-CFIwfRqf.js +0 -4622
@@ -1,4 +1,74 @@
1
- import { r as registerInstance, d as createEvent, h, e as getElement } from './index-CFIwfRqf.js';
1
+ import { r as registerInstance, c as createEvent, h, a as getElement } from './index-BnrqwGTj.js';
2
+ import { p as parseJsonProp } from './parse-json-prop-CvcFE821.js';
3
+
4
+ const clean = (value) => (typeof value === 'string' ? value.trim() : '');
5
+ const optional = (value) => clean(value) || undefined;
6
+ const isPlainObject = (value) => Boolean(value) && typeof value === 'object' && !Array.isArray(value);
7
+ // An array field (children, mega-menu columns/items, 5.x subMenu) may contain a bad entry (null, a
8
+ // number, ...) even when the field itself is a valid array. Each bad entry is skipped, with one
9
+ // warning, rather than reaching a raw.<prop> access on a non-object and throwing.
10
+ const asArray = (value) => {
11
+ if (!Array.isArray(value))
12
+ return [];
13
+ return value.filter(item => {
14
+ if (isPlainObject(item))
15
+ return true;
16
+ console.warn('quick-links: an item is not an object; it is ignored.');
17
+ return false;
18
+ });
19
+ };
20
+ const isLegacy = (raw) => raw.headerMenuLabel !== undefined || raw.type !== undefined;
21
+ function legacyItem(raw) {
22
+ const children = asArray(raw.children);
23
+ const base = {
24
+ label: clean(raw.headerMenuLabel),
25
+ href: clean(raw.url) || '#',
26
+ active: raw.active === 'true' || raw.active === true,
27
+ id: optional(raw.headerMenuId),
28
+ description: optional(raw.description),
29
+ icon: optional(raw.quickLinksIcon),
30
+ kind: 'link',
31
+ submenuTitle: optional(raw.defaultSubMenuTitle),
32
+ children: [],
33
+ columns: [],
34
+ };
35
+ if (children.length === 0)
36
+ return base;
37
+ if (raw.type === 'dda_main_megamenu') {
38
+ return Object.assign(Object.assign({}, base), { kind: 'mega', columns: children.map(col => ({
39
+ title: optional(col.title),
40
+ links: asArray(col.items).map(link => {
41
+ var _a;
42
+ return ({
43
+ label: clean(link.headerMenuLabel),
44
+ href: clean(link.url) || '#',
45
+ description: optional(link.description),
46
+ // 3.x always showed an icon in the mega menu, defaulting to 'sentiment_satisfied' when
47
+ // none was set; the 5.x subMenu shape never had a default, so this fallback stays scoped
48
+ // to the 3.x mapping (see modernItem below, which leaves icon undefined).
49
+ icon: (_a = optional(link.quickLinksIcon)) !== null && _a !== void 0 ? _a : 'sentiment_satisfied',
50
+ active: false,
51
+ });
52
+ }),
53
+ })) });
54
+ }
55
+ return Object.assign(Object.assign({}, base), { kind: 'dropdown', children: children.map(legacyItem) });
56
+ }
57
+ function modernItem(raw) {
58
+ const sub = asArray(raw.subMenu);
59
+ const base = { label: clean(raw.label), href: clean(raw.href) || '#', active: false, kind: 'link', children: [], columns: [] };
60
+ if (sub.length === 0)
61
+ return base;
62
+ return Object.assign(Object.assign({}, base), { kind: 'mega', columns: [
63
+ {
64
+ title: optional(raw.menuLabel),
65
+ links: sub.map(link => ({ label: clean(link.title), href: clean(link.href) || '#', description: optional(link.description), icon: optional(link.icon), active: false })),
66
+ },
67
+ ] });
68
+ }
69
+ function normalizeQuickLinks(value) {
70
+ return asArray(parseJsonProp(value, 'quick-links')).map(raw => (isLegacy(raw) ? legacyItem(raw) : modernItem(raw)));
71
+ }
2
72
 
3
73
  const ddaHeaderCss = () => `:root{scroll-padding-top:170px}@media screen and (max-width: 767px){:root{scroll-padding-top:100px}}:root.dda-scroll-lock{overflow:hidden;scrollbar-gutter:stable}:root.dda-scroll-lock body{overflow:hidden}`;
4
74
 
@@ -7,23 +77,31 @@ let headerInstanceCount = 0;
7
77
  const DdaHeader = class {
8
78
  constructor(hostRef) {
9
79
  registerInstance(this, hostRef);
10
- this.languageSwitch = createEvent(this, "languageSwitch", 7);
11
- this.smTextSize = createEvent(this, "smTextSize", 7);
12
- this.baseTextSize = createEvent(this, "baseTextSize", 7);
13
- this.lgTextSize = createEvent(this, "lgTextSize", 7);
14
- this.normalContrast = createEvent(this, "normalContrast", 7);
15
- this.blindContrast = createEvent(this, "blindContrast", 7);
16
- this.redContrast = createEvent(this, "redContrast", 7);
17
- this.greenContrast = createEvent(this, "greenContrast", 7);
18
- this.searchSubmit = createEvent(this, "searchSubmit", 7);
80
+ this.accessibilityMenuToggle = createEvent(this, "accessibilitymenufunctionality");
81
+ this.searchInput = createEvent(this, "searchfunctionality");
82
+ this.languageSwitch = createEvent(this, "languageSwitch");
83
+ this.smTextSize = createEvent(this, "smTextSize");
84
+ this.baseTextSize = createEvent(this, "baseTextSize");
85
+ this.lgTextSize = createEvent(this, "lgTextSize");
86
+ this.normalContrast = createEvent(this, "normalContrast");
87
+ this.blindContrast = createEvent(this, "blindContrast");
88
+ this.redContrast = createEvent(this, "redContrast");
89
+ this.greenContrast = createEvent(this, "greenContrast");
90
+ this.searchSubmit = createEvent(this, "searchSubmit");
19
91
  /** Link URL of the first logo in the header and the side menu. Default: `/`. */
20
92
  this.firstLogoHref = '/';
21
93
  /** Link URL of the second logo on desktop and mobile. Default: `/`. */
22
94
  this.secondLogoHref = '/';
95
+ /** Hides the "other" side-menu links and their title. Default: `false`. */
96
+ this.hideOtherMenu = false;
97
+ /** The contrast option shown as selected. The header updates it when the user picks an option. Default: `normal`. */
98
+ this.selected_contrast = 'normal';
23
99
  /** Hides the Login link in the desktop toolbar and the side menu. */
24
100
  this.hide_login = false;
25
101
  /** `lang` attribute of the language buttons, the language of `language_text`. Default: `ar`. */
26
102
  this.language_lang = 'ar';
103
+ /** When `false`, the header renders no accessibility panel; the buttons only emit `accessibilitymenufunctionality`, so the page can open its own panel. Default: `true`. */
104
+ this.usePredesignedAccessibilityMenu = true;
27
105
  this.isMenuOpen = false;
28
106
  this.isSubMenuOpen = false;
29
107
  this.isSideSubMenuOpen = false;
@@ -36,6 +114,9 @@ const DdaHeader = class {
36
114
  this.menu_button_label = 'Menu';
37
115
  this.openMenus = {};
38
116
  this.activeMenuIndex = null;
117
+ this.activeSubIndex = null;
118
+ /** Offset (px) from the top of the open dropdown to the opener of its third-level panel. */
119
+ this.activeSubTop = 0;
39
120
  this.toggleEscapeKey = (event) => {
40
121
  if (event.key === 'Escape') {
41
122
  if (this.isSearchOpen) {
@@ -46,6 +127,7 @@ const DdaHeader = class {
46
127
  this.isSubMenuOpen = false;
47
128
  this.isSideSubMenuOpen = false;
48
129
  this.activeMenuIndex = null;
130
+ this.activeSubIndex = null;
49
131
  }
50
132
  };
51
133
  this.handleSearchSubmit = (event) => {
@@ -56,6 +138,7 @@ const DdaHeader = class {
56
138
  input.focus();
57
139
  return;
58
140
  }
141
+ this.searchInput.emit(query);
59
142
  const searchEvent = this.searchSubmit.emit({ query });
60
143
  // Without a results URL there is nowhere to go; a cancelled event means the app routes itself.
61
144
  if (searchEvent.defaultPrevented || !this.search_action) {
@@ -95,11 +178,15 @@ const DdaHeader = class {
95
178
  };
96
179
  this.handleOutsideMegaMenuClick = (event) => {
97
180
  if (this.activeMenuIndex !== null) {
98
- const megaMenu = document.querySelector('.megamenu-content');
99
- const isClickInsideMegaMenu = megaMenu && megaMenu.contains(event.target);
100
- const isClickOnToggleLink = event.target.closest('.showSub');
101
- if (!isClickInsideMegaMenu && !isClickOnToggleLink) {
181
+ // A click anywhere inside the top-level menu is not an "outside" click: the mega-menu
182
+ // content and the 3.x dropdown's second/third levels both render inside their <li>, which
183
+ // is inside .dda-mega-menu, so this covers every open level without naming a specific one
184
+ // (naming ".megamenu-content" alone, for example, always matches when any mega item exists,
185
+ // open or not, and would never let the 3.x dropdown branch be reached).
186
+ const isClickInsideMenu = event.target.closest('.dda-mega-menu');
187
+ if (!isClickInsideMenu) {
102
188
  this.activeMenuIndex = null;
189
+ this.activeSubIndex = null;
103
190
  }
104
191
  }
105
192
  };
@@ -129,36 +216,46 @@ const DdaHeader = class {
129
216
  this.isMenuOpen = !this.isMenuOpen;
130
217
  };
131
218
  this.toggleSubMenu = (index, event) => {
132
- // this.isSubMenuOpen = !this.isSubMenuOpen;
133
219
  if (event)
134
220
  event.preventDefault();
135
221
  this.activeMenuIndex = this.activeMenuIndex === index ? null : index;
222
+ this.activeSubIndex = null;
136
223
  };
137
224
  this.toggleAccessibilty = () => {
138
- this.isAccessibiltyOpen = !this.isAccessibiltyOpen;
225
+ if (this.usePredesignedAccessibilityMenu) {
226
+ this.isAccessibiltyOpen = !this.isAccessibiltyOpen;
227
+ }
228
+ this.accessibilityMenuToggle.emit();
139
229
  };
140
230
  this.languagehandler = () => {
141
231
  this.languageSwitch.emit();
142
232
  };
143
233
  this.smTexthandler = () => {
234
+ this.selected_text_size = 'small';
144
235
  this.smTextSize.emit();
145
236
  };
146
237
  this.baseTexthandler = () => {
238
+ this.selected_text_size = 'normal';
147
239
  this.baseTextSize.emit();
148
240
  };
149
241
  this.lgTexthandler = () => {
242
+ this.selected_text_size = 'large';
150
243
  this.lgTextSize.emit();
151
244
  };
152
245
  this.normalContrasthandler = () => {
246
+ this.selected_contrast = 'normal';
153
247
  this.normalContrast.emit();
154
248
  };
155
249
  this.blindContrasthandler = () => {
250
+ this.selected_contrast = 'colorblind';
156
251
  this.blindContrast.emit();
157
252
  };
158
253
  this.redContrasthandler = () => {
254
+ this.selected_contrast = 'redweakness';
159
255
  this.redContrast.emit();
160
256
  };
161
257
  this.greenContrasthandler = () => {
258
+ this.selected_contrast = 'greenweakness';
162
259
  this.greenContrast.emit();
163
260
  };
164
261
  this.renderSubMenu = (subMenu, parentLi) => {
@@ -235,7 +332,7 @@ const DdaHeader = class {
235
332
  return [
236
333
  h("label", { htmlFor: id, class: "visually-hidden" }, this.searchText || 'Search'),
237
334
  h("i", { class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "search"),
238
- h("input", { name: this.search_input_name || 'q', type: "text", id: id, placeholder: this.searchText || 'Search', enterkeyhint: "search", autocomplete: "off", ref: ref }),
335
+ h("input", { name: this.search_input_name || 'q', type: "text", id: id, placeholder: this.text(this.search_input_placeholder, this.searchText || 'Search'), enterkeyhint: "search", autocomplete: "off", ref: ref }),
239
336
  ];
240
337
  }
241
338
  // The transparent style (<body class="transparent">) shows only at the top of the page.
@@ -252,15 +349,96 @@ const DdaHeader = class {
252
349
  return [];
253
350
  }
254
351
  }
352
+ // Text-prop rule: an absent attribute uses the English default; an empty one means "show nothing".
353
+ text(value, fallback) {
354
+ return value === undefined || value === null ? fallback : value;
355
+ }
356
+ // The three columns of the accessibility panel. The desktop panel and the side-menu panel show
357
+ // the same content; only the radio group and ids differ, so both panels stay independent forms.
358
+ renderAccessibilityColumns(variant) {
359
+ var _a;
360
+ const suffix = variant === 'mobile' ? 'Mobile' : '';
361
+ const group = variant === 'mobile' ? 'themeselectionmobile' : 'themeselection';
362
+ const contrastTitle = this.text(this.contrast_title, 'Contrast');
363
+ const contrastDescription = this.text(this.contrast_description, 'Select your preferred contrast setting');
364
+ const readSpeakerLink = this.readSpeakerLink || this.read_speaker_link;
365
+ const screenReaderTitle = this.text(this.screen_reader_title, 'Screen Reader');
366
+ const screenReaderDescription = this.text(this.screen_reader_description, 'Listen to the content of the page by clicking play or listen');
367
+ const textSizeTitle = this.text(this.text_size_title, 'Text Size');
368
+ const textSizeDescription = this.text(this.text_size_description, 'Use the buttons below to increase or decrease the text size');
369
+ const options = [
370
+ { value: 'normal', label: this.text((_a = this.contrast_normal_text) !== null && _a !== void 0 ? _a : this.contrast_noraml_text, 'Normal'), id: 'Normal', handler: this.normalContrasthandler },
371
+ { value: 'colorblind', label: this.text(this.contrast_color_blind_text, 'Colours Blind'), id: 'ColoursBlind', handler: this.blindContrasthandler },
372
+ { value: 'redweakness', label: this.text(this.contrast_red_weakness_text, 'Red Weakness'), id: 'RedWeakness', handler: this.redContrasthandler },
373
+ { value: 'greenweakness', label: this.text(this.contrast_green_weakness_text, 'Green Weakness'), id: 'GreenWeakness', handler: this.greenContrasthandler },
374
+ ];
375
+ const sizes = [
376
+ { value: 'normal', label: 'A', handler: this.baseTexthandler },
377
+ { value: 'large', label: 'A+', handler: this.lgTexthandler },
378
+ { value: 'small', label: 'A-', handler: this.smTexthandler },
379
+ ];
380
+ return (h("div", { class: "dda-row" }, h("div", { class: "dda-col-md-4 dda-accessibility-item" }, contrastTitle && h("h2", { class: "dda-fs-body-lg dda-fw-700 mb-1" }, contrastTitle), h("form", null, h("fieldset", { class: "dda-theme-list" }, contrastDescription && (h("legend", null, h("p", { class: "mb-3" }, contrastDescription))), options.map(option => option.label ? (h("dda-radiobutton", { title_text: option.label, checked: this.selected_contrast === option.value, size: "sm", variants: "normal", supporting: "", group_name: group, input_id: `${option.id}${suffix}`, custom_class: "", component_mode: "", onClick: option.handler })) : null)))), readSpeakerLink && (h("div", { class: "dda-col-md-4 dda-accessibility-item" }, screenReaderTitle && h("h2", { class: "dda-fs-body-lg dda-fw-700 mb-1" }, screenReaderTitle), screenReaderDescription && h("p", { class: "mb-3" }, screenReaderDescription), h("div", { class: "rs_skip rsbtn rs_preserve", id: `readspeaker_button1${suffix}` }, h("a", { href: readSpeakerLink, rel: "nofollow", class: "rsbtn_play circle readspeaker", accessKey: variant === 'desktop' ? 'L' : undefined, "aria-label": this.text(this.screen_reader_link_label, 'Listen to this page using ReadSpeaker') }, h("i", { class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "volume_up"))))), h("div", { class: "dda-col-md-4 dda-accessibility-item" }, textSizeTitle && h("h2", { class: "dda-fs-body-lg dda-fw-700 mb-1" }, textSizeTitle), textSizeDescription && h("p", { class: "mb-3" }, textSizeDescription), h("div", { class: "d-flex dda-gap-4 dda-text-size-buttons" }, sizes.map(size => (h("dda-button", { button_color: this.selected_text_size === size.value ? 'default-primary' : 'default-secondary', icon_button_shape: "circle", custom_class: "", size: "lg", onClick: size.handler }, size.label)))))));
381
+ }
382
+ // A tooltip must have text, so an empty tooltip attribute falls back to the default.
383
+ tooltip(value, fallback) {
384
+ return value ? value : fallback;
385
+ }
386
+ get loginLabel() {
387
+ return this.text(this.loginText, 'Login');
388
+ }
389
+ // 3.x hid Login when login-text was empty; hide_login is the 5.x switch.
390
+ get showLogin() {
391
+ return !this.hide_login && this.loginLabel !== '';
392
+ }
393
+ get languageLabel() {
394
+ return this.text(this.language_text, 'العربية');
395
+ }
396
+ renderAccessibilityButton(variant) {
397
+ const id = this.accessibility_button_id ? (variant === 'desktop' ? this.accessibility_button_id : `${this.accessibility_button_id}-sidemenu`) : undefined;
398
+ const iconClass = this.accessibility_button_icon_family || 'material-icons material-symbols-outlined';
399
+ const buttonClass = variant === 'desktop' ? 'tool-btn dda-btn btn-color-onsurface-secondary btn-size-sm btn-shape-circle accessibility-btn' : 'tool-btn accessibility-btn';
400
+ return (h("button", { id: id, name: variant === 'desktop' ? this.toggle_accessibility_button_name : this.accessibility_button_name, class: buttonClass, type: "button", "aria-expanded": this.usePredesignedAccessibilityMenu ? (this.isAccessibiltyOpen ? 'true' : 'false') : undefined, onClick: this.toggleAccessibilty }, h("i", { class: iconClass, "aria-hidden": "true" }, this.accessibility_button_icon_name || 'accessibility'), h("span", { class: "visually-hidden" }, this.text(this.accessibility_button_text, 'Accessibility'))));
401
+ }
402
+ renderDropdown(item, index) {
403
+ const id = this.menuPanelId(index);
404
+ // The third-level panels are siblings of the <ul>, not children of its <li> items. The <ul>
405
+ // scrolls (max-height), and a scroll container clips an absolutely positioned child on both
406
+ // axes, so a fly-out inside it cannot show. The open panel is aligned with its opener.
407
+ return (h("div", { id: id, class: { 'dda-default-submenu': true, 'is-visible': this.activeMenuIndex === index } }, h("ul", null, item.children.map((child, subIndex) => {
408
+ const hasSub = child.kind === 'dropdown';
409
+ const subId = `${id}-${subIndex}`;
410
+ const isOpen = this.activeSubIndex === subIndex;
411
+ return (h("li", { key: subIndex }, h("a", { id: child.id, href: hasSub ? '#' : child.href, class: { 'has-submenu': hasSub, active: isOpen || child.active }, "aria-expanded": hasSub ? String(isOpen) : undefined, "aria-controls": hasSub ? subId : undefined, "aria-current": child.active && !hasSub ? 'page' : undefined, onClick: (event) => {
412
+ if (!hasSub)
413
+ return;
414
+ event.preventDefault();
415
+ const opener = event.currentTarget;
416
+ const panel = opener.closest('.dda-default-submenu');
417
+ if (panel)
418
+ this.activeSubTop = opener.getBoundingClientRect().top - panel.getBoundingClientRect().top;
419
+ this.activeSubIndex = isOpen ? null : subIndex;
420
+ } }, child.label)));
421
+ })), item.children.map((child, subIndex) => {
422
+ if (child.kind !== 'dropdown')
423
+ return null;
424
+ const isOpen = this.activeSubIndex === subIndex;
425
+ return (h("div", { key: `sub-${subIndex}`, id: `${id}-${subIndex}`, class: { 'dda-default-subsubmenu': true, 'is-visible': isOpen }, style: isOpen ? { top: `${this.activeSubTop}px` } : undefined }, h("div", { class: "dda-default-subsubmenu-content" }, h("span", { class: "dda-submenu-title" }, child.submenuTitle || child.label), h("ul", null, child.children.map((leaf, leafIndex) => (h("li", { key: leafIndex }, h("a", { id: leaf.id, href: leaf.href, "aria-current": leaf.active ? 'page' : undefined }, leaf.label))))))));
426
+ })));
427
+ }
428
+ /** The id of the dropdown or mega panel that top-level item `index` opens. */
429
+ menuPanelId(index) {
430
+ return `${this.searchId}-submenu-${index}`;
431
+ }
432
+ renderMega(item, index) {
433
+ return (h("div", { id: this.menuPanelId(index), class: `megamenu-content ${this.activeMenuIndex === index ? 'showSubMenu' : ''}`, style: { display: this.activeMenuIndex === index ? 'block' : 'none' } }, h("div", { class: "megamenu-item dda-container" }, h("div", { class: "dda-row" }, item.columns.map((column, columnIndex) => (h("div", { class: "dda-col-md-3", key: columnIndex }, column.title && h("h3", { class: "mega-menu-title" }, column.title), h("ul", null, column.links.map((link, linkIndex) => (h("li", { key: linkIndex }, h("a", { class: "megamenu-link", href: link.href }, h("span", { class: "dda-btn btn-color-onsurface-secondary btn-size-sm icon-btn-default" }, h("i", { class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, link.icon)), h("span", { class: "text-wrap" }, h("span", { class: "title-text dda-fs-body-lg dda-fw-700" }, link.label), link.description && h("span", { class: "dda-fs-tagline-lg dda-fw-400" }, link.description))))))))))), h("button", { name: "close-mega-menu", class: "close-btn close_mega-menu", "aria-label": "Close Sidebar", onClick: () => (this.activeMenuIndex = null) }, h("i", { class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "close")))));
434
+ }
255
435
  render() {
256
436
  const sideMenuItems = this.parseJsonArray(this.sideMenuItems);
257
- const quickLinks = this.parseJsonArray(this.quickLinks);
258
- const setActiveMenuIndex = (index) => {
259
- this.activeMenuIndex = index;
260
- };
437
+ const quickLinks = normalizeQuickLinks(this.quickLinks);
438
+ const otherMenuItems = parseJsonProp(this.otherMenuItems, 'other-menu-items');
261
439
  // The transparent style is opt-in at page level (<body class="transparent">);
262
440
  // CSS shows the white or colored logo to match.
263
- return (h("header", { key: '43166a6b01154f028167b441653d529995f70ddf', class: "dda-header" }, h("div", { key: 'a297117e6057f9629884c39db1c3babdeabf542d', class: "dda-head-logo" }, h("a", { key: '0214471f1b3afbf9ddac97790d36e224430d9f29', href: this.firstLogoHref, class: "govt-logo" }, h("img", { key: '14fc6908a033e635f12f678b0cf3f0eb57656da2', class: "logo-colored", src: this.firstLogoSrc, alt: this.firstLogoAlt }), h("img", { key: 'f44df6db1a4c24ade54f38bda4e693007ba32643', class: "logo-white", src: this.firstLogoWhiteSrc || this.firstLogoSrc, alt: this.firstLogoAlt })), h("a", { key: '875d0b2b37fd65c239e8727b95b8e430d578146c', href: this.secondLogoHref, class: "entt-logo" }, h("img", { key: '65e49ed851a16be54d97827f7086f04939508b68', class: "logo-colored", src: this.secondLogoSrc, alt: this.secondLogoAlt }), h("img", { key: '2fdd1ec129ab3d3c2647ae009f3573140bf5b642', class: "logo-white", src: this.secondLogoWhiteSrc || this.secondLogoSrc, alt: this.secondLogoAlt }))), h("div", { key: 'b8b18a8497c6942697876b7ca0d6d00de58bc9c5', class: "dda-menu-container" }, h("div", { key: 'b43c4406281640978e3396c91cd6de75122eeb5a', class: "dda-main-navigation" }, h("div", { key: 'b1209cd2a8d120e996d69069985ba30c800c2097', class: `dda-menu-overley ${this.isMenuOpen ? 'show-overley' : ''}`, onClick: this.toggleMenu }), h("div", { key: '175e76801f7075751034c57b686957f830920858', class: "hamburger-menu", onClick: this.toggleMenu }, h("dda-tooltip", { key: '789d7b7454d9efc21daf581c4c925dc5c4cf5d56', title_text: "Menu", position: "top", class: "d-block" }, h("button", { key: '0fadce5552c1b6887485f79141579f03addbeeff', type: "button", class: "hamburger-menu-btn", name: this.hamburger_menu_button_name }, h("span", { key: 'da32b9b73992ddf8b628ff5a59c0983ea232e168', class: "hamburger-line" }), h("span", { key: 'dd5183d61830656cfbb62d153601c9f1b9ce3e27', class: "hamburger-menu-text" }, this.menu_button_label)))), h("div", { key: '35bb4d17184d78cc82f10575c405671d2399c083', class: "dda-sidemenu", style: { display: this.isMenuOpen ? 'block' : '', insetInlineStart: this.isMenuOpen ? '0px' : '' } }, h("div", { key: '8b872eedae11463b79109b86aaebe79049417a0a', class: "dda-sidemenu-content" }, h("p", { key: 'b60ca2503ec258a0a2c929e58a2b60ad6a66be28', class: "dda-side-nav-title" }, "Quick Links"), h("ul", { key: '97a5b237524a897a1dd27cc35dc82f2978b7f88c', class: "main_side_menu" }, sideMenuItems.map((menu, index) => {
441
+ return (h("header", { key: '32433ee95f1ae35e0f74ccb5d6b096f589695e98', class: "dda-header" }, h("div", { key: '9ad5e7bae10b14edb5e4b425a398f5558d5f9235', class: "dda-head-logo" }, h("a", { key: 'eb6b3a1a8a251b36403032991208c6851fe13c8f', href: this.firstLogoHref, class: "govt-logo" }, h("img", { key: 'ad7ac43b73cf44d723741de98868bad4dd851671', class: "logo-colored", src: this.firstLogoSrc, alt: this.firstLogoAlt }), h("img", { key: '18ea73459cb1872774664b5f462d5ef62aa6797e', class: "logo-white", src: this.firstLogoWhiteSrc || this.firstLogoSrc, alt: this.firstLogoAlt })), h("a", { key: '0eefe4a0f33ffdf3985afae932e66913fd13a8f3', href: this.secondLogoHref, class: "entt-logo" }, h("img", { key: 'df4932bc5a0f04aeedbc96042eaa45bb8618f6be', class: "logo-colored", src: this.secondLogoSrc, alt: this.secondLogoAlt }), h("img", { key: 'ba7c80b44d063cae03ba9383791e6fd3130847e7', class: "logo-white", src: this.secondLogoWhiteSrc || this.secondLogoSrc, alt: this.secondLogoAlt }))), h("div", { key: 'f65d90eb129e728b5e2765dc56edb7f810cdfd35', class: "dda-menu-container" }, h("div", { key: '0350e48d6b954849223565e1bf7f12ae7412186d', class: "dda-main-navigation" }, h("div", { key: '94b7d46db89ebfdaf56e0e42b7e1f169ee5c0ace', class: `dda-menu-overley ${this.isMenuOpen ? 'show-overley' : ''}`, onClick: this.toggleMenu }), h("div", { key: 'f9f95ecec3c42ebcf2b19f648aa58e66992d7639', class: "hamburger-menu", onClick: this.toggleMenu }, h("dda-tooltip", { key: 'c54f460c9594e0d6419d6be238cef43cf36131d0', title_text: this.tooltip(this.menu_button_label, 'Menu'), position: "top", class: "d-block" }, h("button", { key: '5eed1a83dddc0611d452e5b592ce0a94aa4c41e0', type: "button", class: "hamburger-menu-btn", name: this.hamburger_menu_button_name }, h("span", { key: 'aed42c584a5bbcc1a06e932d613137d3aea6ba34', class: "hamburger-line" }), h("span", { key: 'a77cbf53977e5c6347a3847f2199487870a9dc9e', class: "hamburger-menu-text" }, this.menu_button_label)))), h("div", { key: '8da7f3edac3d3ad3cc73e29b6aa794c18b2d4199', class: "dda-sidemenu", style: { display: this.isMenuOpen ? 'block' : '', insetInlineStart: this.isMenuOpen ? '0px' : '' } }, h("div", { key: '444bd4291f474d6f50d47e1aab4a4a275d0a5028', class: "dda-sidemenu-content" }, this.text(this.sideMainMenuTitle, 'Quick Links') && h("p", { key: '0794f5ea9a0ea1750b5fb7d3f84002368d498177', class: "dda-side-nav-title" }, this.text(this.sideMainMenuTitle, 'Quick Links')), h("ul", { key: 'bc0f6a674f6a9aa5ce1678a5942147e615393ee9', class: "main_side_menu" }, sideMenuItems.map((menu, index) => {
264
442
  const currentIndex = `menu-${index}`;
265
443
  return (h("li", { key: currentIndex }, h("a", { href: menu.href, class: menu.subMenu && menu.subMenu.length > 0 ? 'showSub' : '', onClick: (e) => {
266
444
  if (menu.subMenu && menu.subMenu.length > 0) {
@@ -268,7 +446,14 @@ const DdaHeader = class {
268
446
  this.toggleSidebarSubMenu(currentIndex);
269
447
  }
270
448
  } }, menu.label), this.renderSubMenu(menu.subMenu, currentIndex)));
271
- }))), h("div", { key: '2068b95884e81e7d45fa6d172bceaf8e9fcf3a5f', class: "dda-sidemenu-bottom" }, h("div", { key: 'f8fad40c7a6bcd89445caff8312b1d75446a2c39', class: "dda-sidemenu-gov-logo" }, h("a", { key: 'fd3cf7324d60503323536756c46a3e2269dd76be', href: this.firstLogoHref, class: "govt-logo mb-2" }, h("img", { key: '0c072aea99471241c4beed44aa45a783487109d1', class: "", src: this.firstLogoSrc, alt: this.firstLogoAlt }))), h("div", { key: 'd5229b78918d3f5141bdd6508bc9290dd82cff2e', class: "dda-toolbar-menu-sidemenu" }, h("ul", { key: 'c3a5fea233575cc41086f006d83c121637249ffa' }, h("li", { key: '05b8380b1bc2904dde6325c75e505c791d80d3b9' }, h("button", { key: '77bf98403406f1805e7c124868697ce93fa909c1', name: this.accessibility_button_name, class: "tool-btn accessibility-btn", type: "button", "aria-expanded": this.isAccessibiltyOpen ? 'true' : 'false', onClick: this.toggleAccessibilty }, h("i", { key: 'ba8ac2e906459c4f1146b8914fee17bd1e61bd31', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "accessibility"), h("span", { key: '40fdbbf2e61ab20d38b7393367b0307dbc79f653', class: "visually-hidden" }, "Accessibility"))), h("li", { key: 'e0967bfcee2d3cfced038afcd8d71f9b68b1c6c2' }, h("button", { key: '15b7f3fd0f8a88bf1e5b55c9193af6ce2f562766', name: this.language_button_name, class: "tool-btn", type: "button", lang: this.language_lang, onClick: this.languagehandler }, this.language_text || 'العربية')), !this.hide_login && (h("li", { key: '344c7ea8f9f39fc6b9186fae9f9d0e2a29812bd0' }, h("dda-link-button", { key: 'ddd23793936494095f92199ca8aa3b6542e057ee', button_color: "onsurface-secondary", start_icon: this.loginIcon || "sentiment_satisfied", custom_class: "tool-btn", href: this.loginLink, button_shape: "circle", size: "sm" }, this.loginText || "Login")))))), h("button", { key: 'c98eded45379cc3a5329754dbc20ee60b6b25613', name: this.close_menu_button_name, class: "close-btn side-nav-close-btn", "aria-label": "Close Sidebar", onClick: this.toggleMenu }, h("i", { key: '4e9757b2a1de7194d952caffefdf312a05b71f32', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "close")), h("div", { key: 'b0469e9a46224bfcd216cff235fead2897f50d2b', class: "dda-accessibility hide-accessibility mobile-accessibility", style: { display: this.isAccessibiltyOpen ? 'block' : 'none' } }, h("div", { key: '93defee85dde89cfa6e67e6b3ca370353c5e6222', class: "dda-row" }, h("div", { key: 'c481f64ad8865cfca1f5b0bc0354172aeedaabcd', class: "dda-col-md-4 dda-accessibility-item" }, h("h2", { key: '73937142ec896b3f45dad228c2877835162b79ac', class: "dda-fs-body-lg dda-fw-700 mb-1" }, "Contrast"), h("form", { key: '16ff3eb668308d3de610b7d31fe09703f80fdf92' }, h("fieldset", { key: 'e60d6ee03d81c4227083d0af770a169612f287d3', class: "dda-theme-list" }, h("legend", { key: '5e3bc4f036fd51720049c5f0443ae63717b6f8dc' }, h("p", { key: '374381cf5812b6f71abba5ff320b061b80a3f62d', class: "mb-3" }, "Select your preferred contrast setting ")), h("dda-radiobutton", { key: 'f51398e186eec4a8e432d54fa04b56768614889e', title_text: "Normal", checked: true, size: "sm", variants: "normal", supporting: "", group_name: "themeselectionmobile", input_id: "NormalMobile", custom_class: "", component_mode: "", aria_label: "radio-button", onClick: this.normalContrasthandler }), h("dda-radiobutton", { key: '0903e68c4d56436e1375d11eace6012b0abdc056', title_text: "Colours Blind", checked: false, size: "sm", variants: "normal", supporting: "", group_name: "themeselectionmobile", input_id: "ColoursBlindMobile", custom_class: "", component_mode: "", aria_label: "radio-button", onClick: this.blindContrasthandler }), h("dda-radiobutton", { key: '654338fbc2ea136382ba8317a25860e1c6ef035c', title_text: "Red Weakness", checked: false, size: "sm", variants: "normal", supporting: "", group_name: "themeselectionmobile", input_id: "RedWeaknessMobile", custom_class: "", component_mode: "", aria_label: "radio-button", onClick: this.redContrasthandler }), h("dda-radiobutton", { key: '7fcb7c39b886f225ded3dfb785ef64a8a96cd3cd', title_text: "Green Weakness", checked: false, size: "sm", variants: "normal", supporting: "", group_name: "themeselectionmobile", input_id: "GreenWeaknessMobile", custom_class: "", component_mode: "", aria_label: "radio-button", onClick: this.greenContrasthandler })))), this.readSpeakerLink && (h("div", { key: '670590bb033f934dd1c2a0ff2389852bdf6f6361', class: "dda-col-md-4 dda-accessibility-item" }, h("h2", { key: 'bae3c03019f94931a0b2916e2b0a27c4451fd73c', class: "dda-fs-body-lg dda-fw-700 mb-1" }, "Screen Reader"), h("p", { key: '5b76889779669cabb33daee5dc521365c69ad96f', class: "mb-3" }, "Listen to the content of the page by clicking play or listen"), h("div", { key: '47c3a9f7d45b9a126906eb096eac60bede592c4a', class: "rs_skip rsbtn rs_preserve", id: "readspeaker_button1" }, h("a", { key: 'b2ebbc608601aa1fe5820b3fe87f9666ff0fb93d', href: this.readSpeakerLink, rel: "nofollow", class: "rsbtn_play circle readspeaker", accessKey: "L", "aria-label": "Listen to this page using ReadSpeaker" }, h("i", { key: 'c3b834ef498cde814d013761d3a37aecb5b4098b', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "volume_up"))))), h("div", { key: 'f24c9312dddde483e7ca60ed25c9627b179e6982', class: "dda-col-md-4 dda-accessibility-item" }, h("h2", { key: '22f54cd6e591377091ec8af31428ae53a5e0d4c8', class: "dda-fs-body-lg dda-fw-700 mb-1" }, "Text Size"), h("p", { key: 'ae950393bfe69fdbff4b858cf293e1add02e5e66', class: "mb-3" }, "Use the buttons below to increase or decrease the text size"), h("div", { key: '09bf848262d342e678c6801eec642260226b60ad', class: "d-flex dda-gap-4" }, h("dda-button", { key: 'd5c3e531d557d74bb976b8fa35a1b228798b9b6f', button_color: "default-secondary", icon_button_shape: "circle", custom_class: "", size: "lg", onClick: this.baseTexthandler }, "A"), h("dda-button", { key: '7ed5564d6d99ace659b878510b412e0028a21b97', button_color: "default-secondary", icon_button_shape: "circle", custom_class: "", size: "lg", onClick: this.lgTexthandler }, "A+"), h("dda-button", { key: 'fbcd2b704dbddbd85c022210cd85824b67fe1bc1', button_color: "default-secondary", icon_button_shape: "circle", custom_class: "", size: "lg", onClick: this.smTexthandler }, "A-")))), h("button", { key: '0354ef95cce6976ea90307fa3e23a959b91136bf', name: this.close_accessibility_button_name, class: "close-btn close_accessibility", "aria-label": "Close Accessibility", onClick: this.toggleAccessibilty }, h("i", { key: 'f4f26c5ff5dafb974c1f0325ae04f235f9eb9bc2', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "close")))), h("div", { key: '3555e5a4a533f570fc36408d45bba80c23645886' }, h("ul", { key: 'ebadb135c7a33a8969fce9c1459f0ae7d9014f43', class: "dda-mega-menu" }, quickLinks.map((link, index) => (h("li", { key: index }, h("a", { href: link.subMenu && link.subMenu.length > 0 ? '#' : link.href, onClick: link.subMenu && link.subMenu.length > 0 ? (e) => this.toggleSubMenu(index, e) : undefined, class: link.subMenu && link.subMenu.length > 0 ? `showSub ${this.activeMenuIndex === index ? 'icon_arrow' : ''}` : '' }, link.label), link.subMenu && link.subMenu.length > 0 && (h("div", { class: `megamenu-content ${this.activeMenuIndex === index ? 'showSubMenu' : ''}`, style: { display: this.activeMenuIndex === index ? 'block' : 'none' } }, h("div", { class: "megamenu-item dda-container" }, h("div", { class: "dda-row" }, h("div", { class: "dda-col-md-3" }, h("h3", { class: "mega-menu-title" }, link.menuLabel), h("ul", null, link.subMenu.map((subItem, subIndex) => (h("li", { key: subIndex }, h("a", { class: "megamenu-link", href: subItem.href }, h("span", { class: "dda-btn btn-color-onsurface-secondary btn-size-sm icon-btn-default" }, h("i", { class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, subItem.icon)), h("span", { class: "text-wrap" }, h("span", { class: "title-text dda-fs-body-lg dda-fw-700" }, subItem.title), h("span", { class: "dda-fs-tagline-lg dda-fw-400" }, subItem.description))))))))), h("button", { name: "close-mega-menu", class: "close-btn close_mega-menu", "aria-label": "Close Sidebar", onClick: () => setActiveMenuIndex(null) }, h("i", { class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "close"))))))))))), h("div", { key: '854e24db6dbec2bac0853d6071d46b7e5c221b35', class: "dda-mobile-entt-logo" }, h("a", { key: 'cd70858d48dc1d480e50bfa33b5f306cbdad6f4c', href: this.secondLogoHref, class: "entt-logo" }, h("img", { key: 'f43c2a7dbf7b67ba9b498eeece2ebe9467883fb6', class: "logo-colored", src: this.secondLogoSrc, alt: this.secondLogoAlt }), h("img", { key: '0e89c9bec4ff2f1d9ef2d1eda15ebe3b7c676446', class: "logo-white", src: this.secondLogoWhiteSrc, alt: this.secondLogoAlt }))), h("div", { key: 'a5474b5c7addd4133551987abe5df14306e343c2', class: "dda-mobile-search" }, h("button", { key: 'a36f8468c93b5c8510311683bf7215c7d9bebb23', name: this.search_button_name, class: "tool-btn", type: "button", "aria-expanded": this.isSearchOpen ? 'true' : 'false', "aria-controls": `${this.searchId}-mobile-panel`, onClick: this.isSearchOpen ? this.closeMobileSearch : this.openMobileSearch, ref: el => (this.mobileSearchButton = el) }, h("span", { key: '402360581f2bae5f39d1ae869692933e702ffd3a', class: "visually-hidden" }, "Search"), h("i", { key: '7c14bb124fed07e91007fe3e6d4218490cc650e4', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "search"))), h("div", { key: 'b7ed041b502925f0637e1e0ed541c0b730430a22', id: `${this.searchId}-mobile-panel`, class: "dda-mobile-search-panel", hidden: !this.isSearchOpen }, h("form", { key: '62d1886a6b174d0d20a2d4e49242cff4e3b858e2', class: "dda-mobile-search-form", role: "search", method: "get", action: this.search_action, onSubmit: this.handleSearchSubmit }, this.renderSearchInput(`${this.searchId}-mobile`, el => (this.mobileSearchInput = el)), h("button", { key: '70ccebc977fbeba61428f2c5198f113bc2957df5', type: "button", class: "dda-mobile-search-close", "aria-label": "Close search", onClick: this.closeMobileSearch }, h("i", { key: '057723af96658930cc885323288117d8c0c54fe2', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "close")))), h("div", { key: '2ab48d0aac2875a2ed5930a10fdd79ec0943b216', class: "dda-toolbar-menu" }, h("ul", { key: 'c3d6e3416dde1ea5a6cf62d01de97b7c0323c957' }, h("li", { key: 'efdcdf6436d2a6646f3eeaacd34f1078196b10a1' }, h("dda-tooltip", { key: '8ccd71882a96427444ed789ad9eca0e489b99892', title_text: "Search", description: "", position: "top" }, h("form", { key: '25dbdf52a3cbfad3fca2f81c07f6ba02042bd4e4', class: "dda-search dda-btn btn-color-onsurface-secondary btn-size-sm btn-shape-circle tool-btn", role: "search", method: "get", action: this.search_action, onSubmit: this.handleSearchSubmit }, this.renderSearchInput(this.searchId)))), h("li", { key: '1a5b626026b141cd806fdfa8d88c16f6d08491b0' }, h("dda-tooltip", { key: '614f5af0b5193f9b170530249328b5414a4e25bb', title_text: "Accessibility", position: "top" }, h("button", { key: '73c599b295f27b8171f5b7765dd60b321e874d1c', name: this.toggle_accessibility_button_name, class: "tool-btn dda-btn btn-color-onsurface-secondary btn-size-sm btn-shape-circle accessibility-btn", type: "button", "aria-expanded": this.isAccessibiltyOpen ? 'true' : 'false', onClick: this.toggleAccessibilty }, h("i", { key: 'a0d66112601707ac140afe1ac81f985b78c76365', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "accessibility"), h("span", { key: 'f25a594c8ee3f0e292aa2647a892b2f5f6b87af7', class: "visually-hidden" }, "Accessibility"))), h("div", { key: '5750bf8f5a0a14bad32bb2bf1da8f0b89a97d333', class: "dda-accessibility-wrap" }, h("div", { key: '737965b7dd14b33a84c1c8dd0fd2cad3a7141b2b', class: "dda-accessibility hide-accessibility", style: { display: this.isAccessibiltyOpen ? 'block' : 'none' } }, h("div", { key: '1aaffffa4c83f9ee065bc8398c0aeba88afb76af', class: "dda-row" }, h("div", { key: 'e8337c48645661d2d381b367a8a4fe3c9564dad6', class: "dda-col-md-4 dda-accessibility-item" }, h("h2", { key: '0a0ef35d619401eb9e7a9094dbd6481066862bcd', class: "dda-fs-body-lg dda-fw-700 mb-1" }, "Contrast"), h("form", { key: '693850d5a96f978d7ae350c2fa7c71d1b23fe114' }, h("fieldset", { key: '15ec283264f3505b50251a148f256810f398f3ff', class: "dda-theme-list" }, h("legend", { key: '3b35f9bef60a82c89b75df5c0f02828671625d34' }, h("p", { key: '75898cdac310529ad1e3c838995385c53b7d62ab', class: "mb-3" }, "Select your preferred contrast setting ")), h("dda-radiobutton", { key: '2d720c4f9c5bd3e4c784040eb35bd5ce54a08d1c', title_text: "Normal", checked: true, size: "sm", variants: "normal", supporting: "", group_name: "themeselection", input_id: "Normal", custom_class: "", component_mode: "", aria_label: "radio-button", onClick: this.normalContrasthandler }), h("dda-radiobutton", { key: '1ba2595eacc84a62581722388a2995acd69181b5', title_text: "Colours Blind", checked: false, size: "sm", variants: "normal", supporting: "", group_name: "themeselection", input_id: "ColoursBlind", custom_class: "", component_mode: "", aria_label: "radio-button", onClick: this.blindContrasthandler }), h("dda-radiobutton", { key: '529da9f6cea575e7d7f2aaee681b025de4216200', title_text: "Red Weakness", checked: false, size: "sm", variants: "normal", supporting: "", group_name: "themeselection", input_id: "RedWeakness", custom_class: "", component_mode: "", aria_label: "radio-button", onClick: this.redContrasthandler }), h("dda-radiobutton", { key: 'a7893807dbea15a170bdc28be26f279ffa9b0735', title_text: "Green Weakness", checked: false, size: "sm", variants: "normal", supporting: "", group_name: "themeselection", input_id: "GreenWeakness", custom_class: "", component_mode: "", aria_label: "radio-button", onClick: this.greenContrasthandler })))), this.readSpeakerLink && (h("div", { key: '771a1c410dd2d23369dd9288d92cdca8fe668d7d', class: "dda-col-md-4 dda-accessibility-item" }, h("h2", { key: 'eb442afea6c3c89a0889199ed2456610a4317be6', class: "dda-fs-body-lg dda-fw-700 mb-1" }, "Screen Reader"), h("p", { key: 'b44535f044e585f9fc866a0f9bfb8ff18891ad25', class: "mb-3" }, "Listen to the content of the page by clicking play or listen"), h("div", { key: '597d520cb2cae3c04579cbc5c3dd4c64bde439d0', class: "rs_skip rsbtn rs_preserve", id: "readspeaker_button1" }, h("a", { key: 'a477ebdd7ea39a8375797aaedb8fa3fbb63b5bb2', href: this.readSpeakerLink, rel: "nofollow", class: "rsbtn_play circle readspeaker", accessKey: "L", "aria-label": "Listen to this page using ReadSpeaker" }, h("i", { key: '6e0a70c58ab21cfe2e51dd5cde2b3d1e0d5567fe', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "volume_up"))))), h("div", { key: '569ee1ca086374701b87b831a282237aaee89696', class: "dda-col-md-4 dda-accessibility-item" }, h("h2", { key: '8011557e79f3b2a2cc9ae9204558d4f342857b72', class: "dda-fs-body-lg dda-fw-700 mb-1" }, "Text Size"), h("p", { key: '412bc7065a2d767b05e045fc008fbbb7c2415193', class: "mb-3" }, "Use the buttons below to increase or decrease the text size"), h("div", { key: '863736e26da3cfd0250953f3477d9dcc630bba09', class: "d-flex dda-gap-4" }, h("dda-button", { key: '3bed6701006f848c1a398cfebc09887b5708b9b9', button_color: "default-secondary", icon_button_shape: "circle", custom_class: "", size: "lg", onClick: this.baseTexthandler }, "A"), h("dda-button", { key: '6b0c58960dfc0ef027cde9f23aa2e4604e5ae82b', button_color: "default-secondary", icon_button_shape: "circle", custom_class: "", size: "lg", onClick: this.lgTexthandler }, "A+"), h("dda-button", { key: '36859719ec855a9c820ee785f835babe53d66a13', button_color: "default-secondary", icon_button_shape: "circle", custom_class: "", size: "lg", onClick: this.smTexthandler }, "A-")))), h("button", { key: '5eeb28eeff4092f5276c7ad5799b97016921298d', name: this.close_accessibility_button_name, class: "close-btn close_accessibility", "aria-label": "Close Sidebar", onClick: this.toggleAccessibilty }, h("i", { key: 'f304a9d206b14774ed885524ad870e410cd838a9', class: "materinal-icons material-symbols-outlined", "aria-hidden": "true" }, "close"))))), h("li", { key: '4afaf5c712bf481eb733c43cedaefc85ae3d5868' }, h("dda-tooltip", { key: '09c796a5ca271097549e63c124ebaa3a3c0a65f6', title_text: "Language", position: "top" }, h("dda-button", { key: '36a733b9fce2fe1e9690bcb46280c29aba29030b', button_color: "onsurface-secondary", custom_class: "tool-btn", button_shape: "circle", size: "sm", lang: this.language_lang, onClick: this.languagehandler }, this.language_text || 'العربية'))), !this.hide_login && (h("li", { key: 'ea2b5b451cc255cfe85b594f689d7fdd858c04c4' }, h("dda-tooltip", { key: '7ec58a5f79d2c7001b05aa682c63256eb4e7686f', title_text: this.loginText || "Login", position: "top" }, h("dda-link-button", { key: 'eac673f812227a6878fd1efba63ec1cd4adfacd5', button_color: "onsurface-secondary", start_icon: this.loginIcon || "sentiment_satisfied", custom_class: "tool-btn", href: this.loginLink, button_shape: "circle", size: "sm" }, this.loginText || "Login")))))))));
449
+ })), !this.hideOtherMenu && otherMenuItems.length > 0 && [
450
+ this.sideOtherMenuTitle && h("p", { key: '9c7b8d1dd2d206f984951cef4dad79551c026dcc', class: "dda-side-nav-title" }, this.sideOtherMenuTitle),
451
+ h("ul", { key: '42001d954d19a80a7ad6328aeb13bc8f5adfba8d', class: "main_side_menu" }, otherMenuItems.map((item, index) => (h("li", { key: `other-${index}` }, h("a", { href: item.href, class: item.active === 'true' ? 'active' : '', "aria-current": item.active === 'true' ? 'page' : undefined }, item.label))))),
452
+ ]), h("div", { key: '06f5f6931ad39ec607aa10d97c14dd12ab0d4e01', class: "dda-sidemenu-bottom" }, h("div", { key: '108a9c80301683c910cc80e81c2b533b76d821a9', class: "dda-sidemenu-gov-logo" }, h("a", { key: '4be0fdf0cd40f5e8cff36bbad4acf63d97935bd8', href: this.firstLogoHref, class: "govt-logo mb-2" }, h("img", { key: 'b8b00bf0d624299da3ff2f2b824b951620c40be9', class: "", src: this.firstLogoSrc, alt: this.firstLogoAlt }))), h("div", { key: 'b0719b41aad4f75366d54e25a967bc8d67952918', class: "dda-toolbar-menu-sidemenu" }, h("ul", { key: '52ee920078fbb73ce827fc65e372d2899568a943' }, h("li", { key: '768b6f0f85f1304136dd23d0a3d5a9c213600810' }, this.renderAccessibilityButton('mobile')), this.languageLabel && (h("li", { key: 'ae2ee87232999ae08a38378c475c38f742b5bf0c' }, h("button", { key: '7c08d026b461becf44c5222a040c2544bb8c6b7c', name: this.language_button_name, class: "tool-btn", type: "button", lang: this.language_lang, onClick: this.languagehandler }, this.languageLabel))), this.showLogin && (h("li", { key: '5f4f33fca15860af56e9d9d45149f1c391cd31df' }, h("dda-link-button", { key: '4af11a09e4d414677b65707f228d3a8bdf85bc04', button_color: "onsurface-secondary", start_icon: this.loginIcon || 'sentiment_satisfied', custom_class: "tool-btn", href: this.loginLink, button_shape: "circle", size: "sm" }, this.loginLabel)))))), h("button", { key: 'a2ff2fbce6f369d570ad25efebf6f8f0de85cc04', name: this.close_menu_button_name, class: "close-btn side-nav-close-btn", "aria-label": "Close Sidebar", onClick: this.toggleMenu }, h("i", { key: '0334c91beef504626934e695b555d67a9bedbdf6', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "close")), this.usePredesignedAccessibilityMenu && (h("div", { key: '6668fd9fa40b85d119100f59bf5055ae7767db23', class: "dda-accessibility hide-accessibility mobile-accessibility", style: { display: this.isAccessibiltyOpen ? 'block' : 'none' } }, this.renderAccessibilityColumns('mobile'), h("button", { key: 'bdba830a83267399804cf30efb4b454b6dd0bbe0', name: this.close_accessibility_button_name, class: "close-btn close_accessibility", "aria-label": "Close Accessibility", onClick: this.toggleAccessibilty }, h("i", { key: '0b9a6819c1bff1b52662386aca02110c6ab8c131', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "close"))))), h("div", { key: 'bd9ec32ec674f8738a78ff8f53108fdf682a20e0' }, h("ul", { key: '38ba8c0d6525077ebfe88c69b1ecfd0fb43e2608', class: "dda-mega-menu" }, quickLinks.map((link, index) => {
453
+ const hasSub = link.kind !== 'link';
454
+ const isOpen = this.activeMenuIndex === index;
455
+ return (h("li", { key: index }, h("a", { href: hasSub ? '#' : link.href, onClick: hasSub ? (e) => this.toggleSubMenu(index, e) : undefined, class: { showSub: hasSub, icon_arrow: hasSub && isOpen, active: link.active }, "aria-expanded": hasSub ? String(isOpen) : undefined, "aria-controls": hasSub ? this.menuPanelId(index) : undefined, "aria-current": link.active && !hasSub ? 'page' : undefined }, link.label), link.kind === 'dropdown' && this.renderDropdown(link, index), link.kind === 'mega' && this.renderMega(link, index)));
456
+ })))), h("div", { key: '005102cc2dffc29276815160605772370a3bc0cc', class: "dda-mobile-entt-logo" }, h("a", { key: 'df6a1b8c76455d114c08500ae6502be62f06858c', href: this.secondLogoHref, class: "entt-logo" }, h("img", { key: '9a04ddd255475900f45086120543260bfee0de29', class: "logo-colored", src: this.secondLogoSrc, alt: this.secondLogoAlt }), h("img", { key: 'f7b56f89406f1df4d1d64a5bb5b9d7b188b7d423', class: "logo-white", src: this.secondLogoWhiteSrc, alt: this.secondLogoAlt }))), h("div", { key: 'e8b285e912a1cb2acc55c11615f07ce6d7e6d337', class: "dda-mobile-search" }, this.mobileMenuSearchUrl ? (h("a", { id: this.mobileMenuSearchId, href: this.mobileMenuSearchUrl, class: "tool-btn" }, h("span", { class: "visually-hidden" }, this.searchText || 'Search'), h("i", { class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "search"))) : (h("button", { id: this.mobileMenuSearchId, name: this.search_button_name, class: "tool-btn", type: "button", "aria-expanded": this.isSearchOpen ? 'true' : 'false', "aria-controls": `${this.searchId}-mobile-panel`, onClick: this.isSearchOpen ? this.closeMobileSearch : this.openMobileSearch, ref: el => (this.mobileSearchButton = el) }, h("span", { class: "visually-hidden" }, this.searchText || 'Search'), h("i", { class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "search")))), !this.mobileMenuSearchUrl && (h("div", { key: 'edc649b51bdce87a49162dd8e2d29fa1e5525d50', id: `${this.searchId}-mobile-panel`, class: "dda-mobile-search-panel", hidden: !this.isSearchOpen }, h("form", { key: 'e6185f22e6d16c3ecdf3837917f6f5ac12483fa4', class: "dda-mobile-search-form", role: "search", method: "get", action: this.search_action, onSubmit: this.handleSearchSubmit }, this.renderSearchInput(`${this.searchId}-mobile`, el => (this.mobileSearchInput = el)), h("button", { key: '82ea4559f09115e8790b654d7c270734a436b0be', type: "button", class: "dda-mobile-search-close", "aria-label": "Close search", onClick: this.closeMobileSearch }, h("i", { key: 'fc2e02ff9a6d86f99ae0734d5dc77d9d3988af05', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "close"))))), h("div", { key: 'caba18a60ff73e65bc70ff1ff082c47782e96ecb', class: "dda-toolbar-menu" }, h("ul", { key: 'c976f0088fdf1d9b50da2966aa45d8e66aff7e99' }, h("li", { key: '4ffb8b7e65c3516dc2619ed90387708701d65a61' }, h("dda-tooltip", { key: 'fee68662ada0b681d894fa47f4377a23a63c02d2', title_text: this.tooltip(this.search_tooltip, 'Search'), description: "", position: "top" }, h("form", { key: '981fff0a7cbab22cf454855d46d9fe254488607c', class: "dda-search dda-btn btn-color-onsurface-secondary btn-size-sm btn-shape-circle tool-btn", role: "search", method: "get", action: this.search_action, onSubmit: this.handleSearchSubmit }, this.renderSearchInput(this.searchId)))), h("li", { key: 'fa034c28c12012c9e080ffa02ba744c1359e3b71' }, h("dda-tooltip", { key: '39f7eeaae844e1aaad97894d3ac01dfe68ae5a6d', title_text: this.tooltip(this.accessibility_tooltip, 'Accessibility'), position: "top" }, this.renderAccessibilityButton('desktop')), this.usePredesignedAccessibilityMenu && (h("div", { key: '9bd00b640ddb4dd44497d1d665dfcfdc1bd8befc', class: "dda-accessibility-wrap" }, h("div", { key: '9743bd582c5705e1ce9602484f24c7fdd1718ac2', class: "dda-accessibility hide-accessibility", style: { display: this.isAccessibiltyOpen ? 'block' : 'none' } }, this.renderAccessibilityColumns('desktop'), h("button", { key: '7b2913e38ed3a3c59023de78254ab8de62abc661', name: this.close_accessibility_button_name, class: "close-btn close_accessibility", "aria-label": "Close Sidebar", onClick: this.toggleAccessibilty }, h("i", { key: 'b3aa1577875a36b310c9c52ee909c98940e8a81b', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "close")))))), this.languageLabel && (h("li", { key: '4d500ce6dfa7253a7ec7d8365f7944b0b09d793b' }, h("dda-tooltip", { key: 'd3308456b90d849acfef563a5fde1673606d50ca', title_text: this.tooltip(this.language_tooltip, 'Language'), position: "top" }, h("dda-button", { key: '40075897d322fd313a5871ec1b91f6efbac1d14b', button_color: "onsurface-secondary", custom_class: "tool-btn", button_shape: "circle", size: "sm", lang: this.language_lang, onClick: this.languagehandler }, this.languageLabel)))), this.showLogin && (h("li", { key: 'ceecde91b63d8bca127ac06e98bcef1abaeb2fc6' }, h("dda-tooltip", { key: '0e0af0d68680dbd27af3d7a9fee22f05487729d1', title_text: this.tooltip(this.login_tooltip, this.loginLabel), position: "top" }, h("dda-link-button", { key: '4acf05721471dd3434c0875986639f2d673fdf98', button_color: "onsurface-secondary", start_icon: this.loginIcon || 'sentiment_satisfied', custom_class: "tool-btn", href: this.loginLink, button_shape: "circle", size: "sm" }, this.loginLabel)))))))));
272
457
  }
273
458
  get el() { return getElement(this); }
274
459
  static get watchers() { return {