govuk_tech_docs 3.4.5 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (327) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/publish.yaml +8 -4
  3. data/.github/workflows/test.yaml +11 -4
  4. data/.rubocop.yml +1 -1
  5. data/CHANGELOG.md +22 -1
  6. data/example/.ruby-version +1 -1
  7. data/example/source/javascripts/govuk_frontend.js +1 -0
  8. data/govuk_tech_docs.gemspec +17 -11
  9. data/lib/assets/javascripts/_modules/page-expiry.js +2 -2
  10. data/lib/assets/javascripts/_modules/table-of-contents.js +48 -2
  11. data/lib/assets/javascripts/govuk_frontend_all.js +3 -0
  12. data/lib/assets/javascripts/govuk_tech_docs.js +0 -2
  13. data/lib/assets/stylesheets/_govuk_tech_docs.scss +4 -10
  14. data/lib/assets/stylesheets/modules/_page-review.scss +0 -2
  15. data/lib/assets/stylesheets/modules/_search.scss +0 -4
  16. data/lib/govuk_tech_docs/meta_tags.rb +1 -1
  17. data/lib/govuk_tech_docs/redirects.rb +1 -1
  18. data/lib/govuk_tech_docs/table_of_contents/heading_tree_builder.rb +1 -1
  19. data/lib/govuk_tech_docs/table_of_contents/helpers.rb +2 -2
  20. data/lib/govuk_tech_docs/tech_docs_html_renderer.rb +6 -2
  21. data/lib/govuk_tech_docs/version.rb +1 -1
  22. data/lib/govuk_tech_docs.rb +20 -3
  23. data/lib/source/layouts/_header.erb +8 -12
  24. data/lib/source/layouts/_page_review.erb +1 -1
  25. data/lib/source/layouts/_search.erb +2 -2
  26. data/lib/source/layouts/core.erb +8 -2
  27. data/lib/source/stylesheets/manifest.css +1 -1
  28. data/node_modules/govuk-frontend/dist/govuk/_base.scss +5 -0
  29. data/node_modules/govuk-frontend/dist/govuk/all.bundle.js +2554 -0
  30. data/node_modules/govuk-frontend/dist/govuk/all.bundle.mjs +2529 -0
  31. data/node_modules/govuk-frontend/dist/govuk/all.mjs +18 -0
  32. data/node_modules/govuk-frontend/dist/govuk/all.scss +3 -0
  33. data/node_modules/govuk-frontend/dist/govuk/assets/images/favicon.svg +1 -0
  34. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-crest.svg +1 -0
  35. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-180.png +0 -0
  36. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-192.png +0 -0
  37. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-512.png +0 -0
  38. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-icon-mask.svg +1 -0
  39. data/node_modules/govuk-frontend/dist/govuk/assets/images/govuk-opengraph-image.png +0 -0
  40. data/node_modules/govuk-frontend/dist/govuk/common/closest-attribute-value.mjs +7 -0
  41. data/node_modules/govuk-frontend/dist/govuk/common/govuk-frontend-version.mjs +4 -0
  42. data/node_modules/govuk-frontend/dist/govuk/common/index.mjs +159 -0
  43. data/node_modules/govuk-frontend/dist/govuk/common/normalise-dataset.mjs +18 -0
  44. data/node_modules/govuk-frontend/dist/govuk/common/normalise-string.mjs +31 -0
  45. data/node_modules/govuk-frontend/dist/govuk/components/_all.scss +10 -0
  46. data/node_modules/govuk-frontend/{govuk/components/_all.scss → dist/govuk/components/_index.scss} +8 -3
  47. data/node_modules/govuk-frontend/dist/govuk/components/accordion/_accordion.scss +4 -0
  48. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/accordion/_index.scss +55 -77
  49. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.js +785 -0
  50. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.mjs +777 -0
  51. data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.mjs +349 -0
  52. data/node_modules/govuk-frontend/dist/govuk/components/back-link/_back-link.scss +4 -0
  53. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/back-link/_index.scss +12 -36
  54. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/_breadcrumbs.scss +4 -0
  55. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/breadcrumbs/_index.scss +11 -36
  56. data/node_modules/govuk-frontend/dist/govuk/components/button/_button.scss +4 -0
  57. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/button/_index.scss +30 -103
  58. data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.js +318 -0
  59. data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.mjs +310 -0
  60. data/node_modules/govuk-frontend/dist/govuk/components/button/button.mjs +73 -0
  61. data/node_modules/govuk-frontend/dist/govuk/components/character-count/_character-count.scss +4 -0
  62. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/character-count/_index.scss +8 -6
  63. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.js +761 -0
  64. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.mjs +753 -0
  65. data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.mjs +295 -0
  66. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/_checkboxes.scss +4 -0
  67. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/checkboxes/_index.scss +108 -132
  68. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.js +268 -0
  69. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.mjs +260 -0
  70. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.mjs +111 -0
  71. data/node_modules/govuk-frontend/dist/govuk/components/cookie-banner/_cookie-banner.scss +4 -0
  72. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/cookie-banner/_index.scss +19 -15
  73. data/node_modules/govuk-frontend/dist/govuk/components/date-input/_date-input.scss +4 -0
  74. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/date-input/_index.scss +3 -2
  75. data/node_modules/govuk-frontend/dist/govuk/components/details/_details.scss +4 -0
  76. data/node_modules/govuk-frontend/dist/govuk/components/details/_index.scss +139 -0
  77. data/node_modules/govuk-frontend/dist/govuk/components/error-message/_error-message.scss +4 -0
  78. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/error-message/_index.scss +2 -0
  79. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/_error-summary.scss +4 -0
  80. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/error-summary/_index.scss +19 -6
  81. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.js +378 -0
  82. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.mjs +370 -0
  83. data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.mjs +103 -0
  84. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/_exit-this-page.scss +4 -0
  85. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/exit-this-page/_index.scss +5 -10
  86. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.js +662 -0
  87. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.mjs +654 -0
  88. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.mjs +226 -0
  89. data/node_modules/govuk-frontend/dist/govuk/components/fieldset/_fieldset.scss +4 -0
  90. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/fieldset/_index.scss +20 -15
  91. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/_file-upload.scss +4 -0
  92. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/file-upload/_index.scss +11 -15
  93. data/node_modules/govuk-frontend/dist/govuk/components/footer/_footer.scss +4 -0
  94. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/footer/_index.scss +25 -68
  95. data/node_modules/govuk-frontend/dist/govuk/components/header/_header.scss +4 -0
  96. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/header/_index.scss +84 -79
  97. data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.js +252 -0
  98. data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.mjs +244 -0
  99. data/node_modules/govuk-frontend/dist/govuk/components/header/header.mjs +88 -0
  100. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/hint/_hint.scss +2 -0
  101. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/hint/_index.scss +3 -0
  102. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/input/_index.scss +24 -49
  103. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/input/_input.scss +2 -0
  104. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/inset-text/_index.scss +2 -0
  105. data/node_modules/govuk-frontend/dist/govuk/components/inset-text/_inset-text.scss +4 -0
  106. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/label/_index.scss +12 -7
  107. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/label/_label.scss +2 -0
  108. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/notification-banner/_index.scss +11 -7
  109. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/_notification-banner.scss +4 -0
  110. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.js +320 -0
  111. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.mjs +312 -0
  112. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.mjs +51 -0
  113. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/pagination/_index.scss +36 -55
  114. data/node_modules/govuk-frontend/dist/govuk/components/pagination/_pagination.scss +4 -0
  115. data/node_modules/govuk-frontend/dist/govuk/components/panel/_index.scss +58 -0
  116. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/panel/_panel.scss +2 -0
  117. data/node_modules/govuk-frontend/dist/govuk/components/password-input/_index.scss +57 -0
  118. data/node_modules/govuk-frontend/dist/govuk/components/password-input/_password-input.scss +4 -0
  119. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.js +594 -0
  120. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.mjs +586 -0
  121. data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.mjs +154 -0
  122. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/phase-banner/_index.scss +10 -1
  123. data/node_modules/govuk-frontend/dist/govuk/components/phase-banner/_phase-banner.scss +4 -0
  124. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/radios/_index.scss +92 -113
  125. data/node_modules/govuk-frontend/dist/govuk/components/radios/_radios.scss +4 -0
  126. data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.js +245 -0
  127. data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.mjs +237 -0
  128. data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.mjs +88 -0
  129. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/select/_index.scss +9 -16
  130. data/node_modules/govuk-frontend/dist/govuk/components/select/_select.scss +4 -0
  131. data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/_index.scss +168 -0
  132. data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/_service-navigation.scss +4 -0
  133. data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/service-navigation.bundle.js +249 -0
  134. data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/service-navigation.bundle.mjs +241 -0
  135. data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/service-navigation.mjs +85 -0
  136. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/skip-link/_index.scss +10 -5
  137. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/_skip-link.scss +4 -0
  138. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.js +244 -0
  139. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.mjs +236 -0
  140. data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.mjs +58 -0
  141. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/summary-list/_index.scss +22 -20
  142. data/node_modules/govuk-frontend/dist/govuk/components/summary-list/_summary-list.scss +4 -0
  143. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/table/_index.scss +21 -17
  144. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/table/_table.scss +2 -0
  145. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/tabs/_index.scss +13 -9
  146. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/tabs/_tabs.scss +2 -0
  147. data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.js +453 -0
  148. data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.mjs +445 -0
  149. data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.mjs +283 -0
  150. data/node_modules/govuk-frontend/dist/govuk/components/tag/_index.scss +97 -0
  151. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/tag/_tag.scss +2 -0
  152. data/node_modules/govuk-frontend/dist/govuk/components/task-list/_index.scss +79 -0
  153. data/node_modules/govuk-frontend/dist/govuk/components/task-list/_task-list.scss +4 -0
  154. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/textarea/_index.scss +6 -10
  155. data/node_modules/govuk-frontend/dist/govuk/components/textarea/_textarea.scss +4 -0
  156. data/node_modules/govuk-frontend/{govuk → dist/govuk}/components/warning-text/_index.scss +13 -13
  157. data/node_modules/govuk-frontend/dist/govuk/components/warning-text/_warning-text.scss +4 -0
  158. data/node_modules/govuk-frontend/dist/govuk/core/_all.scss +10 -0
  159. data/node_modules/govuk-frontend/{govuk → dist/govuk}/core/_global-styles.scss +2 -1
  160. data/node_modules/govuk-frontend/dist/govuk/core/_govuk-frontend-properties.scss +12 -0
  161. data/node_modules/govuk-frontend/{govuk/core/_all.scss → dist/govuk/core/_index.scss} +3 -1
  162. data/node_modules/govuk-frontend/{govuk → dist/govuk}/core/_links.scss +8 -1
  163. data/node_modules/govuk-frontend/{govuk → dist/govuk}/core/_lists.scss +2 -1
  164. data/node_modules/govuk-frontend/{govuk → dist/govuk}/core/_section-break.scss +2 -7
  165. data/node_modules/govuk-frontend/{govuk → dist/govuk}/core/_typography.scss +8 -5
  166. data/node_modules/govuk-frontend/dist/govuk/errors/index.mjs +57 -0
  167. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend-component.mjs +60 -0
  168. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.js +1 -0
  169. data/node_modules/govuk-frontend/dist/govuk/helpers/_all.scss +10 -0
  170. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_clearfix.scss +3 -1
  171. data/node_modules/govuk-frontend/dist/govuk/helpers/_colour.scss +127 -0
  172. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_device-pixels.scss +4 -3
  173. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_focused.scss +22 -6
  174. data/node_modules/govuk-frontend/dist/govuk/helpers/_font-faces.scss +41 -0
  175. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_grid.scss +3 -1
  176. data/node_modules/govuk-frontend/{govuk/helpers/_all.scss → dist/govuk/helpers/_index.scss} +2 -0
  177. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_links.scss +38 -76
  178. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_media-queries.scss +3 -12
  179. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_shape-arrow.scss +3 -1
  180. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_spacing.scss +12 -10
  181. data/node_modules/govuk-frontend/dist/govuk/helpers/_typography.scss +288 -0
  182. data/node_modules/govuk-frontend/{govuk → dist/govuk}/helpers/_visually-hidden.scss +39 -50
  183. data/node_modules/govuk-frontend/dist/govuk/i18n.mjs +195 -0
  184. data/node_modules/govuk-frontend/dist/govuk/index.scss +11 -0
  185. data/node_modules/govuk-frontend/dist/govuk/init.mjs +162 -0
  186. data/node_modules/govuk-frontend/dist/govuk/objects/_all.scss +10 -0
  187. data/node_modules/govuk-frontend/{govuk → dist/govuk}/objects/_button-group.scss +7 -12
  188. data/node_modules/govuk-frontend/{govuk → dist/govuk}/objects/_form-group.scss +2 -0
  189. data/node_modules/govuk-frontend/{govuk → dist/govuk}/objects/_grid.scss +4 -2
  190. data/node_modules/govuk-frontend/{govuk/objects/_all.scss → dist/govuk/objects/_index.scss} +2 -0
  191. data/node_modules/govuk-frontend/{govuk → dist/govuk}/objects/_main-wrapper.scss +2 -0
  192. data/node_modules/govuk-frontend/{govuk → dist/govuk}/objects/_template.scss +2 -1
  193. data/node_modules/govuk-frontend/{govuk → dist/govuk}/objects/_width-container.scss +2 -9
  194. data/node_modules/govuk-frontend/dist/govuk/overrides/_all.scss +9 -0
  195. data/node_modules/govuk-frontend/{govuk → dist/govuk}/overrides/_display.scss +2 -0
  196. data/node_modules/govuk-frontend/{govuk/overrides/_all.scss → dist/govuk/overrides/_index.scss} +2 -0
  197. data/node_modules/govuk-frontend/{govuk → dist/govuk}/overrides/_spacing.scss +3 -19
  198. data/node_modules/govuk-frontend/{govuk → dist/govuk}/overrides/_text-align.scss +2 -0
  199. data/node_modules/govuk-frontend/dist/govuk/overrides/_typography.scss +42 -0
  200. data/node_modules/govuk-frontend/{govuk → dist/govuk}/overrides/_width.scss +2 -0
  201. data/node_modules/govuk-frontend/dist/govuk/settings/_all.scss +10 -0
  202. data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_assets.scss +2 -0
  203. data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_colours-applied.scss +9 -7
  204. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-organisations.scss +378 -0
  205. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-palette.scss +37 -0
  206. data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_global-styles.scss +2 -0
  207. data/node_modules/govuk-frontend/{govuk/settings/_all.scss → dist/govuk/settings/_index.scss} +2 -3
  208. data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_links.scss +3 -20
  209. data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_measurements.scss +18 -6
  210. data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_media-queries.scss +5 -3
  211. data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_spacing.scss +2 -0
  212. data/node_modules/govuk-frontend/dist/govuk/settings/_typography-font.scss +52 -0
  213. data/node_modules/govuk-frontend/dist/govuk/settings/_typography-responsive.scss +322 -0
  214. data/node_modules/govuk-frontend/{govuk → dist/govuk}/settings/_warnings.scss +33 -8
  215. data/node_modules/govuk-frontend/dist/govuk/tools/_all.scss +10 -0
  216. data/node_modules/govuk-frontend/{govuk → dist/govuk}/tools/_exports.scss +2 -0
  217. data/node_modules/govuk-frontend/{govuk → dist/govuk}/tools/_font-url.scss +3 -0
  218. data/node_modules/govuk-frontend/{govuk → dist/govuk}/tools/_image-url.scss +3 -0
  219. data/node_modules/govuk-frontend/{govuk/tools/_all.scss → dist/govuk/tools/_index.scss} +2 -2
  220. data/node_modules/govuk-frontend/{govuk → dist/govuk}/tools/_px-to-em.scss +2 -0
  221. data/node_modules/govuk-frontend/{govuk → dist/govuk}/tools/_px-to-rem.scss +2 -0
  222. data/node_modules/govuk-frontend/dist/govuk/utilities/_all.scss +10 -0
  223. data/node_modules/govuk-frontend/{govuk → dist/govuk}/utilities/_clearfix.scss +2 -0
  224. data/node_modules/govuk-frontend/{govuk/utilities/_all.scss → dist/govuk/utilities/_index.scss} +2 -0
  225. data/node_modules/govuk-frontend/{govuk → dist/govuk}/utilities/_visually-hidden.scss +2 -0
  226. data/node_modules/govuk-frontend/{govuk → dist/govuk}/vendor/_sass-mq.scss +3 -1
  227. data/node_modules/govuk-frontend/dist/govuk-prototype-kit/init.js +15 -0
  228. data/node_modules/govuk-frontend/{govuk-prototype-kit → dist/govuk-prototype-kit}/init.scss +3 -2
  229. data/package-lock.json +37 -37
  230. data/package.json +6 -1
  231. metadata +316 -206
  232. data/node_modules/govuk-frontend/govuk/_base.scss +0 -3
  233. data/node_modules/govuk-frontend/govuk/all-ie8.scss +0 -14
  234. data/node_modules/govuk-frontend/govuk/all.js +0 -5172
  235. data/node_modules/govuk-frontend/govuk/all.scss +0 -9
  236. data/node_modules/govuk-frontend/govuk/assets/images/favicon.ico +0 -0
  237. data/node_modules/govuk-frontend/govuk/assets/images/govuk-apple-touch-icon-152x152.png +0 -0
  238. data/node_modules/govuk-frontend/govuk/assets/images/govuk-apple-touch-icon-167x167.png +0 -0
  239. data/node_modules/govuk-frontend/govuk/assets/images/govuk-apple-touch-icon-180x180.png +0 -0
  240. data/node_modules/govuk-frontend/govuk/assets/images/govuk-apple-touch-icon.png +0 -0
  241. data/node_modules/govuk-frontend/govuk/assets/images/govuk-crest-2x.png +0 -0
  242. data/node_modules/govuk-frontend/govuk/assets/images/govuk-crest.png +0 -0
  243. data/node_modules/govuk-frontend/govuk/assets/images/govuk-logotype-crown.png +0 -0
  244. data/node_modules/govuk-frontend/govuk/assets/images/govuk-mask-icon.svg +0 -7
  245. data/node_modules/govuk-frontend/govuk/assets/images/govuk-opengraph-image.png +0 -0
  246. data/node_modules/govuk-frontend/govuk/common/closest-attribute-value.js +0 -75
  247. data/node_modules/govuk-frontend/govuk/common/govuk-frontend-version.js +0 -17
  248. data/node_modules/govuk-frontend/govuk/common/index.js +0 -192
  249. data/node_modules/govuk-frontend/govuk/common/normalise-dataset.js +0 -386
  250. data/node_modules/govuk-frontend/govuk/common.js +0 -194
  251. data/node_modules/govuk-frontend/govuk/components/accordion/_accordion.scss +0 -2
  252. data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js +0 -2386
  253. data/node_modules/govuk-frontend/govuk/components/back-link/_back-link.scss +0 -2
  254. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/_breadcrumbs.scss +0 -2
  255. data/node_modules/govuk-frontend/govuk/components/button/_button.scss +0 -2
  256. data/node_modules/govuk-frontend/govuk/components/button/button.js +0 -1027
  257. data/node_modules/govuk-frontend/govuk/components/character-count/_character-count.scss +0 -2
  258. data/node_modules/govuk-frontend/govuk/components/character-count/character-count.js +0 -2281
  259. data/node_modules/govuk-frontend/govuk/components/checkboxes/_checkboxes.scss +0 -2
  260. data/node_modules/govuk-frontend/govuk/components/checkboxes/checkboxes.js +0 -1277
  261. data/node_modules/govuk-frontend/govuk/components/cookie-banner/_cookie-banner.scss +0 -2
  262. data/node_modules/govuk-frontend/govuk/components/date-input/_date-input.scss +0 -2
  263. data/node_modules/govuk-frontend/govuk/components/details/_details.scss +0 -2
  264. data/node_modules/govuk-frontend/govuk/components/details/_index.scss +0 -88
  265. data/node_modules/govuk-frontend/govuk/components/details/details.js +0 -873
  266. data/node_modules/govuk-frontend/govuk/components/error-message/_error-message.scss +0 -2
  267. data/node_modules/govuk-frontend/govuk/components/error-summary/_error-summary.scss +0 -2
  268. data/node_modules/govuk-frontend/govuk/components/error-summary/error-summary.js +0 -1189
  269. data/node_modules/govuk-frontend/govuk/components/exit-this-page/_exit-this-page.scss +0 -2
  270. data/node_modules/govuk-frontend/govuk/components/exit-this-page/exit-this-page.js +0 -2120
  271. data/node_modules/govuk-frontend/govuk/components/fieldset/_fieldset.scss +0 -2
  272. data/node_modules/govuk-frontend/govuk/components/file-upload/_file-upload.scss +0 -2
  273. data/node_modules/govuk-frontend/govuk/components/footer/_footer.scss +0 -2
  274. data/node_modules/govuk-frontend/govuk/components/header/_header.scss +0 -2
  275. data/node_modules/govuk-frontend/govuk/components/header/header.js +0 -794
  276. data/node_modules/govuk-frontend/govuk/components/inset-text/_inset-text.scss +0 -2
  277. data/node_modules/govuk-frontend/govuk/components/notification-banner/_notification-banner.scss +0 -2
  278. data/node_modules/govuk-frontend/govuk/components/notification-banner/notification-banner.js +0 -843
  279. data/node_modules/govuk-frontend/govuk/components/pagination/_pagination.scss +0 -2
  280. data/node_modules/govuk-frontend/govuk/components/panel/_index.scss +0 -56
  281. data/node_modules/govuk-frontend/govuk/components/phase-banner/_phase-banner.scss +0 -2
  282. data/node_modules/govuk-frontend/govuk/components/radios/_radios.scss +0 -2
  283. data/node_modules/govuk-frontend/govuk/components/radios/radios.js +0 -1222
  284. data/node_modules/govuk-frontend/govuk/components/select/_select.scss +0 -2
  285. data/node_modules/govuk-frontend/govuk/components/skip-link/_skip-link.scss +0 -2
  286. data/node_modules/govuk-frontend/govuk/components/skip-link/skip-link.js +0 -1145
  287. data/node_modules/govuk-frontend/govuk/components/summary-list/_summary-list.scss +0 -2
  288. data/node_modules/govuk-frontend/govuk/components/tabs/tabs.js +0 -1621
  289. data/node_modules/govuk-frontend/govuk/components/tag/_index.scss +0 -81
  290. data/node_modules/govuk-frontend/govuk/components/textarea/_textarea.scss +0 -2
  291. data/node_modules/govuk-frontend/govuk/components/warning-text/_warning-text.scss +0 -2
  292. data/node_modules/govuk-frontend/govuk/core/_govuk-frontend-version.scss +0 -5
  293. data/node_modules/govuk-frontend/govuk/helpers/_colour.scss +0 -98
  294. data/node_modules/govuk-frontend/govuk/helpers/_font-faces.scss +0 -41
  295. data/node_modules/govuk-frontend/govuk/helpers/_typography.scss +0 -214
  296. data/node_modules/govuk-frontend/govuk/i18n.js +0 -397
  297. data/node_modules/govuk-frontend/govuk/overrides/_typography.scss +0 -21
  298. data/node_modules/govuk-frontend/govuk/settings/_colours-organisations.scss +0 -146
  299. data/node_modules/govuk-frontend/govuk/settings/_colours-palette.scss +0 -120
  300. data/node_modules/govuk-frontend/govuk/settings/_compatibility.scss +0 -100
  301. data/node_modules/govuk-frontend/govuk/settings/_ie8.scss +0 -34
  302. data/node_modules/govuk-frontend/govuk/settings/_typography-font-families.scss +0 -32
  303. data/node_modules/govuk-frontend/govuk/settings/_typography-font.scss +0 -112
  304. data/node_modules/govuk-frontend/govuk/settings/_typography-responsive.scss +0 -195
  305. data/node_modules/govuk-frontend/govuk/tools/_compatibility.scss +0 -50
  306. data/node_modules/govuk-frontend/govuk/tools/_ie8.scss +0 -87
  307. data/node_modules/govuk-frontend/govuk/vendor/polyfills/DOMTokenList.js +0 -274
  308. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Date/now.js +0 -23
  309. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Document.js +0 -36
  310. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/classList.js +0 -597
  311. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/closest.js +0 -58
  312. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/dataset.js +0 -307
  313. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/matches.js +0 -33
  314. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/nextElementSibling.js +0 -261
  315. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/previousElementSibling.js +0 -261
  316. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element.js +0 -151
  317. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Event.js +0 -512
  318. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Function/prototype/bind.js +0 -256
  319. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Object/defineProperty.js +0 -96
  320. data/node_modules/govuk-frontend/govuk/vendor/polyfills/String/prototype/trim.js +0 -23
  321. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Window.js +0 -30
  322. data/node_modules/govuk-frontend/govuk-prototype-kit/init.js +0 -8
  323. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/fonts/bold-affa96571d-v2.woff +0 -0
  324. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/fonts/bold-b542beb274-v2.woff2 +0 -0
  325. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/fonts/light-94a07e06a1-v2.woff2 +0 -0
  326. /data/node_modules/govuk-frontend/{govuk → dist/govuk}/assets/fonts/light-f591b13f7d-v2.woff +0 -0
  327. /data/{lib/source → node_modules/govuk-frontend/dist/govuk/assets/images}/favicon.ico +0 -0
@@ -1,843 +0,0 @@
1
- (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
3
- typeof define === 'function' && define.amd ? define('GOVUKFrontend.NotificationBanner', factory) :
4
- (global.GOVUKFrontend = global.GOVUKFrontend || {}, global.GOVUKFrontend.NotificationBanner = factory());
5
- }(this, (function () { 'use strict';
6
-
7
- /**
8
- * Common helpers which do not require polyfill.
9
- *
10
- * IMPORTANT: If a helper require a polyfill, please isolate it in its own module
11
- * so that the polyfill can be properly tree-shaken and does not burden
12
- * the components that do not need that helper
13
- *
14
- * @module common/index
15
- */
16
-
17
- /**
18
- * Config flattening function
19
- *
20
- * Takes any number of objects, flattens them into namespaced key-value pairs,
21
- * (e.g. {'i18n.showSection': 'Show section'}) and combines them together, with
22
- * greatest priority on the LAST item passed in.
23
- *
24
- * @deprecated Will be made private in v5.0
25
- * @returns {Object<string, unknown>} A flattened object of key-value pairs.
26
- */
27
- function mergeConfigs (/* configObject1, configObject2, ...configObjects */) {
28
- /**
29
- * Function to take nested objects and flatten them to a dot-separated keyed
30
- * object. Doing this means we don't need to do any deep/recursive merging of
31
- * each of our objects, nor transform our dataset from a flat list into a
32
- * nested object.
33
- *
34
- * @param {Object<string, unknown>} configObject - Deeply nested object
35
- * @returns {Object<string, unknown>} Flattened object with dot-separated keys
36
- */
37
- var flattenObject = function (configObject) {
38
- // Prepare an empty return object
39
- /** @type {Object<string, unknown>} */
40
- var flattenedObject = {};
41
-
42
- /**
43
- * Our flattening function, this is called recursively for each level of
44
- * depth in the object. At each level we prepend the previous level names to
45
- * the key using `prefix`.
46
- *
47
- * @param {Partial<Object<string, unknown>>} obj - Object to flatten
48
- * @param {string} [prefix] - Optional dot-separated prefix
49
- */
50
- var flattenLoop = function (obj, prefix) {
51
- // Loop through keys...
52
- for (var key in obj) {
53
- // Check to see if this is a prototypical key/value,
54
- // if it is, skip it.
55
- if (!Object.prototype.hasOwnProperty.call(obj, key)) {
56
- continue
57
- }
58
- var value = obj[key];
59
- var prefixedKey = prefix ? prefix + '.' + key : key;
60
- if (typeof value === 'object') {
61
- // If the value is a nested object, recurse over that too
62
- flattenLoop(value, prefixedKey);
63
- } else {
64
- // Otherwise, add this value to our return object
65
- flattenedObject[prefixedKey] = value;
66
- }
67
- }
68
- };
69
-
70
- // Kick off the recursive loop
71
- flattenLoop(configObject);
72
- return flattenedObject
73
- };
74
-
75
- // Start with an empty object as our base
76
- /** @type {Object<string, unknown>} */
77
- var formattedConfigObject = {};
78
-
79
- // Loop through each of the remaining passed objects and push their keys
80
- // one-by-one into configObject. Any duplicate keys will override the existing
81
- // key with the new value.
82
- for (var i = 0; i < arguments.length; i++) {
83
- var obj = flattenObject(arguments[i]);
84
- for (var key in obj) {
85
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
86
- formattedConfigObject[key] = obj[key];
87
- }
88
- }
89
- }
90
-
91
- return formattedConfigObject
92
- }
93
-
94
- /**
95
- * @template {Node} ElementType
96
- * @callback nodeListIterator
97
- * @param {ElementType} value - The current node being iterated on
98
- * @param {number} index - The current index in the iteration
99
- * @param {NodeListOf<ElementType>} nodes - NodeList from querySelectorAll()
100
- * @returns {void}
101
- */
102
-
103
- // @ts-nocheck
104
- (function (undefined) {
105
-
106
- // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Object/defineProperty/detect.js
107
- var detect = (
108
- // In IE8, defineProperty could only act on DOM elements, so full support
109
- // for the feature requires the ability to set a property on an arbitrary object
110
- 'defineProperty' in Object && (function() {
111
- try {
112
- var a = {};
113
- Object.defineProperty(a, 'test', {value:42});
114
- return true;
115
- } catch(e) {
116
- return false
117
- }
118
- }())
119
- );
120
-
121
- if (detect) return
122
-
123
- // Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Object.defineProperty&flags=always
124
- (function (nativeDefineProperty) {
125
-
126
- var supportsAccessors = Object.prototype.hasOwnProperty('__defineGetter__');
127
- var ERR_ACCESSORS_NOT_SUPPORTED = 'Getters & setters cannot be defined on this javascript engine';
128
- var ERR_VALUE_ACCESSORS = 'A property cannot both have accessors and be writable or have a value';
129
-
130
- Object.defineProperty = function defineProperty(object, property, descriptor) {
131
-
132
- // Where native support exists, assume it
133
- if (nativeDefineProperty && (object === window || object === document || object === Element.prototype || object instanceof Element)) {
134
- return nativeDefineProperty(object, property, descriptor);
135
- }
136
-
137
- if (object === null || !(object instanceof Object || typeof object === 'object')) {
138
- throw new TypeError('Object.defineProperty called on non-object');
139
- }
140
-
141
- if (!(descriptor instanceof Object)) {
142
- throw new TypeError('Property description must be an object');
143
- }
144
-
145
- var propertyString = String(property);
146
- var hasValueOrWritable = 'value' in descriptor || 'writable' in descriptor;
147
- var getterType = 'get' in descriptor && typeof descriptor.get;
148
- var setterType = 'set' in descriptor && typeof descriptor.set;
149
-
150
- // handle descriptor.get
151
- if (getterType) {
152
- if (getterType !== 'function') {
153
- throw new TypeError('Getter must be a function');
154
- }
155
- if (!supportsAccessors) {
156
- throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
157
- }
158
- if (hasValueOrWritable) {
159
- throw new TypeError(ERR_VALUE_ACCESSORS);
160
- }
161
- Object.__defineGetter__.call(object, propertyString, descriptor.get);
162
- } else {
163
- object[propertyString] = descriptor.value;
164
- }
165
-
166
- // handle descriptor.set
167
- if (setterType) {
168
- if (setterType !== 'function') {
169
- throw new TypeError('Setter must be a function');
170
- }
171
- if (!supportsAccessors) {
172
- throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
173
- }
174
- if (hasValueOrWritable) {
175
- throw new TypeError(ERR_VALUE_ACCESSORS);
176
- }
177
- Object.__defineSetter__.call(object, propertyString, descriptor.set);
178
- }
179
-
180
- // OK to define value unconditionally - if a getter has been specified as well, an error would be thrown above
181
- if ('value' in descriptor) {
182
- object[propertyString] = descriptor.value;
183
- }
184
-
185
- return object;
186
- };
187
- }(Object.defineProperty));
188
- })
189
- .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
190
-
191
- // @ts-nocheck
192
- (function (undefined) {
193
-
194
- // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Document/detect.js
195
- var detect = ("Document" in this);
196
-
197
- if (detect) return
198
-
199
- // Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Document&flags=always
200
- if ((typeof WorkerGlobalScope === "undefined") && (typeof importScripts !== "function")) {
201
-
202
- if (this.HTMLDocument) { // IE8
203
-
204
- // HTMLDocument is an extension of Document. If the browser has HTMLDocument but not Document, the former will suffice as an alias for the latter.
205
- this.Document = this.HTMLDocument;
206
-
207
- } else {
208
-
209
- // 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.
210
- this.Document = this.HTMLDocument = document.constructor = (new Function('return function Document() {}')());
211
- this.Document.prototype = document;
212
- }
213
- }
214
-
215
-
216
- })
217
- .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
218
-
219
- // @ts-nocheck
220
-
221
- (function(undefined) {
222
-
223
- // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Element/detect.js
224
- var detect = ('Element' in this && 'HTMLElement' in this);
225
-
226
- if (detect) return
227
-
228
- // Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Element&flags=always
229
- (function () {
230
-
231
- // IE8
232
- if (window.Element && !window.HTMLElement) {
233
- window.HTMLElement = window.Element;
234
- return;
235
- }
236
-
237
- // create Element constructor
238
- window.Element = window.HTMLElement = new Function('return function Element() {}')();
239
-
240
- // generate sandboxed iframe
241
- var vbody = document.appendChild(document.createElement('body'));
242
- var frame = vbody.appendChild(document.createElement('iframe'));
243
-
244
- // use sandboxed iframe to replicate Element functionality
245
- var frameDocument = frame.contentWindow.document;
246
- var prototype = Element.prototype = frameDocument.appendChild(frameDocument.createElement('*'));
247
- var cache = {};
248
-
249
- // polyfill Element.prototype on an element
250
- var shiv = function (element, deep) {
251
- var
252
- childNodes = element.childNodes || [],
253
- index = -1,
254
- key, value, childNode;
255
-
256
- if (element.nodeType === 1 && element.constructor !== Element) {
257
- element.constructor = Element;
258
-
259
- for (key in cache) {
260
- value = cache[key];
261
- element[key] = value;
262
- }
263
- }
264
-
265
- while (childNode = deep && childNodes[++index]) {
266
- shiv(childNode, deep);
267
- }
268
-
269
- return element;
270
- };
271
-
272
- var elements = document.getElementsByTagName('*');
273
- var nativeCreateElement = document.createElement;
274
- var interval;
275
- var loopLimit = 100;
276
-
277
- prototype.attachEvent('onpropertychange', function (event) {
278
- var
279
- propertyName = event.propertyName,
280
- nonValue = !cache.hasOwnProperty(propertyName),
281
- newValue = prototype[propertyName],
282
- oldValue = cache[propertyName],
283
- index = -1,
284
- element;
285
-
286
- while (element = elements[++index]) {
287
- if (element.nodeType === 1) {
288
- if (nonValue || element[propertyName] === oldValue) {
289
- element[propertyName] = newValue;
290
- }
291
- }
292
- }
293
-
294
- cache[propertyName] = newValue;
295
- });
296
-
297
- prototype.constructor = Element;
298
-
299
- if (!prototype.hasAttribute) {
300
- // <Element>.hasAttribute
301
- prototype.hasAttribute = function hasAttribute(name) {
302
- return this.getAttribute(name) !== null;
303
- };
304
- }
305
-
306
- // Apply Element prototype to the pre-existing DOM as soon as the body element appears.
307
- function bodyCheck() {
308
- if (!(loopLimit--)) clearTimeout(interval);
309
- if (document.body && !document.body.prototype && /(complete|interactive)/.test(document.readyState)) {
310
- shiv(document, true);
311
- if (interval && document.body.prototype) clearTimeout(interval);
312
- return (!!document.body.prototype);
313
- }
314
- return false;
315
- }
316
- if (!bodyCheck()) {
317
- document.onreadystatechange = bodyCheck;
318
- interval = setInterval(bodyCheck, 25);
319
- }
320
-
321
- // Apply to any new elements created after load
322
- document.createElement = function createElement(nodeName) {
323
- var element = nativeCreateElement(String(nodeName).toLowerCase());
324
- return shiv(element);
325
- };
326
-
327
- // remove sandboxed iframe
328
- document.removeChild(vbody);
329
- }());
330
-
331
- })
332
- .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
333
-
334
- // @ts-nocheck
335
-
336
- (function(undefined) {
337
-
338
- // Detection from https://raw.githubusercontent.com/Financial-Times/polyfill-library/13cf7c340974d128d557580b5e2dafcd1b1192d1/polyfills/Element/prototype/dataset/detect.js
339
- var detect = (function(){
340
- if (!document.documentElement.dataset) {
341
- return false;
342
- }
343
- var el = document.createElement('div');
344
- el.setAttribute("data-a-b", "c");
345
- return el.dataset && el.dataset.aB == "c";
346
- }());
347
-
348
- if (detect) return
349
-
350
- // Polyfill derived from https://raw.githubusercontent.com/Financial-Times/polyfill-library/13cf7c340974d128d557580b5e2dafcd1b1192d1/polyfills/Element/prototype/dataset/polyfill.js
351
- Object.defineProperty(Element.prototype, 'dataset', {
352
- get: function() {
353
- var element = this;
354
- var attributes = this.attributes;
355
- var map = {};
356
-
357
- for (var i = 0; i < attributes.length; i++) {
358
- var attribute = attributes[i];
359
-
360
- // This regex has been edited from the original polyfill, to add
361
- // support for period (.) separators in data-* attribute names. These
362
- // are allowed in the HTML spec, but were not covered by the original
363
- // polyfill's regex. We use periods in our i18n implementation.
364
- if (attribute && attribute.name && (/^data-\w[.\w-]*$/).test(attribute.name)) {
365
- var name = attribute.name;
366
- var value = attribute.value;
367
-
368
- var propName = name.substr(5).replace(/-./g, function (prop) {
369
- return prop.charAt(1).toUpperCase();
370
- });
371
-
372
- // If this browser supports __defineGetter__ and __defineSetter__,
373
- // continue using defineProperty. If not (like IE 8 and below), we use
374
- // a hacky fallback which at least gives an object in the right format
375
- if ('__defineGetter__' in Object.prototype && '__defineSetter__' in Object.prototype) {
376
- Object.defineProperty(map, propName, {
377
- enumerable: true,
378
- get: function() {
379
- return this.value;
380
- }.bind({value: value || ''}),
381
- set: function setter(name, value) {
382
- if (typeof value !== 'undefined') {
383
- this.setAttribute(name, value);
384
- } else {
385
- this.removeAttribute(name);
386
- }
387
- }.bind(element, name)
388
- });
389
- } else {
390
- map[propName] = value;
391
- }
392
-
393
- }
394
- }
395
-
396
- return map;
397
- }
398
- });
399
-
400
- }).call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
401
-
402
- // @ts-nocheck
403
- (function (undefined) {
404
-
405
- // Detection from https://github.com/mdn/content/blob/cf607d68522cd35ee7670782d3ee3a361eaef2e4/files/en-us/web/javascript/reference/global_objects/string/trim/index.md#polyfill
406
- var detect = ('trim' in String.prototype);
407
-
408
- if (detect) return
409
-
410
- // Polyfill from https://github.com/mdn/content/blob/cf607d68522cd35ee7670782d3ee3a361eaef2e4/files/en-us/web/javascript/reference/global_objects/string/trim/index.md#polyfill
411
- String.prototype.trim = function () {
412
- return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
413
- };
414
-
415
- }).call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
416
-
417
- /* eslint-disable es-x/no-string-prototype-trim -- Polyfill imported */
418
-
419
- /**
420
- * Normalise string
421
- *
422
- * 'If it looks like a duck, and it quacks like a duck…' 🦆
423
- *
424
- * If the passed value looks like a boolean or a number, convert it to a boolean
425
- * or number.
426
- *
427
- * Designed to be used to convert config passed via data attributes (which are
428
- * always strings) into something sensible.
429
- *
430
- * @deprecated Will be made private in v5.0
431
- * @param {string} value - The value to normalise
432
- * @returns {string | boolean | number | undefined} Normalised data
433
- */
434
- function normaliseString (value) {
435
- if (typeof value !== 'string') {
436
- return value
437
- }
438
-
439
- var trimmedValue = value.trim();
440
-
441
- if (trimmedValue === 'true') {
442
- return true
443
- }
444
-
445
- if (trimmedValue === 'false') {
446
- return false
447
- }
448
-
449
- // Empty / whitespace-only strings are considered finite so we need to check
450
- // the length of the trimmed string as well
451
- if (trimmedValue.length > 0 && isFinite(Number(trimmedValue))) {
452
- return Number(trimmedValue)
453
- }
454
-
455
- return value
456
- }
457
-
458
- /**
459
- * Normalise dataset
460
- *
461
- * Loop over an object and normalise each value using normaliseData function
462
- *
463
- * @deprecated Will be made private in v5.0
464
- * @param {DOMStringMap} dataset - HTML element dataset
465
- * @returns {Object<string, unknown>} Normalised dataset
466
- */
467
- function normaliseDataset (dataset) {
468
- /** @type {Object<string, unknown>} */
469
- var out = {};
470
-
471
- for (var key in dataset) {
472
- out[key] = normaliseString(dataset[key]);
473
- }
474
-
475
- return out
476
- }
477
-
478
- // @ts-nocheck
479
- (function (undefined) {
480
-
481
- // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Window/detect.js
482
- var detect = ('Window' in this);
483
-
484
- if (detect) return
485
-
486
- // Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Window&flags=always
487
- if ((typeof WorkerGlobalScope === "undefined") && (typeof importScripts !== "function")) {
488
- (function (global) {
489
- if (global.constructor) {
490
- global.Window = global.constructor;
491
- } else {
492
- (global.Window = global.constructor = new Function('return function Window() {}')()).prototype = this;
493
- }
494
- }(this));
495
- }
496
-
497
- })
498
- .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
499
-
500
- // @ts-nocheck
501
-
502
- (function(undefined) {
503
-
504
- // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Event/detect.js
505
- var detect = (
506
- (function(global) {
507
-
508
- if (!('Event' in global)) return false;
509
- if (typeof global.Event === 'function') return true;
510
-
511
- try {
512
-
513
- // In IE 9-11, the Event object exists but cannot be instantiated
514
- new Event('click');
515
- return true;
516
- } catch(e) {
517
- return false;
518
- }
519
- }(this))
520
- );
521
-
522
- if (detect) return
523
-
524
- // Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Event&flags=always
525
- (function () {
526
- var unlistenableWindowEvents = {
527
- click: 1,
528
- dblclick: 1,
529
- keyup: 1,
530
- keypress: 1,
531
- keydown: 1,
532
- mousedown: 1,
533
- mouseup: 1,
534
- mousemove: 1,
535
- mouseover: 1,
536
- mouseenter: 1,
537
- mouseleave: 1,
538
- mouseout: 1,
539
- storage: 1,
540
- storagecommit: 1,
541
- textinput: 1
542
- };
543
-
544
- // This polyfill depends on availability of `document` so will not run in a worker
545
- // However, we asssume there are no browsers with worker support that lack proper
546
- // support for `Event` within the worker
547
- if (typeof document === 'undefined' || typeof window === 'undefined') return;
548
-
549
- function indexOf(array, element) {
550
- var
551
- index = -1,
552
- length = array.length;
553
-
554
- while (++index < length) {
555
- if (index in array && array[index] === element) {
556
- return index;
557
- }
558
- }
559
-
560
- return -1;
561
- }
562
-
563
- var existingProto = (window.Event && window.Event.prototype) || null;
564
- window.Event = Window.prototype.Event = function Event(type, eventInitDict) {
565
- if (!type) {
566
- throw new Error('Not enough arguments');
567
- }
568
-
569
- var event;
570
- // Shortcut if browser supports createEvent
571
- if ('createEvent' in document) {
572
- event = document.createEvent('Event');
573
- var bubbles = eventInitDict && eventInitDict.bubbles !== undefined ? eventInitDict.bubbles : false;
574
- var cancelable = eventInitDict && eventInitDict.cancelable !== undefined ? eventInitDict.cancelable : false;
575
-
576
- event.initEvent(type, bubbles, cancelable);
577
-
578
- return event;
579
- }
580
-
581
- event = document.createEventObject();
582
-
583
- event.type = type;
584
- event.bubbles = eventInitDict && eventInitDict.bubbles !== undefined ? eventInitDict.bubbles : false;
585
- event.cancelable = eventInitDict && eventInitDict.cancelable !== undefined ? eventInitDict.cancelable : false;
586
-
587
- return event;
588
- };
589
- if (existingProto) {
590
- Object.defineProperty(window.Event, 'prototype', {
591
- configurable: false,
592
- enumerable: false,
593
- writable: true,
594
- value: existingProto
595
- });
596
- }
597
-
598
- if (!('createEvent' in document)) {
599
- window.addEventListener = Window.prototype.addEventListener = Document.prototype.addEventListener = Element.prototype.addEventListener = function addEventListener() {
600
- var
601
- element = this,
602
- type = arguments[0],
603
- listener = arguments[1];
604
-
605
- if (element === window && type in unlistenableWindowEvents) {
606
- throw 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.');
607
- }
608
-
609
- if (!element._events) {
610
- element._events = {};
611
- }
612
-
613
- if (!element._events[type]) {
614
- element._events[type] = function (event) {
615
- var
616
- list = element._events[event.type].list,
617
- events = list.slice(),
618
- index = -1,
619
- length = events.length,
620
- eventElement;
621
-
622
- event.preventDefault = function preventDefault() {
623
- if (event.cancelable !== false) {
624
- event.returnValue = false;
625
- }
626
- };
627
-
628
- event.stopPropagation = function stopPropagation() {
629
- event.cancelBubble = true;
630
- };
631
-
632
- event.stopImmediatePropagation = function stopImmediatePropagation() {
633
- event.cancelBubble = true;
634
- event.cancelImmediate = true;
635
- };
636
-
637
- event.currentTarget = element;
638
- event.relatedTarget = event.fromElement || null;
639
- event.target = event.target || event.srcElement || element;
640
- event.timeStamp = new Date().getTime();
641
-
642
- if (event.clientX) {
643
- event.pageX = event.clientX + document.documentElement.scrollLeft;
644
- event.pageY = event.clientY + document.documentElement.scrollTop;
645
- }
646
-
647
- while (++index < length && !event.cancelImmediate) {
648
- if (index in events) {
649
- eventElement = events[index];
650
-
651
- if (indexOf(list, eventElement) !== -1 && typeof eventElement === 'function') {
652
- eventElement.call(element, event);
653
- }
654
- }
655
- }
656
- };
657
-
658
- element._events[type].list = [];
659
-
660
- if (element.attachEvent) {
661
- element.attachEvent('on' + type, element._events[type]);
662
- }
663
- }
664
-
665
- element._events[type].list.push(listener);
666
- };
667
-
668
- window.removeEventListener = Window.prototype.removeEventListener = Document.prototype.removeEventListener = Element.prototype.removeEventListener = function removeEventListener() {
669
- var
670
- element = this,
671
- type = arguments[0],
672
- listener = arguments[1],
673
- index;
674
-
675
- if (element._events && element._events[type] && element._events[type].list) {
676
- index = indexOf(element._events[type].list, listener);
677
-
678
- if (index !== -1) {
679
- element._events[type].list.splice(index, 1);
680
-
681
- if (!element._events[type].list.length) {
682
- if (element.detachEvent) {
683
- element.detachEvent('on' + type, element._events[type]);
684
- }
685
- delete element._events[type];
686
- }
687
- }
688
- }
689
- };
690
-
691
- window.dispatchEvent = Window.prototype.dispatchEvent = Document.prototype.dispatchEvent = Element.prototype.dispatchEvent = function dispatchEvent(event) {
692
- if (!arguments.length) {
693
- throw new Error('Not enough arguments');
694
- }
695
-
696
- if (!event || typeof event.type !== 'string') {
697
- throw new Error('DOM Events Exception 0');
698
- }
699
-
700
- var element = this, type = event.type;
701
-
702
- try {
703
- if (!event.bubbles) {
704
- event.cancelBubble = true;
705
-
706
- var cancelBubbleEvent = function (event) {
707
- event.cancelBubble = true;
708
-
709
- (element || window).detachEvent('on' + type, cancelBubbleEvent);
710
- };
711
-
712
- this.attachEvent('on' + type, cancelBubbleEvent);
713
- }
714
-
715
- this.fireEvent('on' + type, event);
716
- } catch (error) {
717
- event.target = element;
718
-
719
- do {
720
- event.currentTarget = element;
721
-
722
- if ('_events' in element && typeof element._events[type] === 'function') {
723
- element._events[type].call(element, event);
724
- }
725
-
726
- if (typeof element['on' + type] === 'function') {
727
- element['on' + type].call(element, event);
728
- }
729
-
730
- element = element.nodeType === 9 ? element.parentWindow : element.parentNode;
731
- } while (element && !event.cancelBubble);
732
- }
733
-
734
- return true;
735
- };
736
-
737
- // Add the DOMContentLoaded Event
738
- document.attachEvent('onreadystatechange', function() {
739
- if (document.readyState === 'complete') {
740
- document.dispatchEvent(new Event('DOMContentLoaded', {
741
- bubbles: true
742
- }));
743
- }
744
- });
745
- }
746
- }());
747
-
748
- })
749
- .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
750
-
751
- /**
752
- * Notification Banner component
753
- *
754
- * @class
755
- * @param {Element} $module - HTML element to use for notification banner
756
- * @param {NotificationBannerConfig} [config] - Notification banner config
757
- */
758
- function NotificationBanner ($module, config) {
759
- if (!($module instanceof HTMLElement)) {
760
- return this
761
- }
762
-
763
- /** @deprecated Will be made private in v5.0 */
764
- this.$module = $module;
765
-
766
- var defaultConfig = {
767
- disableAutoFocus: false
768
- };
769
-
770
- /**
771
- * @deprecated Will be made private in v5.0
772
- * @type {NotificationBannerConfig}
773
- */
774
- this.config = mergeConfigs(
775
- defaultConfig,
776
- config || {},
777
- normaliseDataset($module.dataset)
778
- );
779
- }
780
-
781
- /**
782
- * Initialise component
783
- */
784
- NotificationBanner.prototype.init = function () {
785
- // Check that required elements are present
786
- if (!this.$module) {
787
- return
788
- }
789
-
790
- this.setFocus();
791
- };
792
-
793
- /**
794
- * Focus the element
795
- *
796
- * If `role="alert"` is set, focus the element to help some assistive technologies
797
- * prioritise announcing it.
798
- *
799
- * You can turn off the auto-focus functionality by setting `data-disable-auto-focus="true"` in the
800
- * component HTML. You might wish to do this based on user research findings, or to avoid a clash
801
- * with another element which should be focused when the page loads.
802
- *
803
- * @deprecated Will be made private in v5.0
804
- */
805
- NotificationBanner.prototype.setFocus = function () {
806
- var $module = this.$module;
807
-
808
- if (this.config.disableAutoFocus) {
809
- return
810
- }
811
-
812
- if ($module.getAttribute('role') !== 'alert') {
813
- return
814
- }
815
-
816
- // Set tabindex to -1 to make the element focusable with JavaScript.
817
- // Remove the tabindex on blur as the component doesn't need to be focusable after the page has
818
- // loaded.
819
- if (!$module.getAttribute('tabindex')) {
820
- $module.setAttribute('tabindex', '-1');
821
-
822
- $module.addEventListener('blur', function () {
823
- $module.removeAttribute('tabindex');
824
- });
825
- }
826
-
827
- $module.focus();
828
- };
829
-
830
- /**
831
- * Notification banner config
832
- *
833
- * @typedef {object} NotificationBannerConfig
834
- * @property {boolean} [disableAutoFocus = false] - If set to `true` the
835
- * notification banner will not be focussed when the page loads. This only
836
- * applies if the component has a `role` of `alert` – in other cases the
837
- * component will not be focused on page load, regardless of this option.
838
- */
839
-
840
- return NotificationBanner;
841
-
842
- })));
843
- //# sourceMappingURL=notification-banner.js.map