govuk_publishing_components 35.3.3 → 35.3.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (272) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-core.js +4 -0
  3. data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/init-ga4.js +1 -1
  4. data/app/assets/stylesheets/component_guide/application.scss +37 -1
  5. data/app/assets/stylesheets/govuk_publishing_components/components/_metadata.scss +10 -6
  6. data/app/assets/stylesheets/govuk_publishing_components/components/_organisation-logo.scss +2 -2
  7. data/app/assets/stylesheets/govuk_publishing_components/components/helpers/_brand-colours.scss +0 -24
  8. data/app/views/govuk_publishing_components/component_guide/example.html.erb +1 -1
  9. data/app/views/govuk_publishing_components/component_guide/preview.html.erb +1 -1
  10. data/app/views/govuk_publishing_components/component_guide/show.html.erb +1 -1
  11. data/app/views/govuk_publishing_components/components/_layout_super_navigation_header.html.erb +2 -2
  12. data/app/views/govuk_publishing_components/components/_metadata.html.erb +1 -1
  13. data/app/views/govuk_publishing_components/components/_related_navigation.html.erb +3 -1
  14. data/app/views/govuk_publishing_components/components/_share_links.html.erb +6 -2
  15. data/app/views/govuk_publishing_components/components/_step_by_step_nav_related.html.erb +1 -1
  16. data/app/views/govuk_publishing_components/components/docs/metadata.yml +1 -3
  17. data/app/views/govuk_publishing_components/components/docs/organisation_logo.yml +5 -5
  18. data/app/views/govuk_publishing_components/components/docs/step_by_step_nav_related.yml +1 -0
  19. data/app/views/govuk_publishing_components/components/related_navigation/_section.html.erb +1 -1
  20. data/app/views/layouts/govuk_publishing_components/application.html.erb +1 -0
  21. data/config/locales/en.yml +2 -2
  22. data/lib/govuk_publishing_components/app_helpers/asset_helper.rb +4 -0
  23. data/lib/govuk_publishing_components/presenters/breadcrumbs_helper.rb +1 -1
  24. data/lib/govuk_publishing_components/version.rb +1 -1
  25. data/node_modules/axe-core/axe.d.ts +77 -6
  26. data/node_modules/axe-core/axe.js +955 -600
  27. data/node_modules/axe-core/axe.min.js +2 -2
  28. data/node_modules/axe-core/locales/_template.json +6 -6
  29. data/node_modules/axe-core/locales/ja.json +91 -11
  30. data/node_modules/axe-core/package.json +5 -5
  31. data/node_modules/axe-core/sri-history.json +4 -0
  32. data/node_modules/govuk-frontend/README.md +4 -5
  33. data/node_modules/govuk-frontend/govuk/all-ie8.scss +8 -0
  34. data/node_modules/govuk-frontend/govuk/all.js +738 -258
  35. data/node_modules/govuk-frontend/govuk/all.js.map +1 -1
  36. data/node_modules/govuk-frontend/govuk/common/closest-attribute-value.js +11 -7
  37. data/node_modules/govuk-frontend/govuk/common/closest-attribute-value.js.map +1 -1
  38. data/node_modules/govuk-frontend/govuk/common/govuk-frontend-version.js +17 -0
  39. data/node_modules/govuk-frontend/govuk/common/govuk-frontend-version.js.map +1 -0
  40. data/node_modules/govuk-frontend/govuk/common/index.js +16 -4
  41. data/node_modules/govuk-frontend/govuk/common/index.js.map +1 -1
  42. data/node_modules/govuk-frontend/govuk/common/normalise-dataset.js +20 -10
  43. data/node_modules/govuk-frontend/govuk/common/normalise-dataset.js.map +1 -1
  44. data/node_modules/govuk-frontend/govuk/common.js +16 -4
  45. data/node_modules/govuk-frontend/govuk/common.js.map +1 -1
  46. data/node_modules/govuk-frontend/govuk/components/accordion/_index.scss +3 -3
  47. data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js +234 -86
  48. data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js.map +1 -1
  49. data/node_modules/govuk-frontend/govuk/components/accordion/fixtures.json +32 -13
  50. data/node_modules/govuk-frontend/govuk/components/accordion/macro-options.json +8 -2
  51. data/node_modules/govuk-frontend/govuk/components/accordion/template.njk +1 -0
  52. data/node_modules/govuk-frontend/govuk/components/back-link/_index.scss +1 -1
  53. data/node_modules/govuk-frontend/govuk/components/back-link/fixtures.json +1 -1
  54. data/node_modules/govuk-frontend/govuk/components/back-link/macro-options.json +1 -1
  55. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/_index.scss +1 -1
  56. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/fixtures.json +12 -12
  57. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/macro-options.json +1 -1
  58. data/node_modules/govuk-frontend/govuk/components/button/_index.scss +8 -6
  59. data/node_modules/govuk-frontend/govuk/components/button/button.js +54 -19
  60. data/node_modules/govuk-frontend/govuk/components/button/button.js.map +1 -1
  61. data/node_modules/govuk-frontend/govuk/components/button/fixtures.json +11 -1
  62. data/node_modules/govuk-frontend/govuk/components/button/macro-options.json +7 -1
  63. data/node_modules/govuk-frontend/govuk/components/button/template.njk +1 -1
  64. data/node_modules/govuk-frontend/govuk/components/character-count/character-count.js +170 -76
  65. data/node_modules/govuk-frontend/govuk/components/character-count/character-count.js.map +1 -1
  66. data/node_modules/govuk-frontend/govuk/components/character-count/fixtures.json +24 -24
  67. data/node_modules/govuk-frontend/govuk/components/character-count/macro-options.json +3 -3
  68. data/node_modules/govuk-frontend/govuk/components/checkboxes/_index.scss +6 -6
  69. data/node_modules/govuk-frontend/govuk/components/checkboxes/checkboxes.js +75 -24
  70. data/node_modules/govuk-frontend/govuk/components/checkboxes/checkboxes.js.map +1 -1
  71. data/node_modules/govuk-frontend/govuk/components/checkboxes/fixtures.json +47 -47
  72. data/node_modules/govuk-frontend/govuk/components/checkboxes/macro-options.json +1 -1
  73. data/node_modules/govuk-frontend/govuk/components/checkboxes/template.njk +3 -3
  74. data/node_modules/govuk-frontend/govuk/components/cookie-banner/fixtures.json +24 -24
  75. data/node_modules/govuk-frontend/govuk/components/cookie-banner/macro-options.json +1 -1
  76. data/node_modules/govuk-frontend/govuk/components/date-input/fixtures.json +26 -26
  77. data/node_modules/govuk-frontend/govuk/components/date-input/macro-options.json +1 -1
  78. data/node_modules/govuk-frontend/govuk/components/date-input/template.njk +1 -1
  79. data/node_modules/govuk-frontend/govuk/components/details/details.js +39 -13
  80. data/node_modules/govuk-frontend/govuk/components/details/details.js.map +1 -1
  81. data/node_modules/govuk-frontend/govuk/components/details/fixtures.json +1 -1
  82. data/node_modules/govuk-frontend/govuk/components/details/macro-options.json +1 -1
  83. data/node_modules/govuk-frontend/govuk/components/error-message/fixtures.json +10 -10
  84. data/node_modules/govuk-frontend/govuk/components/error-message/macro-options.json +1 -1
  85. data/node_modules/govuk-frontend/govuk/components/error-summary/error-summary.js +67 -27
  86. data/node_modules/govuk-frontend/govuk/components/error-summary/error-summary.js.map +1 -1
  87. data/node_modules/govuk-frontend/govuk/components/error-summary/fixtures.json +19 -19
  88. data/node_modules/govuk-frontend/govuk/components/error-summary/macro-options.json +1 -1
  89. data/node_modules/govuk-frontend/govuk/components/fieldset/fixtures.json +19 -19
  90. data/node_modules/govuk-frontend/govuk/components/fieldset/macro-options.json +1 -1
  91. data/node_modules/govuk-frontend/govuk/components/file-upload/_index.scss +6 -1
  92. data/node_modules/govuk-frontend/govuk/components/file-upload/fixtures.json +14 -14
  93. data/node_modules/govuk-frontend/govuk/components/file-upload/macro-options.json +7 -1
  94. data/node_modules/govuk-frontend/govuk/components/file-upload/template.njk +2 -1
  95. data/node_modules/govuk-frontend/govuk/components/footer/_index.scss +0 -7
  96. data/node_modules/govuk-frontend/govuk/components/footer/fixtures.json +24 -24
  97. data/node_modules/govuk-frontend/govuk/components/footer/macro-options.json +1 -1
  98. data/node_modules/govuk-frontend/govuk/components/header/fixtures.json +22 -22
  99. data/node_modules/govuk-frontend/govuk/components/header/header.js +46 -14
  100. data/node_modules/govuk-frontend/govuk/components/header/header.js.map +1 -1
  101. data/node_modules/govuk-frontend/govuk/components/header/macro-options.json +1 -1
  102. data/node_modules/govuk-frontend/govuk/components/header/template.njk +1 -1
  103. data/node_modules/govuk-frontend/govuk/components/hint/fixtures.json +1 -1
  104. data/node_modules/govuk-frontend/govuk/components/hint/macro-options.json +1 -1
  105. data/node_modules/govuk-frontend/govuk/components/input/_index.scss +15 -3
  106. data/node_modules/govuk-frontend/govuk/components/input/fixtures.json +54 -41
  107. data/node_modules/govuk-frontend/govuk/components/input/macro-options.json +7 -1
  108. data/node_modules/govuk-frontend/govuk/components/input/template.njk +2 -1
  109. data/node_modules/govuk-frontend/govuk/components/inset-text/fixtures.json +1 -1
  110. data/node_modules/govuk-frontend/govuk/components/inset-text/macro-options.json +1 -1
  111. data/node_modules/govuk-frontend/govuk/components/label/fixtures.json +6 -6
  112. data/node_modules/govuk-frontend/govuk/components/label/macro-options.json +1 -1
  113. data/node_modules/govuk-frontend/govuk/components/notification-banner/fixtures.json +1 -1
  114. data/node_modules/govuk-frontend/govuk/components/notification-banner/macro-options.json +1 -1
  115. data/node_modules/govuk-frontend/govuk/components/notification-banner/notification-banner.js +49 -22
  116. data/node_modules/govuk-frontend/govuk/components/notification-banner/notification-banner.js.map +1 -1
  117. data/node_modules/govuk-frontend/govuk/components/pagination/fixtures.json +16 -16
  118. data/node_modules/govuk-frontend/govuk/components/pagination/macro-options.json +1 -1
  119. data/node_modules/govuk-frontend/govuk/components/panel/fixtures.json +10 -10
  120. data/node_modules/govuk-frontend/govuk/components/panel/macro-options.json +1 -1
  121. data/node_modules/govuk-frontend/govuk/components/phase-banner/fixtures.json +1 -1
  122. data/node_modules/govuk-frontend/govuk/components/phase-banner/macro-options.json +1 -1
  123. data/node_modules/govuk-frontend/govuk/components/radios/_index.scss +5 -5
  124. data/node_modules/govuk-frontend/govuk/components/radios/fixtures.json +46 -46
  125. data/node_modules/govuk-frontend/govuk/components/radios/macro-options.json +1 -1
  126. data/node_modules/govuk-frontend/govuk/components/radios/radios.js +65 -22
  127. data/node_modules/govuk-frontend/govuk/components/radios/radios.js.map +1 -1
  128. data/node_modules/govuk-frontend/govuk/components/radios/template.njk +2 -2
  129. data/node_modules/govuk-frontend/govuk/components/select/_index.scss +7 -1
  130. data/node_modules/govuk-frontend/govuk/components/select/fixtures.json +19 -20
  131. data/node_modules/govuk-frontend/govuk/components/select/macro-options.json +7 -1
  132. data/node_modules/govuk-frontend/govuk/components/select/template.njk +5 -2
  133. data/node_modules/govuk-frontend/govuk/components/skip-link/fixtures.json +1 -1
  134. data/node_modules/govuk-frontend/govuk/components/skip-link/macro-options.json +1 -1
  135. data/node_modules/govuk-frontend/govuk/components/skip-link/skip-link.js +41 -13
  136. data/node_modules/govuk-frontend/govuk/components/skip-link/skip-link.js.map +1 -1
  137. data/node_modules/govuk-frontend/govuk/components/summary-list/fixtures.json +34 -34
  138. data/node_modules/govuk-frontend/govuk/components/summary-list/macro-options.json +1 -1
  139. data/node_modules/govuk-frontend/govuk/components/table/fixtures.json +21 -21
  140. data/node_modules/govuk-frontend/govuk/components/table/macro-options.json +1 -1
  141. data/node_modules/govuk-frontend/govuk/components/tabs/fixtures.json +15 -15
  142. data/node_modules/govuk-frontend/govuk/components/tabs/macro-options.json +1 -1
  143. data/node_modules/govuk-frontend/govuk/components/tabs/tabs.js +178 -60
  144. data/node_modules/govuk-frontend/govuk/components/tabs/tabs.js.map +1 -1
  145. data/node_modules/govuk-frontend/govuk/components/tabs/template.njk +1 -1
  146. data/node_modules/govuk-frontend/govuk/components/tag/_index.scss +18 -18
  147. data/node_modules/govuk-frontend/govuk/components/tag/fixtures.json +1 -1
  148. data/node_modules/govuk-frontend/govuk/components/tag/macro-options.json +1 -1
  149. data/node_modules/govuk-frontend/govuk/components/textarea/_index.scss +8 -1
  150. data/node_modules/govuk-frontend/govuk/components/textarea/fixtures.json +18 -18
  151. data/node_modules/govuk-frontend/govuk/components/textarea/macro-options.json +7 -1
  152. data/node_modules/govuk-frontend/govuk/components/textarea/template.njk +2 -1
  153. data/node_modules/govuk-frontend/govuk/components/warning-text/fixtures.json +9 -5
  154. data/node_modules/govuk-frontend/govuk/components/warning-text/macro-options.json +3 -3
  155. data/node_modules/govuk-frontend/govuk/components/warning-text/template.njk +1 -1
  156. data/node_modules/govuk-frontend/govuk/core/_all.scss +1 -0
  157. data/node_modules/govuk-frontend/govuk/core/_govuk-frontend-version.scss +5 -0
  158. data/node_modules/govuk-frontend/govuk/helpers/_colour.scss +5 -2
  159. data/node_modules/govuk-frontend/govuk/helpers/_focused.scss +1 -1
  160. data/node_modules/govuk-frontend/govuk/helpers/_font-faces.scss +1 -1
  161. data/node_modules/govuk-frontend/govuk/i18n.js +38 -30
  162. data/node_modules/govuk-frontend/govuk/i18n.js.map +1 -1
  163. data/node_modules/govuk-frontend/govuk/macros/i18n.njk +12 -11
  164. data/node_modules/govuk-frontend/govuk/objects/_width-container.scss +1 -1
  165. data/node_modules/govuk-frontend/govuk/settings/_colours-organisations.scss +4 -0
  166. data/node_modules/govuk-frontend/govuk/settings/_ie8.scss +16 -0
  167. data/node_modules/govuk-frontend/govuk/settings/_links.scss +5 -1
  168. data/node_modules/govuk-frontend/govuk/tools/_ie8.scss +38 -2
  169. data/node_modules/govuk-frontend/govuk/vendor/polyfills/DOMTokenList.js +2 -1
  170. data/node_modules/govuk-frontend/govuk/vendor/polyfills/DOMTokenList.js.map +1 -1
  171. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Date/now.js +2 -1
  172. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Date/now.js.map +1 -1
  173. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Document.js +2 -1
  174. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Document.js.map +1 -1
  175. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/classList.js +10 -3
  176. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/classList.js.map +1 -1
  177. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/closest.js +4 -1
  178. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/closest.js.map +1 -1
  179. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/dataset.js +13 -7
  180. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/dataset.js.map +1 -1
  181. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/matches.js +2 -1
  182. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/matches.js.map +1 -1
  183. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/nextElementSibling.js +8 -2
  184. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/nextElementSibling.js.map +1 -1
  185. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/previousElementSibling.js +8 -2
  186. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/previousElementSibling.js.map +1 -1
  187. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element.js +4 -1
  188. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element.js.map +1 -1
  189. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Event.js +10 -3
  190. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Event.js.map +1 -1
  191. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Function/prototype/bind.js +4 -1
  192. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Function/prototype/bind.js.map +1 -1
  193. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Object/defineProperty.js +2 -1
  194. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Object/defineProperty.js.map +1 -1
  195. data/node_modules/govuk-frontend/govuk/vendor/polyfills/String/prototype/trim.js +3 -2
  196. data/node_modules/govuk-frontend/govuk/vendor/polyfills/String/prototype/trim.js.map +1 -1
  197. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Window.js +2 -1
  198. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Window.js.map +1 -1
  199. data/node_modules/govuk-frontend/govuk-esm/all.mjs +81 -60
  200. data/node_modules/govuk-frontend/govuk-esm/all.mjs.map +1 -0
  201. data/node_modules/govuk-frontend/govuk-esm/common/closest-attribute-value.mjs +12 -8
  202. data/node_modules/govuk-frontend/govuk-esm/common/closest-attribute-value.mjs.map +1 -0
  203. data/node_modules/govuk-frontend/govuk-esm/common/govuk-frontend-version.mjs +9 -0
  204. data/node_modules/govuk-frontend/govuk-esm/common/govuk-frontend-version.mjs.map +1 -0
  205. data/node_modules/govuk-frontend/govuk-esm/common/index.mjs +44 -29
  206. data/node_modules/govuk-frontend/govuk-esm/common/index.mjs.map +1 -0
  207. data/node_modules/govuk-frontend/govuk-esm/common/normalise-dataset.mjs +15 -9
  208. data/node_modules/govuk-frontend/govuk-esm/common/normalise-dataset.mjs.map +1 -0
  209. data/node_modules/govuk-frontend/govuk-esm/common.mjs +3 -5
  210. data/node_modules/govuk-frontend/govuk-esm/common.mjs.map +1 -0
  211. data/node_modules/govuk-frontend/govuk-esm/components/accordion/accordion.mjs +319 -211
  212. data/node_modules/govuk-frontend/govuk-esm/components/accordion/accordion.mjs.map +1 -0
  213. data/node_modules/govuk-frontend/govuk-esm/components/button/button.mjs +47 -30
  214. data/node_modules/govuk-frontend/govuk-esm/components/button/button.mjs.map +1 -0
  215. data/node_modules/govuk-frontend/govuk-esm/components/character-count/character-count.mjs +169 -115
  216. data/node_modules/govuk-frontend/govuk-esm/components/character-count/character-count.mjs.map +1 -0
  217. data/node_modules/govuk-frontend/govuk-esm/components/checkboxes/checkboxes.mjs +88 -51
  218. data/node_modules/govuk-frontend/govuk-esm/components/checkboxes/checkboxes.mjs.map +1 -0
  219. data/node_modules/govuk-frontend/govuk-esm/components/details/details.mjs +64 -54
  220. data/node_modules/govuk-frontend/govuk-esm/components/details/details.mjs.map +1 -0
  221. data/node_modules/govuk-frontend/govuk-esm/components/error-summary/error-summary.mjs +69 -50
  222. data/node_modules/govuk-frontend/govuk-esm/components/error-summary/error-summary.mjs.map +1 -0
  223. data/node_modules/govuk-frontend/govuk-esm/components/header/header.mjs +59 -35
  224. data/node_modules/govuk-frontend/govuk-esm/components/header/header.mjs.map +1 -0
  225. data/node_modules/govuk-frontend/govuk-esm/components/notification-banner/notification-banner.mjs +36 -25
  226. data/node_modules/govuk-frontend/govuk-esm/components/notification-banner/notification-banner.mjs.map +1 -0
  227. data/node_modules/govuk-frontend/govuk-esm/components/radios/radios.mjs +67 -38
  228. data/node_modules/govuk-frontend/govuk-esm/components/radios/radios.mjs.map +1 -0
  229. data/node_modules/govuk-frontend/govuk-esm/components/skip-link/skip-link.mjs +49 -32
  230. data/node_modules/govuk-frontend/govuk-esm/components/skip-link/skip-link.mjs.map +1 -0
  231. data/node_modules/govuk-frontend/govuk-esm/components/tabs/tabs.mjs +263 -163
  232. data/node_modules/govuk-frontend/govuk-esm/components/tabs/tabs.mjs.map +1 -0
  233. data/node_modules/govuk-frontend/govuk-esm/i18n.mjs +68 -57
  234. data/node_modules/govuk-frontend/govuk-esm/i18n.mjs.map +1 -0
  235. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/DOMTokenList.mjs +5 -3
  236. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/DOMTokenList.mjs.map +1 -0
  237. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Date/now.mjs +4 -2
  238. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Date/now.mjs.map +1 -0
  239. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Document.mjs +4 -2
  240. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Document.mjs.map +1 -0
  241. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Element/prototype/classList.mjs +7 -4
  242. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Element/prototype/classList.mjs.map +1 -0
  243. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Element/prototype/closest.mjs +5 -2
  244. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Element/prototype/closest.mjs.map +1 -0
  245. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Element/prototype/dataset.mjs +13 -10
  246. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Element/prototype/dataset.mjs.map +1 -0
  247. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Element/prototype/matches.mjs +4 -2
  248. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Element/prototype/matches.mjs.map +1 -0
  249. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Element/prototype/nextElementSibling.mjs +6 -3
  250. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Element/prototype/nextElementSibling.mjs.map +1 -0
  251. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Element/prototype/previousElementSibling.mjs +6 -3
  252. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Element/prototype/previousElementSibling.mjs.map +1 -0
  253. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Element.mjs +5 -2
  254. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Element.mjs.map +1 -0
  255. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Event.mjs +7 -4
  256. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Event.mjs.map +1 -0
  257. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Function/prototype/bind.mjs +5 -2
  258. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Function/prototype/bind.mjs.map +1 -0
  259. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Object/defineProperty.mjs +4 -2
  260. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Object/defineProperty.mjs.map +1 -0
  261. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/String/prototype/trim.mjs +5 -3
  262. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/String/prototype/trim.mjs.map +1 -0
  263. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Window.mjs +4 -2
  264. data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Window.mjs.map +1 -0
  265. data/node_modules/govuk-frontend/govuk-prototype-kit/init.js +1 -0
  266. data/node_modules/govuk-frontend/govuk-prototype-kit.config.json +2 -1
  267. data/node_modules/govuk-frontend/package.json +3 -2
  268. metadata +44 -7
  269. /data/app/assets/images/govuk_publishing_components/crests/{dit_crest_13px.png → dbt_crest_13px.png} +0 -0
  270. /data/app/assets/images/govuk_publishing_components/crests/{dit_crest_13px_x2.png → dbt_crest_13px_x2.png} +0 -0
  271. /data/app/assets/images/govuk_publishing_components/crests/{dit_crest_18px.png → dbt_crest_18px.png} +0 -0
  272. /data/app/assets/images/govuk_publishing_components/crests/{dit_crest_18px_x2.png → dbt_crest_18px_x2.png} +0 -0
@@ -21,6 +21,7 @@
21
21
  * (e.g. {'i18n.showSection': 'Show section'}) and combines them together, with
22
22
  * greatest priority on the LAST item passed in.
23
23
  *
24
+ * @deprecated Will be made private in v5.0
24
25
  * @returns {Object<string, unknown>} A flattened object of key-value pairs.
25
26
  */
26
27
  function mergeConfigs (/* configObject1, configObject2, ...configObjects */) {
@@ -35,6 +36,7 @@
35
36
  */
36
37
  var flattenObject = function (configObject) {
37
38
  // Prepare an empty return object
39
+ /** @type {Object<string, unknown>} */
38
40
  var flattenedObject = {};
39
41
 
40
42
  /**
@@ -71,6 +73,7 @@
71
73
  };
72
74
 
73
75
  // Start with an empty object as our base
76
+ /** @type {Object<string, unknown>} */
74
77
  var formattedConfigObject = {};
75
78
 
76
79
  // Loop through each of the remaining passed objects and push their keys
@@ -89,14 +92,16 @@
89
92
  }
90
93
 
91
94
  /**
95
+ * @template {Node} ElementType
92
96
  * @callback nodeListIterator
93
- * @param {Element} value - The current node being iterated on
97
+ * @param {ElementType} value - The current node being iterated on
94
98
  * @param {number} index - The current index in the iteration
95
- * @param {NodeListOf<Element>} nodes - NodeList from querySelectorAll()
99
+ * @param {NodeListOf<ElementType>} nodes - NodeList from querySelectorAll()
96
100
  * @returns {void}
97
101
  */
98
102
 
99
- (function(undefined) {
103
+ // @ts-nocheck
104
+ (function (undefined) {
100
105
 
101
106
  // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Object/defineProperty/detect.js
102
107
  var detect = (
@@ -183,7 +188,8 @@
183
188
  })
184
189
  .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
185
190
 
186
- (function(undefined) {
191
+ // @ts-nocheck
192
+ (function (undefined) {
187
193
 
188
194
  // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Document/detect.js
189
195
  var detect = ("Document" in this);
@@ -210,6 +216,8 @@
210
216
  })
211
217
  .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
212
218
 
219
+ // @ts-nocheck
220
+
213
221
  (function(undefined) {
214
222
 
215
223
  // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Element/detect.js
@@ -323,6 +331,8 @@
323
331
  })
324
332
  .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
325
333
 
334
+ // @ts-nocheck
335
+
326
336
  (function(undefined) {
327
337
 
328
338
  // Detection from https://raw.githubusercontent.com/Financial-Times/polyfill-library/13cf7c340974d128d557580b5e2dafcd1b1192d1/polyfills/Element/prototype/dataset/detect.js
@@ -343,10 +353,10 @@
343
353
  var element = this;
344
354
  var attributes = this.attributes;
345
355
  var map = {};
346
-
356
+
347
357
  for (var i = 0; i < attributes.length; i++) {
348
358
  var attribute = attributes[i];
349
-
359
+
350
360
  // This regex has been edited from the original polyfill, to add
351
361
  // support for period (.) separators in data-* attribute names. These
352
362
  // are allowed in the HTML spec, but were not covered by the original
@@ -354,11 +364,11 @@
354
364
  if (attribute && attribute.name && (/^data-\w[.\w-]*$/).test(attribute.name)) {
355
365
  var name = attribute.name;
356
366
  var value = attribute.value;
357
-
367
+
358
368
  var propName = name.substr(5).replace(/-./g, function (prop) {
359
369
  return prop.charAt(1).toUpperCase();
360
370
  });
361
-
371
+
362
372
  // If this browser supports __defineGetter__ and __defineSetter__,
363
373
  // continue using defineProperty. If not (like IE 8 and below), we use
364
374
  // a hacky fallback which at least gives an object in the right format
@@ -382,18 +392,19 @@
382
392
 
383
393
  }
384
394
  }
385
-
395
+
386
396
  return map;
387
397
  }
388
398
  });
389
399
 
390
400
  }).call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
391
401
 
392
- (function(undefined) {
402
+ // @ts-nocheck
403
+ (function (undefined) {
393
404
 
394
405
  // Detection from https://github.com/mdn/content/blob/cf607d68522cd35ee7670782d3ee3a361eaef2e4/files/en-us/web/javascript/reference/global_objects/string/trim/index.md#polyfill
395
406
  var detect = ('trim' in String.prototype);
396
-
407
+
397
408
  if (detect) return
398
409
 
399
410
  // Polyfill from https://github.com/mdn/content/blob/cf607d68522cd35ee7670782d3ee3a361eaef2e4/files/en-us/web/javascript/reference/global_objects/string/trim/index.md#polyfill
@@ -416,6 +427,7 @@
416
427
  * Designed to be used to convert config passed via data attributes (which are
417
428
  * always strings) into something sensible.
418
429
  *
430
+ * @deprecated Will be made private in v5.0
419
431
  * @param {string} value - The value to normalise
420
432
  * @returns {string | boolean | number | undefined} Normalised data
421
433
  */
@@ -436,7 +448,7 @@
436
448
 
437
449
  // Empty / whitespace-only strings are considered finite so we need to check
438
450
  // the length of the trimmed string as well
439
- if (trimmedValue.length > 0 && isFinite(trimmedValue)) {
451
+ if (trimmedValue.length > 0 && isFinite(Number(trimmedValue))) {
440
452
  return Number(trimmedValue)
441
453
  }
442
454
 
@@ -448,10 +460,12 @@
448
460
  *
449
461
  * Loop over an object and normalise each value using normaliseData function
450
462
  *
463
+ * @deprecated Will be made private in v5.0
451
464
  * @param {DOMStringMap} dataset - HTML element dataset
452
465
  * @returns {Object<string, unknown>} Normalised dataset
453
466
  */
454
467
  function normaliseDataset (dataset) {
468
+ /** @type {Object<string, unknown>} */
455
469
  var out = {};
456
470
 
457
471
  for (var key in dataset) {
@@ -461,7 +475,8 @@
461
475
  return out
462
476
  }
463
477
 
464
- (function(undefined) {
478
+ // @ts-nocheck
479
+ (function (undefined) {
465
480
 
466
481
  // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Window/detect.js
467
482
  var detect = ('Window' in this);
@@ -482,6 +497,8 @@
482
497
  })
483
498
  .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
484
499
 
500
+ // @ts-nocheck
501
+
485
502
  (function(undefined) {
486
503
 
487
504
  // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Event/detect.js
@@ -731,6 +748,8 @@
731
748
  })
732
749
  .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
733
750
 
751
+ // @ts-nocheck
752
+
734
753
  (function(undefined) {
735
754
  // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Function/prototype/bind/detect.js
736
755
  var detect = 'bind' in Function.prototype;
@@ -898,20 +917,28 @@
898
917
  * JavaScript enhancements for the Button component
899
918
  *
900
919
  * @class
901
- * @param {HTMLElement} $module - HTML element to use for button
920
+ * @param {Element} $module - HTML element to use for button
902
921
  * @param {ButtonConfig} [config] - Button config
903
922
  */
904
923
  function Button ($module, config) {
905
- if (!$module) {
924
+ if (!($module instanceof HTMLElement)) {
906
925
  return this
907
926
  }
908
927
 
928
+ /** @deprecated Will be made private in v5.0 */
909
929
  this.$module = $module;
930
+
931
+ /** @deprecated Will be made private in v5.0 */
910
932
  this.debounceFormSubmitTimer = null;
911
933
 
912
934
  var defaultConfig = {
913
935
  preventDoubleClick: false
914
936
  };
937
+
938
+ /**
939
+ * @deprecated Will be made private in v5.0
940
+ * @type {ButtonConfig}
941
+ */
915
942
  this.config = mergeConfigs(
916
943
  defaultConfig,
917
944
  config || {},
@@ -923,6 +950,7 @@
923
950
  * Initialise component
924
951
  */
925
952
  Button.prototype.init = function () {
953
+ // Check that required elements are present
926
954
  if (!this.$module) {
927
955
  return
928
956
  }
@@ -939,12 +967,19 @@
939
967
  *
940
968
  * See https://github.com/alphagov/govuk_elements/pull/272#issuecomment-233028270
941
969
  *
970
+ * @deprecated Will be made private in v5.0
942
971
  * @param {KeyboardEvent} event - Keydown event
943
972
  */
944
973
  Button.prototype.handleKeyDown = function (event) {
945
974
  var $target = event.target;
946
975
 
947
- if ($target.getAttribute('role') === 'button' && event.keyCode === KEY_SPACE) {
976
+ // Handle space bar only
977
+ if (event.keyCode !== KEY_SPACE) {
978
+ return
979
+ }
980
+
981
+ // Handle elements with [role="button"] only
982
+ if ($target instanceof HTMLElement && $target.getAttribute('role') === 'button') {
948
983
  event.preventDefault(); // prevent the page from scrolling
949
984
  $target.click();
950
985
  }
@@ -957,6 +992,7 @@
957
992
  * stops people accidentally causing multiple form submissions by double
958
993
  * clicking buttons.
959
994
  *
995
+ * @deprecated Will be made private in v5.0
960
996
  * @param {MouseEvent} event - Mouse click event
961
997
  * @returns {undefined | false} Returns undefined, or false when debounced
962
998
  */
@@ -981,9 +1017,8 @@
981
1017
  * Button config
982
1018
  *
983
1019
  * @typedef {object} ButtonConfig
984
- * @property {boolean} [preventDoubleClick = false] -
985
- * Prevent accidental double clicks on submit buttons from submitting forms
986
- * multiple times.
1020
+ * @property {boolean} [preventDoubleClick = false] - Prevent accidental double
1021
+ * clicks on submit buttons from submitting forms multiple times.
987
1022
  */
988
1023
 
989
1024
  return Button;
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","sources":["../../../../src/govuk/common/index.mjs","../../../../src/govuk/vendor/polyfills/Object/defineProperty.mjs","../../../../src/govuk/vendor/polyfills/Document.mjs","../../../../src/govuk/vendor/polyfills/Element.mjs","../../../../src/govuk/vendor/polyfills/Element/prototype/dataset.mjs","../../../../src/govuk/vendor/polyfills/String/prototype/trim.mjs","../../../../src/govuk/common/normalise-dataset.mjs","../../../../src/govuk/vendor/polyfills/Window.mjs","../../../../src/govuk/vendor/polyfills/Event.mjs","../../../../src/govuk/vendor/polyfills/Function/prototype/bind.mjs","../../../../src/govuk/components/button/button.mjs"],"sourcesContent":["/**\n * Common helpers which do not require polyfill.\n *\n * IMPORTANT: If a helper require a polyfill, please isolate it in its own module\n * so that the polyfill can be properly tree-shaken and does not burden\n * the components that do not need that helper\n *\n * @module common/index\n */\n\n/**\n * TODO: Ideally this would be a NodeList.prototype.forEach polyfill\n * This seems to fail in IE8, requires more investigation.\n * See: https://github.com/imagitama/nodelist-foreach-polyfill\n *\n * @param {NodeListOf<Element>} nodes - NodeList from querySelectorAll()\n * @param {nodeListIterator} callback - Callback function to run for each node\n * @returns {void}\n */\nexport function nodeListForEach (nodes, callback) {\n if (window.NodeList.prototype.forEach) {\n return nodes.forEach(callback)\n }\n for (var i = 0; i < nodes.length; i++) {\n callback.call(window, nodes[i], i, nodes)\n }\n}\n\n/**\n * Used to generate a unique string, allows multiple instances of the component\n * without them conflicting with each other.\n * https://stackoverflow.com/a/8809472\n *\n * @returns {string} Unique ID\n */\nexport function generateUniqueID () {\n var d = new Date().getTime()\n if (typeof window.performance !== 'undefined' && typeof window.performance.now === 'function') {\n d += window.performance.now() // use high-precision timer if available\n }\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = (d + Math.random() * 16) % 16 | 0\n d = Math.floor(d / 16)\n return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16)\n })\n}\n\n/**\n * Config flattening function\n *\n * Takes any number of objects, flattens them into namespaced key-value pairs,\n * (e.g. {'i18n.showSection': 'Show section'}) and combines them together, with\n * greatest priority on the LAST item passed in.\n *\n * @returns {Object<string, unknown>} A flattened object of key-value pairs.\n */\nexport function mergeConfigs (/* configObject1, configObject2, ...configObjects */) {\n /**\n * Function to take nested objects and flatten them to a dot-separated keyed\n * object. Doing this means we don't need to do any deep/recursive merging of\n * each of our objects, nor transform our dataset from a flat list into a\n * nested object.\n *\n * @param {Object<string, unknown>} configObject - Deeply nested object\n * @returns {Object<string, unknown>} Flattened object with dot-separated keys\n */\n var flattenObject = function (configObject) {\n // Prepare an empty return object\n var flattenedObject = {}\n\n /**\n * Our flattening function, this is called recursively for each level of\n * depth in the object. At each level we prepend the previous level names to\n * the key using `prefix`.\n *\n * @param {Partial<Object<string, unknown>>} obj - Object to flatten\n * @param {string} [prefix] - Optional dot-separated prefix\n */\n var flattenLoop = function (obj, prefix) {\n // Loop through keys...\n for (var key in obj) {\n // Check to see if this is a prototypical key/value,\n // if it is, skip it.\n if (!Object.prototype.hasOwnProperty.call(obj, key)) {\n continue\n }\n var value = obj[key]\n var prefixedKey = prefix ? prefix + '.' + key : key\n if (typeof value === 'object') {\n // If the value is a nested object, recurse over that too\n flattenLoop(value, prefixedKey)\n } else {\n // Otherwise, add this value to our return object\n flattenedObject[prefixedKey] = value\n }\n }\n }\n\n // Kick off the recursive loop\n flattenLoop(configObject)\n return flattenedObject\n }\n\n // Start with an empty object as our base\n var formattedConfigObject = {}\n\n // Loop through each of the remaining passed objects and push their keys\n // one-by-one into configObject. Any duplicate keys will override the existing\n // key with the new value.\n for (var i = 0; i < arguments.length; i++) {\n var obj = flattenObject(arguments[i])\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n formattedConfigObject[key] = obj[key]\n }\n }\n }\n\n return formattedConfigObject\n}\n\n/**\n * Extracts keys starting with a particular namespace from a flattened config\n * object, removing the namespace in the process.\n *\n * @param {Object<string, unknown>} configObject - The object to extract key-value pairs from.\n * @param {string} namespace - The namespace to filter keys with.\n * @returns {Object<string, unknown>} Flattened object with dot-separated key namespace removed\n * @throws {Error} Config object required\n * @throws {Error} Namespace string required\n */\nexport function extractConfigByNamespace (configObject, namespace) {\n // Check we have what we need\n if (!configObject || typeof configObject !== 'object') {\n throw new Error('Provide a `configObject` of type \"object\".')\n }\n if (!namespace || typeof namespace !== 'string') {\n throw new Error('Provide a `namespace` of type \"string\" to filter the `configObject` by.')\n }\n var newObject = {}\n for (var key in configObject) {\n // Split the key into parts, using . as our namespace separator\n var keyParts = key.split('.')\n // Check if the first namespace matches the configured namespace\n if (Object.prototype.hasOwnProperty.call(configObject, key) && keyParts[0] === namespace) {\n // Remove the first item (the namespace) from the parts array,\n // but only if there is more than one part (we don't want blank keys!)\n if (keyParts.length > 1) {\n keyParts.shift()\n }\n // Join the remaining parts back together\n var newKey = keyParts.join('.')\n // Add them to our new object\n newObject[newKey] = configObject[key]\n }\n }\n return newObject\n}\n\n/**\n * @callback nodeListIterator\n * @param {Element} value - The current node being iterated on\n * @param {number} index - The current index in the iteration\n * @param {NodeListOf<Element>} nodes - NodeList from querySelectorAll()\n * @returns {void}\n */\n","(function(undefined) {\n\n// Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Object/defineProperty/detect.js\nvar detect = (\n // In IE8, defineProperty could only act on DOM elements, so full support\n // for the feature requires the ability to set a property on an arbitrary object\n 'defineProperty' in Object && (function() {\n \ttry {\n \t\tvar a = {};\n \t\tObject.defineProperty(a, 'test', {value:42});\n \t\treturn true;\n \t} catch(e) {\n \t\treturn false\n \t}\n }())\n)\n\nif (detect) return\n\n// Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Object.defineProperty&flags=always\n(function (nativeDefineProperty) {\n\n\tvar supportsAccessors = Object.prototype.hasOwnProperty('__defineGetter__');\n\tvar ERR_ACCESSORS_NOT_SUPPORTED = 'Getters & setters cannot be defined on this javascript engine';\n\tvar ERR_VALUE_ACCESSORS = 'A property cannot both have accessors and be writable or have a value';\n\n\tObject.defineProperty = function defineProperty(object, property, descriptor) {\n\n\t\t// Where native support exists, assume it\n\t\tif (nativeDefineProperty && (object === window || object === document || object === Element.prototype || object instanceof Element)) {\n\t\t\treturn nativeDefineProperty(object, property, descriptor);\n\t\t}\n\n\t\tif (object === null || !(object instanceof Object || typeof object === 'object')) {\n\t\t\tthrow new TypeError('Object.defineProperty called on non-object');\n\t\t}\n\n\t\tif (!(descriptor instanceof Object)) {\n\t\t\tthrow new TypeError('Property description must be an object');\n\t\t}\n\n\t\tvar propertyString = String(property);\n\t\tvar hasValueOrWritable = 'value' in descriptor || 'writable' in descriptor;\n\t\tvar getterType = 'get' in descriptor && typeof descriptor.get;\n\t\tvar setterType = 'set' in descriptor && typeof descriptor.set;\n\n\t\t// handle descriptor.get\n\t\tif (getterType) {\n\t\t\tif (getterType !== 'function') {\n\t\t\t\tthrow new TypeError('Getter must be a function');\n\t\t\t}\n\t\t\tif (!supportsAccessors) {\n\t\t\t\tthrow new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n\t\t\t}\n\t\t\tif (hasValueOrWritable) {\n\t\t\t\tthrow new TypeError(ERR_VALUE_ACCESSORS);\n\t\t\t}\n\t\t\tObject.__defineGetter__.call(object, propertyString, descriptor.get);\n\t\t} else {\n\t\t\tobject[propertyString] = descriptor.value;\n\t\t}\n\n\t\t// handle descriptor.set\n\t\tif (setterType) {\n\t\t\tif (setterType !== 'function') {\n\t\t\t\tthrow new TypeError('Setter must be a function');\n\t\t\t}\n\t\t\tif (!supportsAccessors) {\n\t\t\t\tthrow new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n\t\t\t}\n\t\t\tif (hasValueOrWritable) {\n\t\t\t\tthrow new TypeError(ERR_VALUE_ACCESSORS);\n\t\t\t}\n\t\t\tObject.__defineSetter__.call(object, propertyString, descriptor.set);\n\t\t}\n\n\t\t// OK to define value unconditionally - if a getter has been specified as well, an error would be thrown above\n\t\tif ('value' in descriptor) {\n\t\t\tobject[propertyString] = descriptor.value;\n\t\t}\n\n\t\treturn object;\n\t};\n}(Object.defineProperty));\n})\n.call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});\n","(function(undefined) {\n\n// Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Document/detect.js\nvar detect = (\"Document\" in this)\n\nif (detect) return\n\n// Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Document&flags=always\nif ((typeof WorkerGlobalScope === \"undefined\") && (typeof importScripts !== \"function\")) {\n\n\tif (this.HTMLDocument) { // IE8\n\n\t\t// HTMLDocument is an extension of Document. If the browser has HTMLDocument but not Document, the former will suffice as an alias for the latter.\n\t\tthis.Document = this.HTMLDocument;\n\n\t} else {\n\n\t\t// Create an empty function to act as the missing constructor for the document object, attach the document object as its prototype. The function needs to be anonymous else it is hoisted and causes the feature detect to prematurely pass, preventing the assignments below being made.\n\t\tthis.Document = this.HTMLDocument = document.constructor = (new Function('return function Document() {}')());\n\t\tthis.Document.prototype = document;\n\t}\n}\n\n\n})\n.call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});\n","import './Document.mjs'\n\n(function(undefined) {\n\n// Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Element/detect.js\nvar detect = ('Element' in this && 'HTMLElement' in this)\n\nif (detect) return\n\n// Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Element&flags=always\n(function () {\n\n\t// IE8\n\tif (window.Element && !window.HTMLElement) {\n\t\twindow.HTMLElement = window.Element;\n\t\treturn;\n\t}\n\n\t// create Element constructor\n\twindow.Element = window.HTMLElement = new Function('return function Element() {}')();\n\n\t// generate sandboxed iframe\n\tvar vbody = document.appendChild(document.createElement('body'));\n\tvar frame = vbody.appendChild(document.createElement('iframe'));\n\n\t// use sandboxed iframe to replicate Element functionality\n\tvar frameDocument = frame.contentWindow.document;\n\tvar prototype = Element.prototype = frameDocument.appendChild(frameDocument.createElement('*'));\n\tvar cache = {};\n\n\t// polyfill Element.prototype on an element\n\tvar shiv = function (element, deep) {\n\t\tvar\n\t\tchildNodes = element.childNodes || [],\n\t\tindex = -1,\n\t\tkey, value, childNode;\n\n\t\tif (element.nodeType === 1 && element.constructor !== Element) {\n\t\t\telement.constructor = Element;\n\n\t\t\tfor (key in cache) {\n\t\t\t\tvalue = cache[key];\n\t\t\t\telement[key] = value;\n\t\t\t}\n\t\t}\n\n\t\twhile (childNode = deep && childNodes[++index]) {\n\t\t\tshiv(childNode, deep);\n\t\t}\n\n\t\treturn element;\n\t};\n\n\tvar elements = document.getElementsByTagName('*');\n\tvar nativeCreateElement = document.createElement;\n\tvar interval;\n\tvar loopLimit = 100;\n\n\tprototype.attachEvent('onpropertychange', function (event) {\n\t\tvar\n\t\tpropertyName = event.propertyName,\n\t\tnonValue = !cache.hasOwnProperty(propertyName),\n\t\tnewValue = prototype[propertyName],\n\t\toldValue = cache[propertyName],\n\t\tindex = -1,\n\t\telement;\n\n\t\twhile (element = elements[++index]) {\n\t\t\tif (element.nodeType === 1) {\n\t\t\t\tif (nonValue || element[propertyName] === oldValue) {\n\t\t\t\t\telement[propertyName] = newValue;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tcache[propertyName] = newValue;\n\t});\n\n\tprototype.constructor = Element;\n\n\tif (!prototype.hasAttribute) {\n\t\t// <Element>.hasAttribute\n\t\tprototype.hasAttribute = function hasAttribute(name) {\n\t\t\treturn this.getAttribute(name) !== null;\n\t\t};\n\t}\n\n\t// Apply Element prototype to the pre-existing DOM as soon as the body element appears.\n\tfunction bodyCheck() {\n\t\tif (!(loopLimit--)) clearTimeout(interval);\n\t\tif (document.body && !document.body.prototype && /(complete|interactive)/.test(document.readyState)) {\n\t\t\tshiv(document, true);\n\t\t\tif (interval && document.body.prototype) clearTimeout(interval);\n\t\t\treturn (!!document.body.prototype);\n\t\t}\n\t\treturn false;\n\t}\n\tif (!bodyCheck()) {\n\t\tdocument.onreadystatechange = bodyCheck;\n\t\tinterval = setInterval(bodyCheck, 25);\n\t}\n\n\t// Apply to any new elements created after load\n\tdocument.createElement = function createElement(nodeName) {\n\t\tvar element = nativeCreateElement(String(nodeName).toLowerCase());\n\t\treturn shiv(element);\n\t};\n\n\t// remove sandboxed iframe\n\tdocument.removeChild(vbody);\n}());\n\n})\n.call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});\n","import '../../Object/defineProperty.mjs'\nimport '../../Element.mjs'\n\n(function(undefined) {\n\n // Detection from https://raw.githubusercontent.com/Financial-Times/polyfill-library/13cf7c340974d128d557580b5e2dafcd1b1192d1/polyfills/Element/prototype/dataset/detect.js\n var detect = (function(){\n if (!document.documentElement.dataset) {\n return false;\n }\n var el = document.createElement('div');\n el.setAttribute(\"data-a-b\", \"c\");\n return el.dataset && el.dataset.aB == \"c\";\n }())\n\n if (detect) return\n\n // Polyfill derived from https://raw.githubusercontent.com/Financial-Times/polyfill-library/13cf7c340974d128d557580b5e2dafcd1b1192d1/polyfills/Element/prototype/dataset/polyfill.js\n Object.defineProperty(Element.prototype, 'dataset', {\n get: function() {\n var element = this;\n var attributes = this.attributes;\n var map = {};\n \n for (var i = 0; i < attributes.length; i++) {\n var attribute = attributes[i];\n \n // This regex has been edited from the original polyfill, to add\n // support for period (.) separators in data-* attribute names. These\n // are allowed in the HTML spec, but were not covered by the original\n // polyfill's regex. We use periods in our i18n implementation.\n if (attribute && attribute.name && (/^data-\\w[.\\w-]*$/).test(attribute.name)) {\n var name = attribute.name;\n var value = attribute.value;\n \n var propName = name.substr(5).replace(/-./g, function (prop) {\n return prop.charAt(1).toUpperCase();\n });\n \n // If this browser supports __defineGetter__ and __defineSetter__,\n // continue using defineProperty. If not (like IE 8 and below), we use\n // a hacky fallback which at least gives an object in the right format\n if ('__defineGetter__' in Object.prototype && '__defineSetter__' in Object.prototype) {\n Object.defineProperty(map, propName, {\n enumerable: true,\n get: function() {\n return this.value;\n }.bind({value: value || ''}),\n set: function setter(name, value) {\n if (typeof value !== 'undefined') {\n this.setAttribute(name, value);\n } else {\n this.removeAttribute(name);\n }\n }.bind(element, name)\n });\n } else {\n map[propName] = value\n }\n\n }\n }\n \n return map;\n }\n });\n\n}).call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});","(function(undefined) {\n\n // Detection from https://github.com/mdn/content/blob/cf607d68522cd35ee7670782d3ee3a361eaef2e4/files/en-us/web/javascript/reference/global_objects/string/trim/index.md#polyfill\n var detect = ('trim' in String.prototype)\n \n if (detect) return\n\n // Polyfill from https://github.com/mdn/content/blob/cf607d68522cd35ee7670782d3ee3a361eaef2e4/files/en-us/web/javascript/reference/global_objects/string/trim/index.md#polyfill\n String.prototype.trim = function () {\n return this.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n };\n\n}).call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});\n","/* eslint-disable es-x/no-string-prototype-trim -- Polyfill imported */\n\nimport '../vendor/polyfills/Element/prototype/dataset.mjs'\nimport '../vendor/polyfills/String/prototype/trim.mjs'\n\n/**\n * Normalise string\n *\n * 'If it looks like a duck, and it quacks like a duck…' 🦆\n *\n * If the passed value looks like a boolean or a number, convert it to a boolean\n * or number.\n *\n * Designed to be used to convert config passed via data attributes (which are\n * always strings) into something sensible.\n *\n * @param {string} value - The value to normalise\n * @returns {string | boolean | number | undefined} Normalised data\n */\nexport function normaliseString (value) {\n if (typeof value !== 'string') {\n return value\n }\n\n var trimmedValue = value.trim()\n\n if (trimmedValue === 'true') {\n return true\n }\n\n if (trimmedValue === 'false') {\n return false\n }\n\n // Empty / whitespace-only strings are considered finite so we need to check\n // the length of the trimmed string as well\n if (trimmedValue.length > 0 && isFinite(trimmedValue)) {\n return Number(trimmedValue)\n }\n\n return value\n}\n\n/**\n * Normalise dataset\n *\n * Loop over an object and normalise each value using normaliseData function\n *\n * @param {DOMStringMap} dataset - HTML element dataset\n * @returns {Object<string, unknown>} Normalised dataset\n */\nexport function normaliseDataset (dataset) {\n var out = {}\n\n for (var key in dataset) {\n out[key] = normaliseString(dataset[key])\n }\n\n return out\n}\n","(function(undefined) {\n\n// Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Window/detect.js\nvar detect = ('Window' in this)\n\nif (detect) return\n\n// Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Window&flags=always\nif ((typeof WorkerGlobalScope === \"undefined\") && (typeof importScripts !== \"function\")) {\n\t(function (global) {\n\t\tif (global.constructor) {\n\t\t\tglobal.Window = global.constructor;\n\t\t} else {\n\t\t\t(global.Window = global.constructor = new Function('return function Window() {}')()).prototype = this;\n\t\t}\n\t}(this));\n}\n\n})\n.call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});\n","import './Window.mjs'\nimport './Element.mjs'\nimport './Object/defineProperty.mjs'\n\n(function(undefined) {\n\n// Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Event/detect.js\nvar detect = (\n (function(global) {\n\n \tif (!('Event' in global)) return false;\n \tif (typeof global.Event === 'function') return true;\n\n \ttry {\n\n \t\t// In IE 9-11, the Event object exists but cannot be instantiated\n \t\tnew Event('click');\n \t\treturn true;\n \t} catch(e) {\n \t\treturn false;\n \t}\n }(this))\n)\n\nif (detect) return\n\n// Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Event&flags=always\n(function () {\n\tvar unlistenableWindowEvents = {\n\t\tclick: 1,\n\t\tdblclick: 1,\n\t\tkeyup: 1,\n\t\tkeypress: 1,\n\t\tkeydown: 1,\n\t\tmousedown: 1,\n\t\tmouseup: 1,\n\t\tmousemove: 1,\n\t\tmouseover: 1,\n\t\tmouseenter: 1,\n\t\tmouseleave: 1,\n\t\tmouseout: 1,\n\t\tstorage: 1,\n\t\tstoragecommit: 1,\n\t\ttextinput: 1\n\t};\n\n\t// This polyfill depends on availability of `document` so will not run in a worker\n\t// However, we asssume there are no browsers with worker support that lack proper\n\t// support for `Event` within the worker\n\tif (typeof document === 'undefined' || typeof window === 'undefined') return;\n\n\tfunction indexOf(array, element) {\n\t\tvar\n\t\tindex = -1,\n\t\tlength = array.length;\n\n\t\twhile (++index < length) {\n\t\t\tif (index in array && array[index] === element) {\n\t\t\t\treturn index;\n\t\t\t}\n\t\t}\n\n\t\treturn -1;\n\t}\n\n\tvar existingProto = (window.Event && window.Event.prototype) || null;\n\twindow.Event = Window.prototype.Event = function Event(type, eventInitDict) {\n\t\tif (!type) {\n\t\t\tthrow new Error('Not enough arguments');\n\t\t}\n\n\t\tvar event;\n\t\t// Shortcut if browser supports createEvent\n\t\tif ('createEvent' in document) {\n\t\t\tevent = document.createEvent('Event');\n\t\t\tvar bubbles = eventInitDict && eventInitDict.bubbles !== undefined ? eventInitDict.bubbles : false;\n\t\t\tvar cancelable = eventInitDict && eventInitDict.cancelable !== undefined ? eventInitDict.cancelable : false;\n\n\t\t\tevent.initEvent(type, bubbles, cancelable);\n\n\t\t\treturn event;\n\t\t}\n\n\t\tevent = document.createEventObject();\n\n\t\tevent.type = type;\n\t\tevent.bubbles = eventInitDict && eventInitDict.bubbles !== undefined ? eventInitDict.bubbles : false;\n\t\tevent.cancelable = eventInitDict && eventInitDict.cancelable !== undefined ? eventInitDict.cancelable : false;\n\n\t\treturn event;\n\t};\n\tif (existingProto) {\n\t\tObject.defineProperty(window.Event, 'prototype', {\n\t\t\tconfigurable: false,\n\t\t\tenumerable: false,\n\t\t\twritable: true,\n\t\t\tvalue: existingProto\n\t\t});\n\t}\n\n\tif (!('createEvent' in document)) {\n\t\twindow.addEventListener = Window.prototype.addEventListener = Document.prototype.addEventListener = Element.prototype.addEventListener = function addEventListener() {\n\t\t\tvar\n\t\t\telement = this,\n\t\t\ttype = arguments[0],\n\t\t\tlistener = arguments[1];\n\n\t\t\tif (element === window && type in unlistenableWindowEvents) {\n\t\t\t\tthrow new Error('In IE8 the event: ' + type + ' is not available on the window object. Please see https://github.com/Financial-Times/polyfill-service/issues/317 for more information.');\n\t\t\t}\n\n\t\t\tif (!element._events) {\n\t\t\t\telement._events = {};\n\t\t\t}\n\n\t\t\tif (!element._events[type]) {\n\t\t\t\telement._events[type] = function (event) {\n\t\t\t\t\tvar\n\t\t\t\t\tlist = element._events[event.type].list,\n\t\t\t\t\tevents = list.slice(),\n\t\t\t\t\tindex = -1,\n\t\t\t\t\tlength = events.length,\n\t\t\t\t\teventElement;\n\n\t\t\t\t\tevent.preventDefault = function preventDefault() {\n\t\t\t\t\t\tif (event.cancelable !== false) {\n\t\t\t\t\t\t\tevent.returnValue = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tevent.stopPropagation = function stopPropagation() {\n\t\t\t\t\t\tevent.cancelBubble = true;\n\t\t\t\t\t};\n\n\t\t\t\t\tevent.stopImmediatePropagation = function stopImmediatePropagation() {\n\t\t\t\t\t\tevent.cancelBubble = true;\n\t\t\t\t\t\tevent.cancelImmediate = true;\n\t\t\t\t\t};\n\n\t\t\t\t\tevent.currentTarget = element;\n\t\t\t\t\tevent.relatedTarget = event.fromElement || null;\n\t\t\t\t\tevent.target = event.target || event.srcElement || element;\n\t\t\t\t\tevent.timeStamp = new Date().getTime();\n\n\t\t\t\t\tif (event.clientX) {\n\t\t\t\t\t\tevent.pageX = event.clientX + document.documentElement.scrollLeft;\n\t\t\t\t\t\tevent.pageY = event.clientY + document.documentElement.scrollTop;\n\t\t\t\t\t}\n\n\t\t\t\t\twhile (++index < length && !event.cancelImmediate) {\n\t\t\t\t\t\tif (index in events) {\n\t\t\t\t\t\t\teventElement = events[index];\n\n\t\t\t\t\t\t\tif (indexOf(list, eventElement) !== -1 && typeof eventElement === 'function') {\n\t\t\t\t\t\t\t\teventElement.call(element, event);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\telement._events[type].list = [];\n\n\t\t\t\tif (element.attachEvent) {\n\t\t\t\t\telement.attachEvent('on' + type, element._events[type]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\telement._events[type].list.push(listener);\n\t\t};\n\n\t\twindow.removeEventListener = Window.prototype.removeEventListener = Document.prototype.removeEventListener = Element.prototype.removeEventListener = function removeEventListener() {\n\t\t\tvar\n\t\t\telement = this,\n\t\t\ttype = arguments[0],\n\t\t\tlistener = arguments[1],\n\t\t\tindex;\n\n\t\t\tif (element._events && element._events[type] && element._events[type].list) {\n\t\t\t\tindex = indexOf(element._events[type].list, listener);\n\n\t\t\t\tif (index !== -1) {\n\t\t\t\t\telement._events[type].list.splice(index, 1);\n\n\t\t\t\t\tif (!element._events[type].list.length) {\n\t\t\t\t\t\tif (element.detachEvent) {\n\t\t\t\t\t\t\telement.detachEvent('on' + type, element._events[type]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdelete element._events[type];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\twindow.dispatchEvent = Window.prototype.dispatchEvent = Document.prototype.dispatchEvent = Element.prototype.dispatchEvent = function dispatchEvent(event) {\n\t\t\tif (!arguments.length) {\n\t\t\t\tthrow new Error('Not enough arguments');\n\t\t\t}\n\n\t\t\tif (!event || typeof event.type !== 'string') {\n\t\t\t\tthrow new Error('DOM Events Exception 0');\n\t\t\t}\n\n\t\t\tvar element = this, type = event.type;\n\n\t\t\ttry {\n\t\t\t\tif (!event.bubbles) {\n\t\t\t\t\tevent.cancelBubble = true;\n\n\t\t\t\t\tvar cancelBubbleEvent = function (event) {\n\t\t\t\t\t\tevent.cancelBubble = true;\n\n\t\t\t\t\t\t(element || window).detachEvent('on' + type, cancelBubbleEvent);\n\t\t\t\t\t};\n\n\t\t\t\t\tthis.attachEvent('on' + type, cancelBubbleEvent);\n\t\t\t\t}\n\n\t\t\t\tthis.fireEvent('on' + type, event);\n\t\t\t} catch (error) {\n\t\t\t\tevent.target = element;\n\n\t\t\t\tdo {\n\t\t\t\t\tevent.currentTarget = element;\n\n\t\t\t\t\tif ('_events' in element && typeof element._events[type] === 'function') {\n\t\t\t\t\t\telement._events[type].call(element, event);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (typeof element['on' + type] === 'function') {\n\t\t\t\t\t\telement['on' + type].call(element, event);\n\t\t\t\t\t}\n\n\t\t\t\t\telement = element.nodeType === 9 ? element.parentWindow : element.parentNode;\n\t\t\t\t} while (element && !event.cancelBubble);\n\t\t\t}\n\n\t\t\treturn true;\n\t\t};\n\n\t\t// Add the DOMContentLoaded Event\n\t\tdocument.attachEvent('onreadystatechange', function() {\n\t\t\tif (document.readyState === 'complete') {\n\t\t\t\tdocument.dispatchEvent(new Event('DOMContentLoaded', {\n\t\t\t\t\tbubbles: true\n\t\t\t\t}));\n\t\t\t}\n\t\t});\n\t}\n}());\n\n})\n.call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});\n","import '../../Object/defineProperty.mjs'\n\n(function(undefined) {\n // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Function/prototype/bind/detect.js\n var detect = 'bind' in Function.prototype\n\n if (detect) return\n\n // Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Function.prototype.bind&flags=always\n Object.defineProperty(Function.prototype, 'bind', {\n value: function bind(that) { // .length is 1\n // add necessary es5-shim utilities\n var $Array = Array;\n var $Object = Object;\n var ObjectPrototype = $Object.prototype;\n var ArrayPrototype = $Array.prototype;\n var Empty = function Empty() {};\n var to_string = ObjectPrototype.toString;\n var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n var isCallable; /* inlined from https://npmjs.com/is-callable */ var fnToStr = Function.prototype.toString, tryFunctionObject = function tryFunctionObject(value) { try { fnToStr.call(value); return true; } catch (e) { return false; } }, fnClass = '[object Function]', genClass = '[object GeneratorFunction]'; isCallable = function isCallable(value) { if (typeof value !== 'function') { return false; } if (hasToStringTag) { return tryFunctionObject(value); } var strClass = to_string.call(value); return strClass === fnClass || strClass === genClass; };\n var array_slice = ArrayPrototype.slice;\n var array_concat = ArrayPrototype.concat;\n var array_push = ArrayPrototype.push;\n var max = Math.max;\n // /add necessary es5-shim utilities\n\n // 1. Let Target be the this value.\n var target = this;\n // 2. If IsCallable(Target) is false, throw a TypeError exception.\n if (!isCallable(target)) {\n throw new TypeError('Function.prototype.bind called on incompatible ' + target);\n }\n // 3. Let A be a new (possibly empty) internal list of all of the\n // argument values provided after thisArg (arg1, arg2 etc), in order.\n // XXX slicedArgs will stand in for \"A\" if used\n var args = array_slice.call(arguments, 1); // for normal call\n // 4. Let F be a new native ECMAScript object.\n // 11. Set the [[Prototype]] internal property of F to the standard\n // built-in Function prototype object as specified in 15.3.3.1.\n // 12. Set the [[Call]] internal property of F as described in\n // 15.3.4.5.1.\n // 13. Set the [[Construct]] internal property of F as described in\n // 15.3.4.5.2.\n // 14. Set the [[HasInstance]] internal property of F as described in\n // 15.3.4.5.3.\n var bound;\n var binder = function () {\n\n if (this instanceof bound) {\n // 15.3.4.5.2 [[Construct]]\n // When the [[Construct]] internal method of a function object,\n // F that was created using the bind function is called with a\n // list of arguments ExtraArgs, the following steps are taken:\n // 1. Let target be the value of F's [[TargetFunction]]\n // internal property.\n // 2. If target has no [[Construct]] internal method, a\n // TypeError exception is thrown.\n // 3. Let boundArgs be the value of F's [[BoundArgs]] internal\n // property.\n // 4. Let args be a new list containing the same values as the\n // list boundArgs in the same order followed by the same\n // values as the list ExtraArgs in the same order.\n // 5. Return the result of calling the [[Construct]] internal\n // method of target providing args as the arguments.\n\n var result = target.apply(\n this,\n array_concat.call(args, array_slice.call(arguments))\n );\n if ($Object(result) === result) {\n return result;\n }\n return this;\n\n } else {\n // 15.3.4.5.1 [[Call]]\n // When the [[Call]] internal method of a function object, F,\n // which was created using the bind function is called with a\n // this value and a list of arguments ExtraArgs, the following\n // steps are taken:\n // 1. Let boundArgs be the value of F's [[BoundArgs]] internal\n // property.\n // 2. Let boundThis be the value of F's [[BoundThis]] internal\n // property.\n // 3. Let target be the value of F's [[TargetFunction]] internal\n // property.\n // 4. Let args be a new list containing the same values as the\n // list boundArgs in the same order followed by the same\n // values as the list ExtraArgs in the same order.\n // 5. Return the result of calling the [[Call]] internal method\n // of target providing boundThis as the this value and\n // providing args as the arguments.\n\n // equiv: target.call(this, ...boundArgs, ...args)\n return target.apply(\n that,\n array_concat.call(args, array_slice.call(arguments))\n );\n\n }\n\n };\n\n // 15. If the [[Class]] internal property of Target is \"Function\", then\n // a. Let L be the length property of Target minus the length of A.\n // b. Set the length own property of F to either 0 or L, whichever is\n // larger.\n // 16. Else set the length own property of F to 0.\n\n var boundLength = max(0, target.length - args.length);\n\n // 17. Set the attributes of the length own property of F to the values\n // specified in 15.3.5.1.\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n array_push.call(boundArgs, '$' + i);\n }\n\n // XXX Build a dynamic function with desired amount of arguments is the only\n // way to set the length property of a function.\n // In environments where Content Security Policies enabled (Chrome extensions,\n // for ex.) all use of eval or Function costructor throws an exception.\n // However in all of these environments Function.prototype.bind exists\n // and so this code will never be executed.\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this, arguments); }')(binder);\n\n if (target.prototype) {\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n // Clean up dangling references.\n Empty.prototype = null;\n }\n\n // TODO\n // 18. Set the [[Extensible]] internal property of F to true.\n\n // TODO\n // 19. Let thrower be the [[ThrowTypeError]] function Object (13.2.3).\n // 20. Call the [[DefineOwnProperty]] internal method of F with\n // arguments \"caller\", PropertyDescriptor {[[Get]]: thrower, [[Set]]:\n // thrower, [[Enumerable]]: false, [[Configurable]]: false}, and\n // false.\n // 21. Call the [[DefineOwnProperty]] internal method of F with\n // arguments \"arguments\", PropertyDescriptor {[[Get]]: thrower,\n // [[Set]]: thrower, [[Enumerable]]: false, [[Configurable]]: false},\n // and false.\n\n // TODO\n // NOTE Function objects created using Function.prototype.bind do not\n // have a prototype property or the [[Code]], [[FormalParameters]], and\n // [[Scope]] internal properties.\n // XXX can't delete prototype in pure-js.\n\n // 22. Return F.\n return bound;\n }\n });\n})\n.call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});\n","/* eslint-disable es-x/no-function-prototype-bind -- Polyfill imported */\n\nimport { mergeConfigs } from '../../common/index.mjs'\nimport { normaliseDataset } from '../../common/normalise-dataset.mjs'\nimport '../../vendor/polyfills/Event.mjs' // addEventListener, event.target normalization and DOMContentLoaded\nimport '../../vendor/polyfills/Function/prototype/bind.mjs'\n\nvar KEY_SPACE = 32\nvar DEBOUNCE_TIMEOUT_IN_SECONDS = 1\n\n/**\n * JavaScript enhancements for the Button component\n *\n * @class\n * @param {HTMLElement} $module - HTML element to use for button\n * @param {ButtonConfig} [config] - Button config\n */\nfunction Button ($module, config) {\n if (!$module) {\n return this\n }\n\n this.$module = $module\n this.debounceFormSubmitTimer = null\n\n var defaultConfig = {\n preventDoubleClick: false\n }\n this.config = mergeConfigs(\n defaultConfig,\n config || {},\n normaliseDataset($module.dataset)\n )\n}\n\n/**\n * Initialise component\n */\nButton.prototype.init = function () {\n if (!this.$module) {\n return\n }\n\n this.$module.addEventListener('keydown', this.handleKeyDown)\n this.$module.addEventListener('click', this.debounce.bind(this))\n}\n\n/**\n * Trigger a click event when the space key is pressed\n *\n * Some screen readers tell users they can activate things with the 'button'\n * role, so we need to match the functionality of native HTML buttons\n *\n * See https://github.com/alphagov/govuk_elements/pull/272#issuecomment-233028270\n *\n * @param {KeyboardEvent} event - Keydown event\n */\nButton.prototype.handleKeyDown = function (event) {\n var $target = event.target\n\n if ($target.getAttribute('role') === 'button' && event.keyCode === KEY_SPACE) {\n event.preventDefault() // prevent the page from scrolling\n $target.click()\n }\n}\n\n/**\n * Debounce double-clicks\n *\n * If the click quickly succeeds a previous click then nothing will happen. This\n * stops people accidentally causing multiple form submissions by double\n * clicking buttons.\n *\n * @param {MouseEvent} event - Mouse click event\n * @returns {undefined | false} Returns undefined, or false when debounced\n */\nButton.prototype.debounce = function (event) {\n // Check the button that was clicked has preventDoubleClick enabled\n if (!this.config.preventDoubleClick) {\n return\n }\n\n // If the timer is still running, prevent the click from submitting the form\n if (this.debounceFormSubmitTimer) {\n event.preventDefault()\n return false\n }\n\n this.debounceFormSubmitTimer = setTimeout(function () {\n this.debounceFormSubmitTimer = null\n }.bind(this), DEBOUNCE_TIMEOUT_IN_SECONDS * 1000)\n}\n\nexport default Button\n\n/**\n * Button config\n *\n * @typedef {object} ButtonConfig\n * @property {boolean} [preventDoubleClick = false] -\n * Prevent accidental double clicks on submit buttons from submitting forms\n * multiple times.\n */\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"button.js","sources":["../../../../src/govuk/common/index.mjs","../../../../src/govuk/vendor/polyfills/Object/defineProperty.mjs","../../../../src/govuk/vendor/polyfills/Document.mjs","../../../../src/govuk/vendor/polyfills/Element.mjs","../../../../src/govuk/vendor/polyfills/Element/prototype/dataset.mjs","../../../../src/govuk/vendor/polyfills/String/prototype/trim.mjs","../../../../src/govuk/common/normalise-dataset.mjs","../../../../src/govuk/vendor/polyfills/Window.mjs","../../../../src/govuk/vendor/polyfills/Event.mjs","../../../../src/govuk/vendor/polyfills/Function/prototype/bind.mjs","../../../../src/govuk/components/button/button.mjs"],"sourcesContent":["/**\n * Common helpers which do not require polyfill.\n *\n * IMPORTANT: If a helper require a polyfill, please isolate it in its own module\n * so that the polyfill can be properly tree-shaken and does not burden\n * the components that do not need that helper\n *\n * @module common/index\n */\n\n/**\n * TODO: Ideally this would be a NodeList.prototype.forEach polyfill\n * This seems to fail in IE8, requires more investigation.\n * See: https://github.com/imagitama/nodelist-foreach-polyfill\n *\n * @deprecated Will be made private in v5.0\n * @template {Node} ElementType\n * @param {NodeListOf<ElementType>} nodes - NodeList from querySelectorAll()\n * @param {nodeListIterator<ElementType>} callback - Callback function to run for each node\n * @returns {void}\n */\nexport function nodeListForEach (nodes, callback) {\n if (window.NodeList.prototype.forEach) {\n return nodes.forEach(callback)\n }\n for (var i = 0; i < nodes.length; i++) {\n callback.call(window, nodes[i], i, nodes)\n }\n}\n\n/**\n * Used to generate a unique string, allows multiple instances of the component\n * without them conflicting with each other.\n * https://stackoverflow.com/a/8809472\n *\n * @deprecated Will be made private in v5.0\n * @returns {string} Unique ID\n */\nexport function generateUniqueID () {\n var d = new Date().getTime()\n if (typeof window.performance !== 'undefined' && typeof window.performance.now === 'function') {\n d += window.performance.now() // use high-precision timer if available\n }\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = (d + Math.random() * 16) % 16 | 0\n d = Math.floor(d / 16)\n return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16)\n })\n}\n\n/**\n * Config flattening function\n *\n * Takes any number of objects, flattens them into namespaced key-value pairs,\n * (e.g. {'i18n.showSection': 'Show section'}) and combines them together, with\n * greatest priority on the LAST item passed in.\n *\n * @deprecated Will be made private in v5.0\n * @returns {Object<string, unknown>} A flattened object of key-value pairs.\n */\nexport function mergeConfigs (/* configObject1, configObject2, ...configObjects */) {\n /**\n * Function to take nested objects and flatten them to a dot-separated keyed\n * object. Doing this means we don't need to do any deep/recursive merging of\n * each of our objects, nor transform our dataset from a flat list into a\n * nested object.\n *\n * @param {Object<string, unknown>} configObject - Deeply nested object\n * @returns {Object<string, unknown>} Flattened object with dot-separated keys\n */\n var flattenObject = function (configObject) {\n // Prepare an empty return object\n /** @type {Object<string, unknown>} */\n var flattenedObject = {}\n\n /**\n * Our flattening function, this is called recursively for each level of\n * depth in the object. At each level we prepend the previous level names to\n * the key using `prefix`.\n *\n * @param {Partial<Object<string, unknown>>} obj - Object to flatten\n * @param {string} [prefix] - Optional dot-separated prefix\n */\n var flattenLoop = function (obj, prefix) {\n // Loop through keys...\n for (var key in obj) {\n // Check to see if this is a prototypical key/value,\n // if it is, skip it.\n if (!Object.prototype.hasOwnProperty.call(obj, key)) {\n continue\n }\n var value = obj[key]\n var prefixedKey = prefix ? prefix + '.' + key : key\n if (typeof value === 'object') {\n // If the value is a nested object, recurse over that too\n flattenLoop(value, prefixedKey)\n } else {\n // Otherwise, add this value to our return object\n flattenedObject[prefixedKey] = value\n }\n }\n }\n\n // Kick off the recursive loop\n flattenLoop(configObject)\n return flattenedObject\n }\n\n // Start with an empty object as our base\n /** @type {Object<string, unknown>} */\n var formattedConfigObject = {}\n\n // Loop through each of the remaining passed objects and push their keys\n // one-by-one into configObject. Any duplicate keys will override the existing\n // key with the new value.\n for (var i = 0; i < arguments.length; i++) {\n var obj = flattenObject(arguments[i])\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n formattedConfigObject[key] = obj[key]\n }\n }\n }\n\n return formattedConfigObject\n}\n\n/**\n * Extracts keys starting with a particular namespace from a flattened config\n * object, removing the namespace in the process.\n *\n * @deprecated Will be made private in v5.0\n * @param {Object<string, unknown>} configObject - The object to extract key-value pairs from.\n * @param {string} namespace - The namespace to filter keys with.\n * @returns {Object<string, unknown>} Flattened object with dot-separated key namespace removed\n * @throws {Error} Config object required\n * @throws {Error} Namespace string required\n */\nexport function extractConfigByNamespace (configObject, namespace) {\n // Check we have what we need\n if (!configObject || typeof configObject !== 'object') {\n throw new Error('Provide a `configObject` of type \"object\".')\n }\n\n if (!namespace || typeof namespace !== 'string') {\n throw new Error('Provide a `namespace` of type \"string\" to filter the `configObject` by.')\n }\n\n /** @type {Object<string, unknown>} */\n var newObject = {}\n\n for (var key in configObject) {\n // Split the key into parts, using . as our namespace separator\n var keyParts = key.split('.')\n // Check if the first namespace matches the configured namespace\n if (Object.prototype.hasOwnProperty.call(configObject, key) && keyParts[0] === namespace) {\n // Remove the first item (the namespace) from the parts array,\n // but only if there is more than one part (we don't want blank keys!)\n if (keyParts.length > 1) {\n keyParts.shift()\n }\n // Join the remaining parts back together\n var newKey = keyParts.join('.')\n // Add them to our new object\n newObject[newKey] = configObject[key]\n }\n }\n return newObject\n}\n\n/**\n * @template {Node} ElementType\n * @callback nodeListIterator\n * @param {ElementType} value - The current node being iterated on\n * @param {number} index - The current index in the iteration\n * @param {NodeListOf<ElementType>} nodes - NodeList from querySelectorAll()\n * @returns {void}\n */\n","// @ts-nocheck\n(function (undefined) {\n\n// Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Object/defineProperty/detect.js\nvar detect = (\n // In IE8, defineProperty could only act on DOM elements, so full support\n // for the feature requires the ability to set a property on an arbitrary object\n 'defineProperty' in Object && (function() {\n \ttry {\n \t\tvar a = {};\n \t\tObject.defineProperty(a, 'test', {value:42});\n \t\treturn true;\n \t} catch(e) {\n \t\treturn false\n \t}\n }())\n)\n\nif (detect) return\n\n// Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Object.defineProperty&flags=always\n(function (nativeDefineProperty) {\n\n\tvar supportsAccessors = Object.prototype.hasOwnProperty('__defineGetter__');\n\tvar ERR_ACCESSORS_NOT_SUPPORTED = 'Getters & setters cannot be defined on this javascript engine';\n\tvar ERR_VALUE_ACCESSORS = 'A property cannot both have accessors and be writable or have a value';\n\n\tObject.defineProperty = function defineProperty(object, property, descriptor) {\n\n\t\t// Where native support exists, assume it\n\t\tif (nativeDefineProperty && (object === window || object === document || object === Element.prototype || object instanceof Element)) {\n\t\t\treturn nativeDefineProperty(object, property, descriptor);\n\t\t}\n\n\t\tif (object === null || !(object instanceof Object || typeof object === 'object')) {\n\t\t\tthrow new TypeError('Object.defineProperty called on non-object');\n\t\t}\n\n\t\tif (!(descriptor instanceof Object)) {\n\t\t\tthrow new TypeError('Property description must be an object');\n\t\t}\n\n\t\tvar propertyString = String(property);\n\t\tvar hasValueOrWritable = 'value' in descriptor || 'writable' in descriptor;\n\t\tvar getterType = 'get' in descriptor && typeof descriptor.get;\n\t\tvar setterType = 'set' in descriptor && typeof descriptor.set;\n\n\t\t// handle descriptor.get\n\t\tif (getterType) {\n\t\t\tif (getterType !== 'function') {\n\t\t\t\tthrow new TypeError('Getter must be a function');\n\t\t\t}\n\t\t\tif (!supportsAccessors) {\n\t\t\t\tthrow new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n\t\t\t}\n\t\t\tif (hasValueOrWritable) {\n\t\t\t\tthrow new TypeError(ERR_VALUE_ACCESSORS);\n\t\t\t}\n\t\t\tObject.__defineGetter__.call(object, propertyString, descriptor.get);\n\t\t} else {\n\t\t\tobject[propertyString] = descriptor.value;\n\t\t}\n\n\t\t// handle descriptor.set\n\t\tif (setterType) {\n\t\t\tif (setterType !== 'function') {\n\t\t\t\tthrow new TypeError('Setter must be a function');\n\t\t\t}\n\t\t\tif (!supportsAccessors) {\n\t\t\t\tthrow new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n\t\t\t}\n\t\t\tif (hasValueOrWritable) {\n\t\t\t\tthrow new TypeError(ERR_VALUE_ACCESSORS);\n\t\t\t}\n\t\t\tObject.__defineSetter__.call(object, propertyString, descriptor.set);\n\t\t}\n\n\t\t// OK to define value unconditionally - if a getter has been specified as well, an error would be thrown above\n\t\tif ('value' in descriptor) {\n\t\t\tobject[propertyString] = descriptor.value;\n\t\t}\n\n\t\treturn object;\n\t};\n}(Object.defineProperty));\n})\n.call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});\n","// @ts-nocheck\n(function (undefined) {\n\n// Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Document/detect.js\nvar detect = (\"Document\" in this)\n\nif (detect) return\n\n// Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Document&flags=always\nif ((typeof WorkerGlobalScope === \"undefined\") && (typeof importScripts !== \"function\")) {\n\n\tif (this.HTMLDocument) { // IE8\n\n\t\t// HTMLDocument is an extension of Document. If the browser has HTMLDocument but not Document, the former will suffice as an alias for the latter.\n\t\tthis.Document = this.HTMLDocument;\n\n\t} else {\n\n\t\t// Create an empty function to act as the missing constructor for the document object, attach the document object as its prototype. The function needs to be anonymous else it is hoisted and causes the feature detect to prematurely pass, preventing the assignments below being made.\n\t\tthis.Document = this.HTMLDocument = document.constructor = (new Function('return function Document() {}')());\n\t\tthis.Document.prototype = document;\n\t}\n}\n\n\n})\n.call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});\n","// @ts-nocheck\nimport './Document.mjs'\n\n(function(undefined) {\n\n// Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Element/detect.js\nvar detect = ('Element' in this && 'HTMLElement' in this)\n\nif (detect) return\n\n// Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Element&flags=always\n(function () {\n\n\t// IE8\n\tif (window.Element && !window.HTMLElement) {\n\t\twindow.HTMLElement = window.Element;\n\t\treturn;\n\t}\n\n\t// create Element constructor\n\twindow.Element = window.HTMLElement = new Function('return function Element() {}')();\n\n\t// generate sandboxed iframe\n\tvar vbody = document.appendChild(document.createElement('body'));\n\tvar frame = vbody.appendChild(document.createElement('iframe'));\n\n\t// use sandboxed iframe to replicate Element functionality\n\tvar frameDocument = frame.contentWindow.document;\n\tvar prototype = Element.prototype = frameDocument.appendChild(frameDocument.createElement('*'));\n\tvar cache = {};\n\n\t// polyfill Element.prototype on an element\n\tvar shiv = function (element, deep) {\n\t\tvar\n\t\tchildNodes = element.childNodes || [],\n\t\tindex = -1,\n\t\tkey, value, childNode;\n\n\t\tif (element.nodeType === 1 && element.constructor !== Element) {\n\t\t\telement.constructor = Element;\n\n\t\t\tfor (key in cache) {\n\t\t\t\tvalue = cache[key];\n\t\t\t\telement[key] = value;\n\t\t\t}\n\t\t}\n\n\t\twhile (childNode = deep && childNodes[++index]) {\n\t\t\tshiv(childNode, deep);\n\t\t}\n\n\t\treturn element;\n\t};\n\n\tvar elements = document.getElementsByTagName('*');\n\tvar nativeCreateElement = document.createElement;\n\tvar interval;\n\tvar loopLimit = 100;\n\n\tprototype.attachEvent('onpropertychange', function (event) {\n\t\tvar\n\t\tpropertyName = event.propertyName,\n\t\tnonValue = !cache.hasOwnProperty(propertyName),\n\t\tnewValue = prototype[propertyName],\n\t\toldValue = cache[propertyName],\n\t\tindex = -1,\n\t\telement;\n\n\t\twhile (element = elements[++index]) {\n\t\t\tif (element.nodeType === 1) {\n\t\t\t\tif (nonValue || element[propertyName] === oldValue) {\n\t\t\t\t\telement[propertyName] = newValue;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tcache[propertyName] = newValue;\n\t});\n\n\tprototype.constructor = Element;\n\n\tif (!prototype.hasAttribute) {\n\t\t// <Element>.hasAttribute\n\t\tprototype.hasAttribute = function hasAttribute(name) {\n\t\t\treturn this.getAttribute(name) !== null;\n\t\t};\n\t}\n\n\t// Apply Element prototype to the pre-existing DOM as soon as the body element appears.\n\tfunction bodyCheck() {\n\t\tif (!(loopLimit--)) clearTimeout(interval);\n\t\tif (document.body && !document.body.prototype && /(complete|interactive)/.test(document.readyState)) {\n\t\t\tshiv(document, true);\n\t\t\tif (interval && document.body.prototype) clearTimeout(interval);\n\t\t\treturn (!!document.body.prototype);\n\t\t}\n\t\treturn false;\n\t}\n\tif (!bodyCheck()) {\n\t\tdocument.onreadystatechange = bodyCheck;\n\t\tinterval = setInterval(bodyCheck, 25);\n\t}\n\n\t// Apply to any new elements created after load\n\tdocument.createElement = function createElement(nodeName) {\n\t\tvar element = nativeCreateElement(String(nodeName).toLowerCase());\n\t\treturn shiv(element);\n\t};\n\n\t// remove sandboxed iframe\n\tdocument.removeChild(vbody);\n}());\n\n})\n.call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});\n","// @ts-nocheck\nimport '../../Object/defineProperty.mjs'\nimport '../../Element.mjs'\n\n(function(undefined) {\n\n // Detection from https://raw.githubusercontent.com/Financial-Times/polyfill-library/13cf7c340974d128d557580b5e2dafcd1b1192d1/polyfills/Element/prototype/dataset/detect.js\n var detect = (function(){\n if (!document.documentElement.dataset) {\n return false;\n }\n var el = document.createElement('div');\n el.setAttribute(\"data-a-b\", \"c\");\n return el.dataset && el.dataset.aB == \"c\";\n }())\n\n if (detect) return\n\n // Polyfill derived from https://raw.githubusercontent.com/Financial-Times/polyfill-library/13cf7c340974d128d557580b5e2dafcd1b1192d1/polyfills/Element/prototype/dataset/polyfill.js\n Object.defineProperty(Element.prototype, 'dataset', {\n get: function() {\n var element = this;\n var attributes = this.attributes;\n var map = {};\n\n for (var i = 0; i < attributes.length; i++) {\n var attribute = attributes[i];\n\n // This regex has been edited from the original polyfill, to add\n // support for period (.) separators in data-* attribute names. These\n // are allowed in the HTML spec, but were not covered by the original\n // polyfill's regex. We use periods in our i18n implementation.\n if (attribute && attribute.name && (/^data-\\w[.\\w-]*$/).test(attribute.name)) {\n var name = attribute.name;\n var value = attribute.value;\n\n var propName = name.substr(5).replace(/-./g, function (prop) {\n return prop.charAt(1).toUpperCase();\n });\n\n // If this browser supports __defineGetter__ and __defineSetter__,\n // continue using defineProperty. If not (like IE 8 and below), we use\n // a hacky fallback which at least gives an object in the right format\n if ('__defineGetter__' in Object.prototype && '__defineSetter__' in Object.prototype) {\n Object.defineProperty(map, propName, {\n enumerable: true,\n get: function() {\n return this.value;\n }.bind({value: value || ''}),\n set: function setter(name, value) {\n if (typeof value !== 'undefined') {\n this.setAttribute(name, value);\n } else {\n this.removeAttribute(name);\n }\n }.bind(element, name)\n });\n } else {\n map[propName] = value\n }\n\n }\n }\n\n return map;\n }\n });\n\n}).call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});","// @ts-nocheck\n(function (undefined) {\n\n // Detection from https://github.com/mdn/content/blob/cf607d68522cd35ee7670782d3ee3a361eaef2e4/files/en-us/web/javascript/reference/global_objects/string/trim/index.md#polyfill\n var detect = ('trim' in String.prototype)\n\n if (detect) return\n\n // Polyfill from https://github.com/mdn/content/blob/cf607d68522cd35ee7670782d3ee3a361eaef2e4/files/en-us/web/javascript/reference/global_objects/string/trim/index.md#polyfill\n String.prototype.trim = function () {\n return this.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n };\n\n}).call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});\n","/* eslint-disable es-x/no-string-prototype-trim -- Polyfill imported */\n\nimport '../vendor/polyfills/Element/prototype/dataset.mjs'\nimport '../vendor/polyfills/String/prototype/trim.mjs'\n\n/**\n * Normalise string\n *\n * 'If it looks like a duck, and it quacks like a duck…' 🦆\n *\n * If the passed value looks like a boolean or a number, convert it to a boolean\n * or number.\n *\n * Designed to be used to convert config passed via data attributes (which are\n * always strings) into something sensible.\n *\n * @deprecated Will be made private in v5.0\n * @param {string} value - The value to normalise\n * @returns {string | boolean | number | undefined} Normalised data\n */\nexport function normaliseString (value) {\n if (typeof value !== 'string') {\n return value\n }\n\n var trimmedValue = value.trim()\n\n if (trimmedValue === 'true') {\n return true\n }\n\n if (trimmedValue === 'false') {\n return false\n }\n\n // Empty / whitespace-only strings are considered finite so we need to check\n // the length of the trimmed string as well\n if (trimmedValue.length > 0 && isFinite(Number(trimmedValue))) {\n return Number(trimmedValue)\n }\n\n return value\n}\n\n/**\n * Normalise dataset\n *\n * Loop over an object and normalise each value using normaliseData function\n *\n * @deprecated Will be made private in v5.0\n * @param {DOMStringMap} dataset - HTML element dataset\n * @returns {Object<string, unknown>} Normalised dataset\n */\nexport function normaliseDataset (dataset) {\n /** @type {Object<string, unknown>} */\n var out = {}\n\n for (var key in dataset) {\n out[key] = normaliseString(dataset[key])\n }\n\n return out\n}\n","// @ts-nocheck\n(function (undefined) {\n\n// Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Window/detect.js\nvar detect = ('Window' in this)\n\nif (detect) return\n\n// Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Window&flags=always\nif ((typeof WorkerGlobalScope === \"undefined\") && (typeof importScripts !== \"function\")) {\n\t(function (global) {\n\t\tif (global.constructor) {\n\t\t\tglobal.Window = global.constructor;\n\t\t} else {\n\t\t\t(global.Window = global.constructor = new Function('return function Window() {}')()).prototype = this;\n\t\t}\n\t}(this));\n}\n\n})\n.call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});\n","// @ts-nocheck\nimport './Window.mjs'\nimport './Element.mjs'\nimport './Object/defineProperty.mjs'\n\n(function(undefined) {\n\n// Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Event/detect.js\nvar detect = (\n (function(global) {\n\n \tif (!('Event' in global)) return false;\n \tif (typeof global.Event === 'function') return true;\n\n \ttry {\n\n \t\t// In IE 9-11, the Event object exists but cannot be instantiated\n \t\tnew Event('click');\n \t\treturn true;\n \t} catch(e) {\n \t\treturn false;\n \t}\n }(this))\n)\n\nif (detect) return\n\n// Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Event&flags=always\n(function () {\n\tvar unlistenableWindowEvents = {\n\t\tclick: 1,\n\t\tdblclick: 1,\n\t\tkeyup: 1,\n\t\tkeypress: 1,\n\t\tkeydown: 1,\n\t\tmousedown: 1,\n\t\tmouseup: 1,\n\t\tmousemove: 1,\n\t\tmouseover: 1,\n\t\tmouseenter: 1,\n\t\tmouseleave: 1,\n\t\tmouseout: 1,\n\t\tstorage: 1,\n\t\tstoragecommit: 1,\n\t\ttextinput: 1\n\t};\n\n\t// This polyfill depends on availability of `document` so will not run in a worker\n\t// However, we asssume there are no browsers with worker support that lack proper\n\t// support for `Event` within the worker\n\tif (typeof document === 'undefined' || typeof window === 'undefined') return;\n\n\tfunction indexOf(array, element) {\n\t\tvar\n\t\tindex = -1,\n\t\tlength = array.length;\n\n\t\twhile (++index < length) {\n\t\t\tif (index in array && array[index] === element) {\n\t\t\t\treturn index;\n\t\t\t}\n\t\t}\n\n\t\treturn -1;\n\t}\n\n\tvar existingProto = (window.Event && window.Event.prototype) || null;\n\twindow.Event = Window.prototype.Event = function Event(type, eventInitDict) {\n\t\tif (!type) {\n\t\t\tthrow new Error('Not enough arguments');\n\t\t}\n\n\t\tvar event;\n\t\t// Shortcut if browser supports createEvent\n\t\tif ('createEvent' in document) {\n\t\t\tevent = document.createEvent('Event');\n\t\t\tvar bubbles = eventInitDict && eventInitDict.bubbles !== undefined ? eventInitDict.bubbles : false;\n\t\t\tvar cancelable = eventInitDict && eventInitDict.cancelable !== undefined ? eventInitDict.cancelable : false;\n\n\t\t\tevent.initEvent(type, bubbles, cancelable);\n\n\t\t\treturn event;\n\t\t}\n\n\t\tevent = document.createEventObject();\n\n\t\tevent.type = type;\n\t\tevent.bubbles = eventInitDict && eventInitDict.bubbles !== undefined ? eventInitDict.bubbles : false;\n\t\tevent.cancelable = eventInitDict && eventInitDict.cancelable !== undefined ? eventInitDict.cancelable : false;\n\n\t\treturn event;\n\t};\n\tif (existingProto) {\n\t\tObject.defineProperty(window.Event, 'prototype', {\n\t\t\tconfigurable: false,\n\t\t\tenumerable: false,\n\t\t\twritable: true,\n\t\t\tvalue: existingProto\n\t\t});\n\t}\n\n\tif (!('createEvent' in document)) {\n\t\twindow.addEventListener = Window.prototype.addEventListener = Document.prototype.addEventListener = Element.prototype.addEventListener = function addEventListener() {\n\t\t\tvar\n\t\t\telement = this,\n\t\t\ttype = arguments[0],\n\t\t\tlistener = arguments[1];\n\n\t\t\tif (element === window && type in unlistenableWindowEvents) {\n\t\t\t\tthrow new Error('In IE8 the event: ' + type + ' is not available on the window object. Please see https://github.com/Financial-Times/polyfill-service/issues/317 for more information.');\n\t\t\t}\n\n\t\t\tif (!element._events) {\n\t\t\t\telement._events = {};\n\t\t\t}\n\n\t\t\tif (!element._events[type]) {\n\t\t\t\telement._events[type] = function (event) {\n\t\t\t\t\tvar\n\t\t\t\t\tlist = element._events[event.type].list,\n\t\t\t\t\tevents = list.slice(),\n\t\t\t\t\tindex = -1,\n\t\t\t\t\tlength = events.length,\n\t\t\t\t\teventElement;\n\n\t\t\t\t\tevent.preventDefault = function preventDefault() {\n\t\t\t\t\t\tif (event.cancelable !== false) {\n\t\t\t\t\t\t\tevent.returnValue = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tevent.stopPropagation = function stopPropagation() {\n\t\t\t\t\t\tevent.cancelBubble = true;\n\t\t\t\t\t};\n\n\t\t\t\t\tevent.stopImmediatePropagation = function stopImmediatePropagation() {\n\t\t\t\t\t\tevent.cancelBubble = true;\n\t\t\t\t\t\tevent.cancelImmediate = true;\n\t\t\t\t\t};\n\n\t\t\t\t\tevent.currentTarget = element;\n\t\t\t\t\tevent.relatedTarget = event.fromElement || null;\n\t\t\t\t\tevent.target = event.target || event.srcElement || element;\n\t\t\t\t\tevent.timeStamp = new Date().getTime();\n\n\t\t\t\t\tif (event.clientX) {\n\t\t\t\t\t\tevent.pageX = event.clientX + document.documentElement.scrollLeft;\n\t\t\t\t\t\tevent.pageY = event.clientY + document.documentElement.scrollTop;\n\t\t\t\t\t}\n\n\t\t\t\t\twhile (++index < length && !event.cancelImmediate) {\n\t\t\t\t\t\tif (index in events) {\n\t\t\t\t\t\t\teventElement = events[index];\n\n\t\t\t\t\t\t\tif (indexOf(list, eventElement) !== -1 && typeof eventElement === 'function') {\n\t\t\t\t\t\t\t\teventElement.call(element, event);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\telement._events[type].list = [];\n\n\t\t\t\tif (element.attachEvent) {\n\t\t\t\t\telement.attachEvent('on' + type, element._events[type]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\telement._events[type].list.push(listener);\n\t\t};\n\n\t\twindow.removeEventListener = Window.prototype.removeEventListener = Document.prototype.removeEventListener = Element.prototype.removeEventListener = function removeEventListener() {\n\t\t\tvar\n\t\t\telement = this,\n\t\t\ttype = arguments[0],\n\t\t\tlistener = arguments[1],\n\t\t\tindex;\n\n\t\t\tif (element._events && element._events[type] && element._events[type].list) {\n\t\t\t\tindex = indexOf(element._events[type].list, listener);\n\n\t\t\t\tif (index !== -1) {\n\t\t\t\t\telement._events[type].list.splice(index, 1);\n\n\t\t\t\t\tif (!element._events[type].list.length) {\n\t\t\t\t\t\tif (element.detachEvent) {\n\t\t\t\t\t\t\telement.detachEvent('on' + type, element._events[type]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdelete element._events[type];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\twindow.dispatchEvent = Window.prototype.dispatchEvent = Document.prototype.dispatchEvent = Element.prototype.dispatchEvent = function dispatchEvent(event) {\n\t\t\tif (!arguments.length) {\n\t\t\t\tthrow new Error('Not enough arguments');\n\t\t\t}\n\n\t\t\tif (!event || typeof event.type !== 'string') {\n\t\t\t\tthrow new Error('DOM Events Exception 0');\n\t\t\t}\n\n\t\t\tvar element = this, type = event.type;\n\n\t\t\ttry {\n\t\t\t\tif (!event.bubbles) {\n\t\t\t\t\tevent.cancelBubble = true;\n\n\t\t\t\t\tvar cancelBubbleEvent = function (event) {\n\t\t\t\t\t\tevent.cancelBubble = true;\n\n\t\t\t\t\t\t(element || window).detachEvent('on' + type, cancelBubbleEvent);\n\t\t\t\t\t};\n\n\t\t\t\t\tthis.attachEvent('on' + type, cancelBubbleEvent);\n\t\t\t\t}\n\n\t\t\t\tthis.fireEvent('on' + type, event);\n\t\t\t} catch (error) {\n\t\t\t\tevent.target = element;\n\n\t\t\t\tdo {\n\t\t\t\t\tevent.currentTarget = element;\n\n\t\t\t\t\tif ('_events' in element && typeof element._events[type] === 'function') {\n\t\t\t\t\t\telement._events[type].call(element, event);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (typeof element['on' + type] === 'function') {\n\t\t\t\t\t\telement['on' + type].call(element, event);\n\t\t\t\t\t}\n\n\t\t\t\t\telement = element.nodeType === 9 ? element.parentWindow : element.parentNode;\n\t\t\t\t} while (element && !event.cancelBubble);\n\t\t\t}\n\n\t\t\treturn true;\n\t\t};\n\n\t\t// Add the DOMContentLoaded Event\n\t\tdocument.attachEvent('onreadystatechange', function() {\n\t\t\tif (document.readyState === 'complete') {\n\t\t\t\tdocument.dispatchEvent(new Event('DOMContentLoaded', {\n\t\t\t\t\tbubbles: true\n\t\t\t\t}));\n\t\t\t}\n\t\t});\n\t}\n}());\n\n})\n.call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});\n","// @ts-nocheck\nimport '../../Object/defineProperty.mjs'\n\n(function(undefined) {\n // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Function/prototype/bind/detect.js\n var detect = 'bind' in Function.prototype\n\n if (detect) return\n\n // Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Function.prototype.bind&flags=always\n Object.defineProperty(Function.prototype, 'bind', {\n value: function bind(that) { // .length is 1\n // add necessary es5-shim utilities\n var $Array = Array;\n var $Object = Object;\n var ObjectPrototype = $Object.prototype;\n var ArrayPrototype = $Array.prototype;\n var Empty = function Empty() {};\n var to_string = ObjectPrototype.toString;\n var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n var isCallable; /* inlined from https://npmjs.com/is-callable */ var fnToStr = Function.prototype.toString, tryFunctionObject = function tryFunctionObject(value) { try { fnToStr.call(value); return true; } catch (e) { return false; } }, fnClass = '[object Function]', genClass = '[object GeneratorFunction]'; isCallable = function isCallable(value) { if (typeof value !== 'function') { return false; } if (hasToStringTag) { return tryFunctionObject(value); } var strClass = to_string.call(value); return strClass === fnClass || strClass === genClass; };\n var array_slice = ArrayPrototype.slice;\n var array_concat = ArrayPrototype.concat;\n var array_push = ArrayPrototype.push;\n var max = Math.max;\n // /add necessary es5-shim utilities\n\n // 1. Let Target be the this value.\n var target = this;\n // 2. If IsCallable(Target) is false, throw a TypeError exception.\n if (!isCallable(target)) {\n throw new TypeError('Function.prototype.bind called on incompatible ' + target);\n }\n // 3. Let A be a new (possibly empty) internal list of all of the\n // argument values provided after thisArg (arg1, arg2 etc), in order.\n // XXX slicedArgs will stand in for \"A\" if used\n var args = array_slice.call(arguments, 1); // for normal call\n // 4. Let F be a new native ECMAScript object.\n // 11. Set the [[Prototype]] internal property of F to the standard\n // built-in Function prototype object as specified in 15.3.3.1.\n // 12. Set the [[Call]] internal property of F as described in\n // 15.3.4.5.1.\n // 13. Set the [[Construct]] internal property of F as described in\n // 15.3.4.5.2.\n // 14. Set the [[HasInstance]] internal property of F as described in\n // 15.3.4.5.3.\n var bound;\n var binder = function () {\n\n if (this instanceof bound) {\n // 15.3.4.5.2 [[Construct]]\n // When the [[Construct]] internal method of a function object,\n // F that was created using the bind function is called with a\n // list of arguments ExtraArgs, the following steps are taken:\n // 1. Let target be the value of F's [[TargetFunction]]\n // internal property.\n // 2. If target has no [[Construct]] internal method, a\n // TypeError exception is thrown.\n // 3. Let boundArgs be the value of F's [[BoundArgs]] internal\n // property.\n // 4. Let args be a new list containing the same values as the\n // list boundArgs in the same order followed by the same\n // values as the list ExtraArgs in the same order.\n // 5. Return the result of calling the [[Construct]] internal\n // method of target providing args as the arguments.\n\n var result = target.apply(\n this,\n array_concat.call(args, array_slice.call(arguments))\n );\n if ($Object(result) === result) {\n return result;\n }\n return this;\n\n } else {\n // 15.3.4.5.1 [[Call]]\n // When the [[Call]] internal method of a function object, F,\n // which was created using the bind function is called with a\n // this value and a list of arguments ExtraArgs, the following\n // steps are taken:\n // 1. Let boundArgs be the value of F's [[BoundArgs]] internal\n // property.\n // 2. Let boundThis be the value of F's [[BoundThis]] internal\n // property.\n // 3. Let target be the value of F's [[TargetFunction]] internal\n // property.\n // 4. Let args be a new list containing the same values as the\n // list boundArgs in the same order followed by the same\n // values as the list ExtraArgs in the same order.\n // 5. Return the result of calling the [[Call]] internal method\n // of target providing boundThis as the this value and\n // providing args as the arguments.\n\n // equiv: target.call(this, ...boundArgs, ...args)\n return target.apply(\n that,\n array_concat.call(args, array_slice.call(arguments))\n );\n\n }\n\n };\n\n // 15. If the [[Class]] internal property of Target is \"Function\", then\n // a. Let L be the length property of Target minus the length of A.\n // b. Set the length own property of F to either 0 or L, whichever is\n // larger.\n // 16. Else set the length own property of F to 0.\n\n var boundLength = max(0, target.length - args.length);\n\n // 17. Set the attributes of the length own property of F to the values\n // specified in 15.3.5.1.\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n array_push.call(boundArgs, '$' + i);\n }\n\n // XXX Build a dynamic function with desired amount of arguments is the only\n // way to set the length property of a function.\n // In environments where Content Security Policies enabled (Chrome extensions,\n // for ex.) all use of eval or Function costructor throws an exception.\n // However in all of these environments Function.prototype.bind exists\n // and so this code will never be executed.\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this, arguments); }')(binder);\n\n if (target.prototype) {\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n // Clean up dangling references.\n Empty.prototype = null;\n }\n\n // TODO\n // 18. Set the [[Extensible]] internal property of F to true.\n\n // TODO\n // 19. Let thrower be the [[ThrowTypeError]] function Object (13.2.3).\n // 20. Call the [[DefineOwnProperty]] internal method of F with\n // arguments \"caller\", PropertyDescriptor {[[Get]]: thrower, [[Set]]:\n // thrower, [[Enumerable]]: false, [[Configurable]]: false}, and\n // false.\n // 21. Call the [[DefineOwnProperty]] internal method of F with\n // arguments \"arguments\", PropertyDescriptor {[[Get]]: thrower,\n // [[Set]]: thrower, [[Enumerable]]: false, [[Configurable]]: false},\n // and false.\n\n // TODO\n // NOTE Function objects created using Function.prototype.bind do not\n // have a prototype property or the [[Code]], [[FormalParameters]], and\n // [[Scope]] internal properties.\n // XXX can't delete prototype in pure-js.\n\n // 22. Return F.\n return bound;\n }\n });\n})\n.call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});\n","/* eslint-disable es-x/no-function-prototype-bind -- Polyfill imported */\n\nimport { mergeConfigs } from '../../common/index.mjs'\nimport { normaliseDataset } from '../../common/normalise-dataset.mjs'\nimport '../../vendor/polyfills/Event.mjs' // addEventListener, event.target normalization and DOMContentLoaded\nimport '../../vendor/polyfills/Function/prototype/bind.mjs'\n\nvar KEY_SPACE = 32\nvar DEBOUNCE_TIMEOUT_IN_SECONDS = 1\n\n/**\n * JavaScript enhancements for the Button component\n *\n * @class\n * @param {Element} $module - HTML element to use for button\n * @param {ButtonConfig} [config] - Button config\n */\nfunction Button ($module, config) {\n if (!($module instanceof HTMLElement)) {\n return this\n }\n\n /** @deprecated Will be made private in v5.0 */\n this.$module = $module\n\n /** @deprecated Will be made private in v5.0 */\n this.debounceFormSubmitTimer = null\n\n var defaultConfig = {\n preventDoubleClick: false\n }\n\n /**\n * @deprecated Will be made private in v5.0\n * @type {ButtonConfig}\n */\n this.config = mergeConfigs(\n defaultConfig,\n config || {},\n normaliseDataset($module.dataset)\n )\n}\n\n/**\n * Initialise component\n */\nButton.prototype.init = function () {\n // Check that required elements are present\n if (!this.$module) {\n return\n }\n\n this.$module.addEventListener('keydown', this.handleKeyDown)\n this.$module.addEventListener('click', this.debounce.bind(this))\n}\n\n/**\n * Trigger a click event when the space key is pressed\n *\n * Some screen readers tell users they can activate things with the 'button'\n * role, so we need to match the functionality of native HTML buttons\n *\n * See https://github.com/alphagov/govuk_elements/pull/272#issuecomment-233028270\n *\n * @deprecated Will be made private in v5.0\n * @param {KeyboardEvent} event - Keydown event\n */\nButton.prototype.handleKeyDown = function (event) {\n var $target = event.target\n\n // Handle space bar only\n if (event.keyCode !== KEY_SPACE) {\n return\n }\n\n // Handle elements with [role=\"button\"] only\n if ($target instanceof HTMLElement && $target.getAttribute('role') === 'button') {\n event.preventDefault() // prevent the page from scrolling\n $target.click()\n }\n}\n\n/**\n * Debounce double-clicks\n *\n * If the click quickly succeeds a previous click then nothing will happen. This\n * stops people accidentally causing multiple form submissions by double\n * clicking buttons.\n *\n * @deprecated Will be made private in v5.0\n * @param {MouseEvent} event - Mouse click event\n * @returns {undefined | false} Returns undefined, or false when debounced\n */\nButton.prototype.debounce = function (event) {\n // Check the button that was clicked has preventDoubleClick enabled\n if (!this.config.preventDoubleClick) {\n return\n }\n\n // If the timer is still running, prevent the click from submitting the form\n if (this.debounceFormSubmitTimer) {\n event.preventDefault()\n return false\n }\n\n this.debounceFormSubmitTimer = setTimeout(function () {\n this.debounceFormSubmitTimer = null\n }.bind(this), DEBOUNCE_TIMEOUT_IN_SECONDS * 1000)\n}\n\nexport default Button\n\n/**\n * Button config\n *\n * @typedef {object} ButtonConfig\n * @property {boolean} [preventDoubleClick = false] - Prevent accidental double\n * clicks on submit buttons from submitting forms multiple times.\n */\n"],"names":[],"mappings":"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"}
@@ -341,6 +341,16 @@
341
341
  },
342
342
  "hidden": true,
343
343
  "html": "<button data-prevent-double-click=\"false\" class=\"govuk-button\" data-module=\"govuk-button\">\n Submit\n</button>"
344
+ },
345
+ {
346
+ "name": "id",
347
+ "options": {
348
+ "text": "Submit",
349
+ "element": "input",
350
+ "id": "submit"
351
+ },
352
+ "hidden": true,
353
+ "html": "<input value=\"Submit\" type=\"submit\" class=\"govuk-button\" data-module=\"govuk-button\" id=\"submit\">"
344
354
  }
345
355
  ]
346
- }
356
+ }
@@ -70,5 +70,11 @@
70
70
  "type": "boolean",
71
71
  "required": false,
72
72
  "description": "Use for the main call to action on your service's start page."
73
+ },
74
+ {
75
+ "name": "id",
76
+ "type": "string",
77
+ "required": false,
78
+ "description": "The ID of the button."
73
79
  }
74
- ]
80
+ ]
@@ -33,7 +33,7 @@ treat it as an interactive element - without this it will be
33
33
 
34
34
  {#- Define common attributes that we can use across all element types #}
35
35
 
36
- {%- set commonAttributes %} class="{{ classNames }}" data-module="govuk-button"{% for attribute, value in params.attributes %} {{attribute}}="{{value}}"{% endfor %}{% endset %}
36
+ {%- set commonAttributes %} class="{{ classNames }}" data-module="govuk-button"{% for attribute, value in params.attributes %} {{attribute}}="{{value}}"{% endfor %}{% if params.id %} id="{{ params.id }}"{% endif %}{% endset %}
37
37
 
38
38
  {#- Define common attributes we can use for both button and input types #}
39
39