@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,6 +1,76 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-DXyiIgGK.js');
3
+ var index = require('./index-DD8fdSxb.js');
4
+ var parseJsonProp = require('./parse-json-prop-B0KWD8qe.js');
5
+
6
+ const clean = (value) => (typeof value === 'string' ? value.trim() : '');
7
+ const optional = (value) => clean(value) || undefined;
8
+ const isPlainObject = (value) => Boolean(value) && typeof value === 'object' && !Array.isArray(value);
9
+ // An array field (children, mega-menu columns/items, 5.x subMenu) may contain a bad entry (null, a
10
+ // number, ...) even when the field itself is a valid array. Each bad entry is skipped, with one
11
+ // warning, rather than reaching a raw.<prop> access on a non-object and throwing.
12
+ const asArray = (value) => {
13
+ if (!Array.isArray(value))
14
+ return [];
15
+ return value.filter(item => {
16
+ if (isPlainObject(item))
17
+ return true;
18
+ console.warn('quick-links: an item is not an object; it is ignored.');
19
+ return false;
20
+ });
21
+ };
22
+ const isLegacy = (raw) => raw.headerMenuLabel !== undefined || raw.type !== undefined;
23
+ function legacyItem(raw) {
24
+ const children = asArray(raw.children);
25
+ const base = {
26
+ label: clean(raw.headerMenuLabel),
27
+ href: clean(raw.url) || '#',
28
+ active: raw.active === 'true' || raw.active === true,
29
+ id: optional(raw.headerMenuId),
30
+ description: optional(raw.description),
31
+ icon: optional(raw.quickLinksIcon),
32
+ kind: 'link',
33
+ submenuTitle: optional(raw.defaultSubMenuTitle),
34
+ children: [],
35
+ columns: [],
36
+ };
37
+ if (children.length === 0)
38
+ return base;
39
+ if (raw.type === 'dda_main_megamenu') {
40
+ return Object.assign(Object.assign({}, base), { kind: 'mega', columns: children.map(col => ({
41
+ title: optional(col.title),
42
+ links: asArray(col.items).map(link => {
43
+ var _a;
44
+ return ({
45
+ label: clean(link.headerMenuLabel),
46
+ href: clean(link.url) || '#',
47
+ description: optional(link.description),
48
+ // 3.x always showed an icon in the mega menu, defaulting to 'sentiment_satisfied' when
49
+ // none was set; the 5.x subMenu shape never had a default, so this fallback stays scoped
50
+ // to the 3.x mapping (see modernItem below, which leaves icon undefined).
51
+ icon: (_a = optional(link.quickLinksIcon)) !== null && _a !== void 0 ? _a : 'sentiment_satisfied',
52
+ active: false,
53
+ });
54
+ }),
55
+ })) });
56
+ }
57
+ return Object.assign(Object.assign({}, base), { kind: 'dropdown', children: children.map(legacyItem) });
58
+ }
59
+ function modernItem(raw) {
60
+ const sub = asArray(raw.subMenu);
61
+ const base = { label: clean(raw.label), href: clean(raw.href) || '#', active: false, kind: 'link', children: [], columns: [] };
62
+ if (sub.length === 0)
63
+ return base;
64
+ return Object.assign(Object.assign({}, base), { kind: 'mega', columns: [
65
+ {
66
+ title: optional(raw.menuLabel),
67
+ links: sub.map(link => ({ label: clean(link.title), href: clean(link.href) || '#', description: optional(link.description), icon: optional(link.icon), active: false })),
68
+ },
69
+ ] });
70
+ }
71
+ function normalizeQuickLinks(value) {
72
+ return asArray(parseJsonProp.parseJsonProp(value, 'quick-links')).map(raw => (isLegacy(raw) ? legacyItem(raw) : modernItem(raw)));
73
+ }
4
74
 
5
75
  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}`;
6
76
 
@@ -9,23 +79,31 @@ let headerInstanceCount = 0;
9
79
  const DdaHeader = class {
10
80
  constructor(hostRef) {
11
81
  index.registerInstance(this, hostRef);
12
- this.languageSwitch = index.createEvent(this, "languageSwitch", 7);
13
- this.smTextSize = index.createEvent(this, "smTextSize", 7);
14
- this.baseTextSize = index.createEvent(this, "baseTextSize", 7);
15
- this.lgTextSize = index.createEvent(this, "lgTextSize", 7);
16
- this.normalContrast = index.createEvent(this, "normalContrast", 7);
17
- this.blindContrast = index.createEvent(this, "blindContrast", 7);
18
- this.redContrast = index.createEvent(this, "redContrast", 7);
19
- this.greenContrast = index.createEvent(this, "greenContrast", 7);
20
- this.searchSubmit = index.createEvent(this, "searchSubmit", 7);
82
+ this.accessibilityMenuToggle = index.createEvent(this, "accessibilitymenufunctionality");
83
+ this.searchInput = index.createEvent(this, "searchfunctionality");
84
+ this.languageSwitch = index.createEvent(this, "languageSwitch");
85
+ this.smTextSize = index.createEvent(this, "smTextSize");
86
+ this.baseTextSize = index.createEvent(this, "baseTextSize");
87
+ this.lgTextSize = index.createEvent(this, "lgTextSize");
88
+ this.normalContrast = index.createEvent(this, "normalContrast");
89
+ this.blindContrast = index.createEvent(this, "blindContrast");
90
+ this.redContrast = index.createEvent(this, "redContrast");
91
+ this.greenContrast = index.createEvent(this, "greenContrast");
92
+ this.searchSubmit = index.createEvent(this, "searchSubmit");
21
93
  /** Link URL of the first logo in the header and the side menu. Default: `/`. */
22
94
  this.firstLogoHref = '/';
23
95
  /** Link URL of the second logo on desktop and mobile. Default: `/`. */
24
96
  this.secondLogoHref = '/';
97
+ /** Hides the "other" side-menu links and their title. Default: `false`. */
98
+ this.hideOtherMenu = false;
99
+ /** The contrast option shown as selected. The header updates it when the user picks an option. Default: `normal`. */
100
+ this.selected_contrast = 'normal';
25
101
  /** Hides the Login link in the desktop toolbar and the side menu. */
26
102
  this.hide_login = false;
27
103
  /** `lang` attribute of the language buttons, the language of `language_text`. Default: `ar`. */
28
104
  this.language_lang = 'ar';
105
+ /** When `false`, the header renders no accessibility panel; the buttons only emit `accessibilitymenufunctionality`, so the page can open its own panel. Default: `true`. */
106
+ this.usePredesignedAccessibilityMenu = true;
29
107
  this.isMenuOpen = false;
30
108
  this.isSubMenuOpen = false;
31
109
  this.isSideSubMenuOpen = false;
@@ -38,6 +116,9 @@ const DdaHeader = class {
38
116
  this.menu_button_label = 'Menu';
39
117
  this.openMenus = {};
40
118
  this.activeMenuIndex = null;
119
+ this.activeSubIndex = null;
120
+ /** Offset (px) from the top of the open dropdown to the opener of its third-level panel. */
121
+ this.activeSubTop = 0;
41
122
  this.toggleEscapeKey = (event) => {
42
123
  if (event.key === 'Escape') {
43
124
  if (this.isSearchOpen) {
@@ -48,6 +129,7 @@ const DdaHeader = class {
48
129
  this.isSubMenuOpen = false;
49
130
  this.isSideSubMenuOpen = false;
50
131
  this.activeMenuIndex = null;
132
+ this.activeSubIndex = null;
51
133
  }
52
134
  };
53
135
  this.handleSearchSubmit = (event) => {
@@ -58,6 +140,7 @@ const DdaHeader = class {
58
140
  input.focus();
59
141
  return;
60
142
  }
143
+ this.searchInput.emit(query);
61
144
  const searchEvent = this.searchSubmit.emit({ query });
62
145
  // Without a results URL there is nowhere to go; a cancelled event means the app routes itself.
63
146
  if (searchEvent.defaultPrevented || !this.search_action) {
@@ -97,11 +180,15 @@ const DdaHeader = class {
97
180
  };
98
181
  this.handleOutsideMegaMenuClick = (event) => {
99
182
  if (this.activeMenuIndex !== null) {
100
- const megaMenu = document.querySelector('.megamenu-content');
101
- const isClickInsideMegaMenu = megaMenu && megaMenu.contains(event.target);
102
- const isClickOnToggleLink = event.target.closest('.showSub');
103
- if (!isClickInsideMegaMenu && !isClickOnToggleLink) {
183
+ // A click anywhere inside the top-level menu is not an "outside" click: the mega-menu
184
+ // content and the 3.x dropdown's second/third levels both render inside their <li>, which
185
+ // is inside .dda-mega-menu, so this covers every open level without naming a specific one
186
+ // (naming ".megamenu-content" alone, for example, always matches when any mega item exists,
187
+ // open or not, and would never let the 3.x dropdown branch be reached).
188
+ const isClickInsideMenu = event.target.closest('.dda-mega-menu');
189
+ if (!isClickInsideMenu) {
104
190
  this.activeMenuIndex = null;
191
+ this.activeSubIndex = null;
105
192
  }
106
193
  }
107
194
  };
@@ -131,36 +218,46 @@ const DdaHeader = class {
131
218
  this.isMenuOpen = !this.isMenuOpen;
132
219
  };
133
220
  this.toggleSubMenu = (index, event) => {
134
- // this.isSubMenuOpen = !this.isSubMenuOpen;
135
221
  if (event)
136
222
  event.preventDefault();
137
223
  this.activeMenuIndex = this.activeMenuIndex === index ? null : index;
224
+ this.activeSubIndex = null;
138
225
  };
139
226
  this.toggleAccessibilty = () => {
140
- this.isAccessibiltyOpen = !this.isAccessibiltyOpen;
227
+ if (this.usePredesignedAccessibilityMenu) {
228
+ this.isAccessibiltyOpen = !this.isAccessibiltyOpen;
229
+ }
230
+ this.accessibilityMenuToggle.emit();
141
231
  };
142
232
  this.languagehandler = () => {
143
233
  this.languageSwitch.emit();
144
234
  };
145
235
  this.smTexthandler = () => {
236
+ this.selected_text_size = 'small';
146
237
  this.smTextSize.emit();
147
238
  };
148
239
  this.baseTexthandler = () => {
240
+ this.selected_text_size = 'normal';
149
241
  this.baseTextSize.emit();
150
242
  };
151
243
  this.lgTexthandler = () => {
244
+ this.selected_text_size = 'large';
152
245
  this.lgTextSize.emit();
153
246
  };
154
247
  this.normalContrasthandler = () => {
248
+ this.selected_contrast = 'normal';
155
249
  this.normalContrast.emit();
156
250
  };
157
251
  this.blindContrasthandler = () => {
252
+ this.selected_contrast = 'colorblind';
158
253
  this.blindContrast.emit();
159
254
  };
160
255
  this.redContrasthandler = () => {
256
+ this.selected_contrast = 'redweakness';
161
257
  this.redContrast.emit();
162
258
  };
163
259
  this.greenContrasthandler = () => {
260
+ this.selected_contrast = 'greenweakness';
164
261
  this.greenContrast.emit();
165
262
  };
166
263
  this.renderSubMenu = (subMenu, parentLi) => {
@@ -237,7 +334,7 @@ const DdaHeader = class {
237
334
  return [
238
335
  index.h("label", { htmlFor: id, class: "visually-hidden" }, this.searchText || 'Search'),
239
336
  index.h("i", { class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "search"),
240
- index.h("input", { name: this.search_input_name || 'q', type: "text", id: id, placeholder: this.searchText || 'Search', enterkeyhint: "search", autocomplete: "off", ref: ref }),
337
+ index.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 }),
241
338
  ];
242
339
  }
243
340
  // The transparent style (<body class="transparent">) shows only at the top of the page.
@@ -254,15 +351,96 @@ const DdaHeader = class {
254
351
  return [];
255
352
  }
256
353
  }
354
+ // Text-prop rule: an absent attribute uses the English default; an empty one means "show nothing".
355
+ text(value, fallback) {
356
+ return value === undefined || value === null ? fallback : value;
357
+ }
358
+ // The three columns of the accessibility panel. The desktop panel and the side-menu panel show
359
+ // the same content; only the radio group and ids differ, so both panels stay independent forms.
360
+ renderAccessibilityColumns(variant) {
361
+ var _a;
362
+ const suffix = variant === 'mobile' ? 'Mobile' : '';
363
+ const group = variant === 'mobile' ? 'themeselectionmobile' : 'themeselection';
364
+ const contrastTitle = this.text(this.contrast_title, 'Contrast');
365
+ const contrastDescription = this.text(this.contrast_description, 'Select your preferred contrast setting');
366
+ const readSpeakerLink = this.readSpeakerLink || this.read_speaker_link;
367
+ const screenReaderTitle = this.text(this.screen_reader_title, 'Screen Reader');
368
+ const screenReaderDescription = this.text(this.screen_reader_description, 'Listen to the content of the page by clicking play or listen');
369
+ const textSizeTitle = this.text(this.text_size_title, 'Text Size');
370
+ const textSizeDescription = this.text(this.text_size_description, 'Use the buttons below to increase or decrease the text size');
371
+ const options = [
372
+ { 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 },
373
+ { value: 'colorblind', label: this.text(this.contrast_color_blind_text, 'Colours Blind'), id: 'ColoursBlind', handler: this.blindContrasthandler },
374
+ { value: 'redweakness', label: this.text(this.contrast_red_weakness_text, 'Red Weakness'), id: 'RedWeakness', handler: this.redContrasthandler },
375
+ { value: 'greenweakness', label: this.text(this.contrast_green_weakness_text, 'Green Weakness'), id: 'GreenWeakness', handler: this.greenContrasthandler },
376
+ ];
377
+ const sizes = [
378
+ { value: 'normal', label: 'A', handler: this.baseTexthandler },
379
+ { value: 'large', label: 'A+', handler: this.lgTexthandler },
380
+ { value: 'small', label: 'A-', handler: this.smTexthandler },
381
+ ];
382
+ return (index.h("div", { class: "dda-row" }, index.h("div", { class: "dda-col-md-4 dda-accessibility-item" }, contrastTitle && index.h("h2", { class: "dda-fs-body-lg dda-fw-700 mb-1" }, contrastTitle), index.h("form", null, index.h("fieldset", { class: "dda-theme-list" }, contrastDescription && (index.h("legend", null, index.h("p", { class: "mb-3" }, contrastDescription))), options.map(option => option.label ? (index.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 && (index.h("div", { class: "dda-col-md-4 dda-accessibility-item" }, screenReaderTitle && index.h("h2", { class: "dda-fs-body-lg dda-fw-700 mb-1" }, screenReaderTitle), screenReaderDescription && index.h("p", { class: "mb-3" }, screenReaderDescription), index.h("div", { class: "rs_skip rsbtn rs_preserve", id: `readspeaker_button1${suffix}` }, index.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') }, index.h("i", { class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "volume_up"))))), index.h("div", { class: "dda-col-md-4 dda-accessibility-item" }, textSizeTitle && index.h("h2", { class: "dda-fs-body-lg dda-fw-700 mb-1" }, textSizeTitle), textSizeDescription && index.h("p", { class: "mb-3" }, textSizeDescription), index.h("div", { class: "d-flex dda-gap-4 dda-text-size-buttons" }, sizes.map(size => (index.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)))))));
383
+ }
384
+ // A tooltip must have text, so an empty tooltip attribute falls back to the default.
385
+ tooltip(value, fallback) {
386
+ return value ? value : fallback;
387
+ }
388
+ get loginLabel() {
389
+ return this.text(this.loginText, 'Login');
390
+ }
391
+ // 3.x hid Login when login-text was empty; hide_login is the 5.x switch.
392
+ get showLogin() {
393
+ return !this.hide_login && this.loginLabel !== '';
394
+ }
395
+ get languageLabel() {
396
+ return this.text(this.language_text, 'العربية');
397
+ }
398
+ renderAccessibilityButton(variant) {
399
+ const id = this.accessibility_button_id ? (variant === 'desktop' ? this.accessibility_button_id : `${this.accessibility_button_id}-sidemenu`) : undefined;
400
+ const iconClass = this.accessibility_button_icon_family || 'material-icons material-symbols-outlined';
401
+ const buttonClass = variant === 'desktop' ? 'tool-btn dda-btn btn-color-onsurface-secondary btn-size-sm btn-shape-circle accessibility-btn' : 'tool-btn accessibility-btn';
402
+ return (index.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 }, index.h("i", { class: iconClass, "aria-hidden": "true" }, this.accessibility_button_icon_name || 'accessibility'), index.h("span", { class: "visually-hidden" }, this.text(this.accessibility_button_text, 'Accessibility'))));
403
+ }
404
+ renderDropdown(item, index$1) {
405
+ const id = this.menuPanelId(index$1);
406
+ // The third-level panels are siblings of the <ul>, not children of its <li> items. The <ul>
407
+ // scrolls (max-height), and a scroll container clips an absolutely positioned child on both
408
+ // axes, so a fly-out inside it cannot show. The open panel is aligned with its opener.
409
+ return (index.h("div", { id: id, class: { 'dda-default-submenu': true, 'is-visible': this.activeMenuIndex === index$1 } }, index.h("ul", null, item.children.map((child, subIndex) => {
410
+ const hasSub = child.kind === 'dropdown';
411
+ const subId = `${id}-${subIndex}`;
412
+ const isOpen = this.activeSubIndex === subIndex;
413
+ return (index.h("li", { key: subIndex }, index.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) => {
414
+ if (!hasSub)
415
+ return;
416
+ event.preventDefault();
417
+ const opener = event.currentTarget;
418
+ const panel = opener.closest('.dda-default-submenu');
419
+ if (panel)
420
+ this.activeSubTop = opener.getBoundingClientRect().top - panel.getBoundingClientRect().top;
421
+ this.activeSubIndex = isOpen ? null : subIndex;
422
+ } }, child.label)));
423
+ })), item.children.map((child, subIndex) => {
424
+ if (child.kind !== 'dropdown')
425
+ return null;
426
+ const isOpen = this.activeSubIndex === subIndex;
427
+ return (index.h("div", { key: `sub-${subIndex}`, id: `${id}-${subIndex}`, class: { 'dda-default-subsubmenu': true, 'is-visible': isOpen }, style: isOpen ? { top: `${this.activeSubTop}px` } : undefined }, index.h("div", { class: "dda-default-subsubmenu-content" }, index.h("span", { class: "dda-submenu-title" }, child.submenuTitle || child.label), index.h("ul", null, child.children.map((leaf, leafIndex) => (index.h("li", { key: leafIndex }, index.h("a", { id: leaf.id, href: leaf.href, "aria-current": leaf.active ? 'page' : undefined }, leaf.label))))))));
428
+ })));
429
+ }
430
+ /** The id of the dropdown or mega panel that top-level item `index` opens. */
431
+ menuPanelId(index) {
432
+ return `${this.searchId}-submenu-${index}`;
433
+ }
434
+ renderMega(item, index$1) {
435
+ return (index.h("div", { id: this.menuPanelId(index$1), class: `megamenu-content ${this.activeMenuIndex === index$1 ? 'showSubMenu' : ''}`, style: { display: this.activeMenuIndex === index$1 ? 'block' : 'none' } }, index.h("div", { class: "megamenu-item dda-container" }, index.h("div", { class: "dda-row" }, item.columns.map((column, columnIndex) => (index.h("div", { class: "dda-col-md-3", key: columnIndex }, column.title && index.h("h3", { class: "mega-menu-title" }, column.title), index.h("ul", null, column.links.map((link, linkIndex) => (index.h("li", { key: linkIndex }, index.h("a", { class: "megamenu-link", href: link.href }, index.h("span", { class: "dda-btn btn-color-onsurface-secondary btn-size-sm icon-btn-default" }, index.h("i", { class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, link.icon)), index.h("span", { class: "text-wrap" }, index.h("span", { class: "title-text dda-fs-body-lg dda-fw-700" }, link.label), link.description && index.h("span", { class: "dda-fs-tagline-lg dda-fw-400" }, link.description))))))))))), index.h("button", { name: "close-mega-menu", class: "close-btn close_mega-menu", "aria-label": "Close Sidebar", onClick: () => (this.activeMenuIndex = null) }, index.h("i", { class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "close")))));
436
+ }
257
437
  render() {
258
438
  const sideMenuItems = this.parseJsonArray(this.sideMenuItems);
259
- const quickLinks = this.parseJsonArray(this.quickLinks);
260
- const setActiveMenuIndex = (index) => {
261
- this.activeMenuIndex = index;
262
- };
439
+ const quickLinks = normalizeQuickLinks(this.quickLinks);
440
+ const otherMenuItems = parseJsonProp.parseJsonProp(this.otherMenuItems, 'other-menu-items');
263
441
  // The transparent style is opt-in at page level (<body class="transparent">);
264
442
  // CSS shows the white or colored logo to match.
265
- return (index.h("header", { key: '43166a6b01154f028167b441653d529995f70ddf', class: "dda-header" }, index.h("div", { key: 'a297117e6057f9629884c39db1c3babdeabf542d', class: "dda-head-logo" }, index.h("a", { key: '0214471f1b3afbf9ddac97790d36e224430d9f29', href: this.firstLogoHref, class: "govt-logo" }, index.h("img", { key: '14fc6908a033e635f12f678b0cf3f0eb57656da2', class: "logo-colored", src: this.firstLogoSrc, alt: this.firstLogoAlt }), index.h("img", { key: 'f44df6db1a4c24ade54f38bda4e693007ba32643', class: "logo-white", src: this.firstLogoWhiteSrc || this.firstLogoSrc, alt: this.firstLogoAlt })), index.h("a", { key: '875d0b2b37fd65c239e8727b95b8e430d578146c', href: this.secondLogoHref, class: "entt-logo" }, index.h("img", { key: '65e49ed851a16be54d97827f7086f04939508b68', class: "logo-colored", src: this.secondLogoSrc, alt: this.secondLogoAlt }), index.h("img", { key: '2fdd1ec129ab3d3c2647ae009f3573140bf5b642', class: "logo-white", src: this.secondLogoWhiteSrc || this.secondLogoSrc, alt: this.secondLogoAlt }))), index.h("div", { key: 'b8b18a8497c6942697876b7ca0d6d00de58bc9c5', class: "dda-menu-container" }, index.h("div", { key: 'b43c4406281640978e3396c91cd6de75122eeb5a', class: "dda-main-navigation" }, index.h("div", { key: 'b1209cd2a8d120e996d69069985ba30c800c2097', class: `dda-menu-overley ${this.isMenuOpen ? 'show-overley' : ''}`, onClick: this.toggleMenu }), index.h("div", { key: '175e76801f7075751034c57b686957f830920858', class: "hamburger-menu", onClick: this.toggleMenu }, index.h("dda-tooltip", { key: '789d7b7454d9efc21daf581c4c925dc5c4cf5d56', title_text: "Menu", position: "top", class: "d-block" }, index.h("button", { key: '0fadce5552c1b6887485f79141579f03addbeeff', type: "button", class: "hamburger-menu-btn", name: this.hamburger_menu_button_name }, index.h("span", { key: 'da32b9b73992ddf8b628ff5a59c0983ea232e168', class: "hamburger-line" }), index.h("span", { key: 'dd5183d61830656cfbb62d153601c9f1b9ce3e27', class: "hamburger-menu-text" }, this.menu_button_label)))), index.h("div", { key: '35bb4d17184d78cc82f10575c405671d2399c083', class: "dda-sidemenu", style: { display: this.isMenuOpen ? 'block' : '', insetInlineStart: this.isMenuOpen ? '0px' : '' } }, index.h("div", { key: '8b872eedae11463b79109b86aaebe79049417a0a', class: "dda-sidemenu-content" }, index.h("p", { key: 'b60ca2503ec258a0a2c929e58a2b60ad6a66be28', class: "dda-side-nav-title" }, "Quick Links"), index.h("ul", { key: '97a5b237524a897a1dd27cc35dc82f2978b7f88c', class: "main_side_menu" }, sideMenuItems.map((menu, index$1) => {
443
+ return (index.h("header", { key: '32433ee95f1ae35e0f74ccb5d6b096f589695e98', class: "dda-header" }, index.h("div", { key: '9ad5e7bae10b14edb5e4b425a398f5558d5f9235', class: "dda-head-logo" }, index.h("a", { key: 'eb6b3a1a8a251b36403032991208c6851fe13c8f', href: this.firstLogoHref, class: "govt-logo" }, index.h("img", { key: 'ad7ac43b73cf44d723741de98868bad4dd851671', class: "logo-colored", src: this.firstLogoSrc, alt: this.firstLogoAlt }), index.h("img", { key: '18ea73459cb1872774664b5f462d5ef62aa6797e', class: "logo-white", src: this.firstLogoWhiteSrc || this.firstLogoSrc, alt: this.firstLogoAlt })), index.h("a", { key: '0eefe4a0f33ffdf3985afae932e66913fd13a8f3', href: this.secondLogoHref, class: "entt-logo" }, index.h("img", { key: 'df4932bc5a0f04aeedbc96042eaa45bb8618f6be', class: "logo-colored", src: this.secondLogoSrc, alt: this.secondLogoAlt }), index.h("img", { key: 'ba7c80b44d063cae03ba9383791e6fd3130847e7', class: "logo-white", src: this.secondLogoWhiteSrc || this.secondLogoSrc, alt: this.secondLogoAlt }))), index.h("div", { key: 'f65d90eb129e728b5e2765dc56edb7f810cdfd35', class: "dda-menu-container" }, index.h("div", { key: '0350e48d6b954849223565e1bf7f12ae7412186d', class: "dda-main-navigation" }, index.h("div", { key: '94b7d46db89ebfdaf56e0e42b7e1f169ee5c0ace', class: `dda-menu-overley ${this.isMenuOpen ? 'show-overley' : ''}`, onClick: this.toggleMenu }), index.h("div", { key: 'f9f95ecec3c42ebcf2b19f648aa58e66992d7639', class: "hamburger-menu", onClick: this.toggleMenu }, index.h("dda-tooltip", { key: 'c54f460c9594e0d6419d6be238cef43cf36131d0', title_text: this.tooltip(this.menu_button_label, 'Menu'), position: "top", class: "d-block" }, index.h("button", { key: '5eed1a83dddc0611d452e5b592ce0a94aa4c41e0', type: "button", class: "hamburger-menu-btn", name: this.hamburger_menu_button_name }, index.h("span", { key: 'aed42c584a5bbcc1a06e932d613137d3aea6ba34', class: "hamburger-line" }), index.h("span", { key: 'a77cbf53977e5c6347a3847f2199487870a9dc9e', class: "hamburger-menu-text" }, this.menu_button_label)))), index.h("div", { key: '8da7f3edac3d3ad3cc73e29b6aa794c18b2d4199', class: "dda-sidemenu", style: { display: this.isMenuOpen ? 'block' : '', insetInlineStart: this.isMenuOpen ? '0px' : '' } }, index.h("div", { key: '444bd4291f474d6f50d47e1aab4a4a275d0a5028', class: "dda-sidemenu-content" }, this.text(this.sideMainMenuTitle, 'Quick Links') && index.h("p", { key: '0794f5ea9a0ea1750b5fb7d3f84002368d498177', class: "dda-side-nav-title" }, this.text(this.sideMainMenuTitle, 'Quick Links')), index.h("ul", { key: 'bc0f6a674f6a9aa5ce1678a5942147e615393ee9', class: "main_side_menu" }, sideMenuItems.map((menu, index$1) => {
266
444
  const currentIndex = `menu-${index$1}`;
267
445
  return (index.h("li", { key: currentIndex }, index.h("a", { href: menu.href, class: menu.subMenu && menu.subMenu.length > 0 ? 'showSub' : '', onClick: (e) => {
268
446
  if (menu.subMenu && menu.subMenu.length > 0) {
@@ -270,7 +448,14 @@ const DdaHeader = class {
270
448
  this.toggleSidebarSubMenu(currentIndex);
271
449
  }
272
450
  } }, menu.label), this.renderSubMenu(menu.subMenu, currentIndex)));
273
- }))), index.h("div", { key: '2068b95884e81e7d45fa6d172bceaf8e9fcf3a5f', class: "dda-sidemenu-bottom" }, index.h("div", { key: 'f8fad40c7a6bcd89445caff8312b1d75446a2c39', class: "dda-sidemenu-gov-logo" }, index.h("a", { key: 'fd3cf7324d60503323536756c46a3e2269dd76be', href: this.firstLogoHref, class: "govt-logo mb-2" }, index.h("img", { key: '0c072aea99471241c4beed44aa45a783487109d1', class: "", src: this.firstLogoSrc, alt: this.firstLogoAlt }))), index.h("div", { key: 'd5229b78918d3f5141bdd6508bc9290dd82cff2e', class: "dda-toolbar-menu-sidemenu" }, index.h("ul", { key: 'c3a5fea233575cc41086f006d83c121637249ffa' }, index.h("li", { key: '05b8380b1bc2904dde6325c75e505c791d80d3b9' }, index.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 }, index.h("i", { key: 'ba8ac2e906459c4f1146b8914fee17bd1e61bd31', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "accessibility"), index.h("span", { key: '40fdbbf2e61ab20d38b7393367b0307dbc79f653', class: "visually-hidden" }, "Accessibility"))), index.h("li", { key: 'e0967bfcee2d3cfced038afcd8d71f9b68b1c6c2' }, index.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 && (index.h("li", { key: '344c7ea8f9f39fc6b9186fae9f9d0e2a29812bd0' }, index.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")))))), index.h("button", { key: 'c98eded45379cc3a5329754dbc20ee60b6b25613', name: this.close_menu_button_name, class: "close-btn side-nav-close-btn", "aria-label": "Close Sidebar", onClick: this.toggleMenu }, index.h("i", { key: '4e9757b2a1de7194d952caffefdf312a05b71f32', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "close")), index.h("div", { key: 'b0469e9a46224bfcd216cff235fead2897f50d2b', class: "dda-accessibility hide-accessibility mobile-accessibility", style: { display: this.isAccessibiltyOpen ? 'block' : 'none' } }, index.h("div", { key: '93defee85dde89cfa6e67e6b3ca370353c5e6222', class: "dda-row" }, index.h("div", { key: 'c481f64ad8865cfca1f5b0bc0354172aeedaabcd', class: "dda-col-md-4 dda-accessibility-item" }, index.h("h2", { key: '73937142ec896b3f45dad228c2877835162b79ac', class: "dda-fs-body-lg dda-fw-700 mb-1" }, "Contrast"), index.h("form", { key: '16ff3eb668308d3de610b7d31fe09703f80fdf92' }, index.h("fieldset", { key: 'e60d6ee03d81c4227083d0af770a169612f287d3', class: "dda-theme-list" }, index.h("legend", { key: '5e3bc4f036fd51720049c5f0443ae63717b6f8dc' }, index.h("p", { key: '374381cf5812b6f71abba5ff320b061b80a3f62d', class: "mb-3" }, "Select your preferred contrast setting ")), index.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 }), index.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 }), index.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 }), index.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 && (index.h("div", { key: '670590bb033f934dd1c2a0ff2389852bdf6f6361', class: "dda-col-md-4 dda-accessibility-item" }, index.h("h2", { key: 'bae3c03019f94931a0b2916e2b0a27c4451fd73c', class: "dda-fs-body-lg dda-fw-700 mb-1" }, "Screen Reader"), index.h("p", { key: '5b76889779669cabb33daee5dc521365c69ad96f', class: "mb-3" }, "Listen to the content of the page by clicking play or listen"), index.h("div", { key: '47c3a9f7d45b9a126906eb096eac60bede592c4a', class: "rs_skip rsbtn rs_preserve", id: "readspeaker_button1" }, index.h("a", { key: 'b2ebbc608601aa1fe5820b3fe87f9666ff0fb93d', href: this.readSpeakerLink, rel: "nofollow", class: "rsbtn_play circle readspeaker", accessKey: "L", "aria-label": "Listen to this page using ReadSpeaker" }, index.h("i", { key: 'c3b834ef498cde814d013761d3a37aecb5b4098b', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "volume_up"))))), index.h("div", { key: 'f24c9312dddde483e7ca60ed25c9627b179e6982', class: "dda-col-md-4 dda-accessibility-item" }, index.h("h2", { key: '22f54cd6e591377091ec8af31428ae53a5e0d4c8', class: "dda-fs-body-lg dda-fw-700 mb-1" }, "Text Size"), index.h("p", { key: 'ae950393bfe69fdbff4b858cf293e1add02e5e66', class: "mb-3" }, "Use the buttons below to increase or decrease the text size"), index.h("div", { key: '09bf848262d342e678c6801eec642260226b60ad', class: "d-flex dda-gap-4" }, index.h("dda-button", { key: 'd5c3e531d557d74bb976b8fa35a1b228798b9b6f', button_color: "default-secondary", icon_button_shape: "circle", custom_class: "", size: "lg", onClick: this.baseTexthandler }, "A"), index.h("dda-button", { key: '7ed5564d6d99ace659b878510b412e0028a21b97', button_color: "default-secondary", icon_button_shape: "circle", custom_class: "", size: "lg", onClick: this.lgTexthandler }, "A+"), index.h("dda-button", { key: 'fbcd2b704dbddbd85c022210cd85824b67fe1bc1', button_color: "default-secondary", icon_button_shape: "circle", custom_class: "", size: "lg", onClick: this.smTexthandler }, "A-")))), index.h("button", { key: '0354ef95cce6976ea90307fa3e23a959b91136bf', name: this.close_accessibility_button_name, class: "close-btn close_accessibility", "aria-label": "Close Accessibility", onClick: this.toggleAccessibilty }, index.h("i", { key: 'f4f26c5ff5dafb974c1f0325ae04f235f9eb9bc2', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "close")))), index.h("div", { key: '3555e5a4a533f570fc36408d45bba80c23645886' }, index.h("ul", { key: 'ebadb135c7a33a8969fce9c1459f0ae7d9014f43', class: "dda-mega-menu" }, quickLinks.map((link, index$1) => (index.h("li", { key: index$1 }, index.h("a", { href: link.subMenu && link.subMenu.length > 0 ? '#' : link.href, onClick: link.subMenu && link.subMenu.length > 0 ? (e) => this.toggleSubMenu(index$1, e) : undefined, class: link.subMenu && link.subMenu.length > 0 ? `showSub ${this.activeMenuIndex === index$1 ? 'icon_arrow' : ''}` : '' }, link.label), link.subMenu && link.subMenu.length > 0 && (index.h("div", { class: `megamenu-content ${this.activeMenuIndex === index$1 ? 'showSubMenu' : ''}`, style: { display: this.activeMenuIndex === index$1 ? 'block' : 'none' } }, index.h("div", { class: "megamenu-item dda-container" }, index.h("div", { class: "dda-row" }, index.h("div", { class: "dda-col-md-3" }, index.h("h3", { class: "mega-menu-title" }, link.menuLabel), index.h("ul", null, link.subMenu.map((subItem, subIndex) => (index.h("li", { key: subIndex }, index.h("a", { class: "megamenu-link", href: subItem.href }, index.h("span", { class: "dda-btn btn-color-onsurface-secondary btn-size-sm icon-btn-default" }, index.h("i", { class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, subItem.icon)), index.h("span", { class: "text-wrap" }, index.h("span", { class: "title-text dda-fs-body-lg dda-fw-700" }, subItem.title), index.h("span", { class: "dda-fs-tagline-lg dda-fw-400" }, subItem.description))))))))), index.h("button", { name: "close-mega-menu", class: "close-btn close_mega-menu", "aria-label": "Close Sidebar", onClick: () => setActiveMenuIndex(null) }, index.h("i", { class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "close"))))))))))), index.h("div", { key: '854e24db6dbec2bac0853d6071d46b7e5c221b35', class: "dda-mobile-entt-logo" }, index.h("a", { key: 'cd70858d48dc1d480e50bfa33b5f306cbdad6f4c', href: this.secondLogoHref, class: "entt-logo" }, index.h("img", { key: 'f43c2a7dbf7b67ba9b498eeece2ebe9467883fb6', class: "logo-colored", src: this.secondLogoSrc, alt: this.secondLogoAlt }), index.h("img", { key: '0e89c9bec4ff2f1d9ef2d1eda15ebe3b7c676446', class: "logo-white", src: this.secondLogoWhiteSrc, alt: this.secondLogoAlt }))), index.h("div", { key: 'a5474b5c7addd4133551987abe5df14306e343c2', class: "dda-mobile-search" }, index.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) }, index.h("span", { key: '402360581f2bae5f39d1ae869692933e702ffd3a', class: "visually-hidden" }, "Search"), index.h("i", { key: '7c14bb124fed07e91007fe3e6d4218490cc650e4', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "search"))), index.h("div", { key: 'b7ed041b502925f0637e1e0ed541c0b730430a22', id: `${this.searchId}-mobile-panel`, class: "dda-mobile-search-panel", hidden: !this.isSearchOpen }, index.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)), index.h("button", { key: '70ccebc977fbeba61428f2c5198f113bc2957df5', type: "button", class: "dda-mobile-search-close", "aria-label": "Close search", onClick: this.closeMobileSearch }, index.h("i", { key: '057723af96658930cc885323288117d8c0c54fe2', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "close")))), index.h("div", { key: '2ab48d0aac2875a2ed5930a10fdd79ec0943b216', class: "dda-toolbar-menu" }, index.h("ul", { key: 'c3d6e3416dde1ea5a6cf62d01de97b7c0323c957' }, index.h("li", { key: 'efdcdf6436d2a6646f3eeaacd34f1078196b10a1' }, index.h("dda-tooltip", { key: '8ccd71882a96427444ed789ad9eca0e489b99892', title_text: "Search", description: "", position: "top" }, index.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)))), index.h("li", { key: '1a5b626026b141cd806fdfa8d88c16f6d08491b0' }, index.h("dda-tooltip", { key: '614f5af0b5193f9b170530249328b5414a4e25bb', title_text: "Accessibility", position: "top" }, index.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 }, index.h("i", { key: 'a0d66112601707ac140afe1ac81f985b78c76365', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "accessibility"), index.h("span", { key: 'f25a594c8ee3f0e292aa2647a892b2f5f6b87af7', class: "visually-hidden" }, "Accessibility"))), index.h("div", { key: '5750bf8f5a0a14bad32bb2bf1da8f0b89a97d333', class: "dda-accessibility-wrap" }, index.h("div", { key: '737965b7dd14b33a84c1c8dd0fd2cad3a7141b2b', class: "dda-accessibility hide-accessibility", style: { display: this.isAccessibiltyOpen ? 'block' : 'none' } }, index.h("div", { key: '1aaffffa4c83f9ee065bc8398c0aeba88afb76af', class: "dda-row" }, index.h("div", { key: 'e8337c48645661d2d381b367a8a4fe3c9564dad6', class: "dda-col-md-4 dda-accessibility-item" }, index.h("h2", { key: '0a0ef35d619401eb9e7a9094dbd6481066862bcd', class: "dda-fs-body-lg dda-fw-700 mb-1" }, "Contrast"), index.h("form", { key: '693850d5a96f978d7ae350c2fa7c71d1b23fe114' }, index.h("fieldset", { key: '15ec283264f3505b50251a148f256810f398f3ff', class: "dda-theme-list" }, index.h("legend", { key: '3b35f9bef60a82c89b75df5c0f02828671625d34' }, index.h("p", { key: '75898cdac310529ad1e3c838995385c53b7d62ab', class: "mb-3" }, "Select your preferred contrast setting ")), index.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 }), index.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 }), index.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 }), index.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 && (index.h("div", { key: '771a1c410dd2d23369dd9288d92cdca8fe668d7d', class: "dda-col-md-4 dda-accessibility-item" }, index.h("h2", { key: 'eb442afea6c3c89a0889199ed2456610a4317be6', class: "dda-fs-body-lg dda-fw-700 mb-1" }, "Screen Reader"), index.h("p", { key: 'b44535f044e585f9fc866a0f9bfb8ff18891ad25', class: "mb-3" }, "Listen to the content of the page by clicking play or listen"), index.h("div", { key: '597d520cb2cae3c04579cbc5c3dd4c64bde439d0', class: "rs_skip rsbtn rs_preserve", id: "readspeaker_button1" }, index.h("a", { key: 'a477ebdd7ea39a8375797aaedb8fa3fbb63b5bb2', href: this.readSpeakerLink, rel: "nofollow", class: "rsbtn_play circle readspeaker", accessKey: "L", "aria-label": "Listen to this page using ReadSpeaker" }, index.h("i", { key: '6e0a70c58ab21cfe2e51dd5cde2b3d1e0d5567fe', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "volume_up"))))), index.h("div", { key: '569ee1ca086374701b87b831a282237aaee89696', class: "dda-col-md-4 dda-accessibility-item" }, index.h("h2", { key: '8011557e79f3b2a2cc9ae9204558d4f342857b72', class: "dda-fs-body-lg dda-fw-700 mb-1" }, "Text Size"), index.h("p", { key: '412bc7065a2d767b05e045fc008fbbb7c2415193', class: "mb-3" }, "Use the buttons below to increase or decrease the text size"), index.h("div", { key: '863736e26da3cfd0250953f3477d9dcc630bba09', class: "d-flex dda-gap-4" }, index.h("dda-button", { key: '3bed6701006f848c1a398cfebc09887b5708b9b9', button_color: "default-secondary", icon_button_shape: "circle", custom_class: "", size: "lg", onClick: this.baseTexthandler }, "A"), index.h("dda-button", { key: '6b0c58960dfc0ef027cde9f23aa2e4604e5ae82b', button_color: "default-secondary", icon_button_shape: "circle", custom_class: "", size: "lg", onClick: this.lgTexthandler }, "A+"), index.h("dda-button", { key: '36859719ec855a9c820ee785f835babe53d66a13', button_color: "default-secondary", icon_button_shape: "circle", custom_class: "", size: "lg", onClick: this.smTexthandler }, "A-")))), index.h("button", { key: '5eeb28eeff4092f5276c7ad5799b97016921298d', name: this.close_accessibility_button_name, class: "close-btn close_accessibility", "aria-label": "Close Sidebar", onClick: this.toggleAccessibilty }, index.h("i", { key: 'f304a9d206b14774ed885524ad870e410cd838a9', class: "materinal-icons material-symbols-outlined", "aria-hidden": "true" }, "close"))))), index.h("li", { key: '4afaf5c712bf481eb733c43cedaefc85ae3d5868' }, index.h("dda-tooltip", { key: '09c796a5ca271097549e63c124ebaa3a3c0a65f6', title_text: "Language", position: "top" }, index.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 && (index.h("li", { key: 'ea2b5b451cc255cfe85b594f689d7fdd858c04c4' }, index.h("dda-tooltip", { key: '7ec58a5f79d2c7001b05aa682c63256eb4e7686f', title_text: this.loginText || "Login", position: "top" }, index.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")))))))));
451
+ })), !this.hideOtherMenu && otherMenuItems.length > 0 && [
452
+ this.sideOtherMenuTitle && index.h("p", { key: '9c7b8d1dd2d206f984951cef4dad79551c026dcc', class: "dda-side-nav-title" }, this.sideOtherMenuTitle),
453
+ index.h("ul", { key: '42001d954d19a80a7ad6328aeb13bc8f5adfba8d', class: "main_side_menu" }, otherMenuItems.map((item, index$1) => (index.h("li", { key: `other-${index$1}` }, index.h("a", { href: item.href, class: item.active === 'true' ? 'active' : '', "aria-current": item.active === 'true' ? 'page' : undefined }, item.label))))),
454
+ ]), index.h("div", { key: '06f5f6931ad39ec607aa10d97c14dd12ab0d4e01', class: "dda-sidemenu-bottom" }, index.h("div", { key: '108a9c80301683c910cc80e81c2b533b76d821a9', class: "dda-sidemenu-gov-logo" }, index.h("a", { key: '4be0fdf0cd40f5e8cff36bbad4acf63d97935bd8', href: this.firstLogoHref, class: "govt-logo mb-2" }, index.h("img", { key: 'b8b00bf0d624299da3ff2f2b824b951620c40be9', class: "", src: this.firstLogoSrc, alt: this.firstLogoAlt }))), index.h("div", { key: 'b0719b41aad4f75366d54e25a967bc8d67952918', class: "dda-toolbar-menu-sidemenu" }, index.h("ul", { key: '52ee920078fbb73ce827fc65e372d2899568a943' }, index.h("li", { key: '768b6f0f85f1304136dd23d0a3d5a9c213600810' }, this.renderAccessibilityButton('mobile')), this.languageLabel && (index.h("li", { key: 'ae2ee87232999ae08a38378c475c38f742b5bf0c' }, index.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 && (index.h("li", { key: '5f4f33fca15860af56e9d9d45149f1c391cd31df' }, index.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)))))), index.h("button", { key: 'a2ff2fbce6f369d570ad25efebf6f8f0de85cc04', name: this.close_menu_button_name, class: "close-btn side-nav-close-btn", "aria-label": "Close Sidebar", onClick: this.toggleMenu }, index.h("i", { key: '0334c91beef504626934e695b555d67a9bedbdf6', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "close")), this.usePredesignedAccessibilityMenu && (index.h("div", { key: '6668fd9fa40b85d119100f59bf5055ae7767db23', class: "dda-accessibility hide-accessibility mobile-accessibility", style: { display: this.isAccessibiltyOpen ? 'block' : 'none' } }, this.renderAccessibilityColumns('mobile'), index.h("button", { key: 'bdba830a83267399804cf30efb4b454b6dd0bbe0', name: this.close_accessibility_button_name, class: "close-btn close_accessibility", "aria-label": "Close Accessibility", onClick: this.toggleAccessibilty }, index.h("i", { key: '0b9a6819c1bff1b52662386aca02110c6ab8c131', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "close"))))), index.h("div", { key: 'bd9ec32ec674f8738a78ff8f53108fdf682a20e0' }, index.h("ul", { key: '38ba8c0d6525077ebfe88c69b1ecfd0fb43e2608', class: "dda-mega-menu" }, quickLinks.map((link, index$1) => {
455
+ const hasSub = link.kind !== 'link';
456
+ const isOpen = this.activeMenuIndex === index$1;
457
+ return (index.h("li", { key: index$1 }, index.h("a", { href: hasSub ? '#' : link.href, onClick: hasSub ? (e) => this.toggleSubMenu(index$1, e) : undefined, class: { showSub: hasSub, icon_arrow: hasSub && isOpen, active: link.active }, "aria-expanded": hasSub ? String(isOpen) : undefined, "aria-controls": hasSub ? this.menuPanelId(index$1) : undefined, "aria-current": link.active && !hasSub ? 'page' : undefined }, link.label), link.kind === 'dropdown' && this.renderDropdown(link, index$1), link.kind === 'mega' && this.renderMega(link, index$1)));
458
+ })))), index.h("div", { key: '005102cc2dffc29276815160605772370a3bc0cc', class: "dda-mobile-entt-logo" }, index.h("a", { key: 'df6a1b8c76455d114c08500ae6502be62f06858c', href: this.secondLogoHref, class: "entt-logo" }, index.h("img", { key: '9a04ddd255475900f45086120543260bfee0de29', class: "logo-colored", src: this.secondLogoSrc, alt: this.secondLogoAlt }), index.h("img", { key: 'f7b56f89406f1df4d1d64a5bb5b9d7b188b7d423', class: "logo-white", src: this.secondLogoWhiteSrc, alt: this.secondLogoAlt }))), index.h("div", { key: 'e8b285e912a1cb2acc55c11615f07ce6d7e6d337', class: "dda-mobile-search" }, this.mobileMenuSearchUrl ? (index.h("a", { id: this.mobileMenuSearchId, href: this.mobileMenuSearchUrl, class: "tool-btn" }, index.h("span", { class: "visually-hidden" }, this.searchText || 'Search'), index.h("i", { class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "search"))) : (index.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) }, index.h("span", { class: "visually-hidden" }, this.searchText || 'Search'), index.h("i", { class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "search")))), !this.mobileMenuSearchUrl && (index.h("div", { key: 'edc649b51bdce87a49162dd8e2d29fa1e5525d50', id: `${this.searchId}-mobile-panel`, class: "dda-mobile-search-panel", hidden: !this.isSearchOpen }, index.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)), index.h("button", { key: '82ea4559f09115e8790b654d7c270734a436b0be', type: "button", class: "dda-mobile-search-close", "aria-label": "Close search", onClick: this.closeMobileSearch }, index.h("i", { key: 'fc2e02ff9a6d86f99ae0734d5dc77d9d3988af05', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "close"))))), index.h("div", { key: 'caba18a60ff73e65bc70ff1ff082c47782e96ecb', class: "dda-toolbar-menu" }, index.h("ul", { key: 'c976f0088fdf1d9b50da2966aa45d8e66aff7e99' }, index.h("li", { key: '4ffb8b7e65c3516dc2619ed90387708701d65a61' }, index.h("dda-tooltip", { key: 'fee68662ada0b681d894fa47f4377a23a63c02d2', title_text: this.tooltip(this.search_tooltip, 'Search'), description: "", position: "top" }, index.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)))), index.h("li", { key: 'fa034c28c12012c9e080ffa02ba744c1359e3b71' }, index.h("dda-tooltip", { key: '39f7eeaae844e1aaad97894d3ac01dfe68ae5a6d', title_text: this.tooltip(this.accessibility_tooltip, 'Accessibility'), position: "top" }, this.renderAccessibilityButton('desktop')), this.usePredesignedAccessibilityMenu && (index.h("div", { key: '9bd00b640ddb4dd44497d1d665dfcfdc1bd8befc', class: "dda-accessibility-wrap" }, index.h("div", { key: '9743bd582c5705e1ce9602484f24c7fdd1718ac2', class: "dda-accessibility hide-accessibility", style: { display: this.isAccessibiltyOpen ? 'block' : 'none' } }, this.renderAccessibilityColumns('desktop'), index.h("button", { key: '7b2913e38ed3a3c59023de78254ab8de62abc661', name: this.close_accessibility_button_name, class: "close-btn close_accessibility", "aria-label": "Close Sidebar", onClick: this.toggleAccessibilty }, index.h("i", { key: 'b3aa1577875a36b310c9c52ee909c98940e8a81b', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "close")))))), this.languageLabel && (index.h("li", { key: '4d500ce6dfa7253a7ec7d8365f7944b0b09d793b' }, index.h("dda-tooltip", { key: 'd3308456b90d849acfef563a5fde1673606d50ca', title_text: this.tooltip(this.language_tooltip, 'Language'), position: "top" }, index.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 && (index.h("li", { key: 'ceecde91b63d8bca127ac06e98bcef1abaeb2fc6' }, index.h("dda-tooltip", { key: '0e0af0d68680dbd27af3d7a9fee22f05487729d1', title_text: this.tooltip(this.login_tooltip, this.loginLabel), position: "top" }, index.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)))))))));
274
459
  }
275
460
  get el() { return index.getElement(this); }
276
461
  static get watchers() { return {