@ons/design-system 70.0.7 → 70.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (454) hide show
  1. package/README.md +11 -17
  2. package/components/access-code/_macro.njk +31 -25
  3. package/components/access-code/_macro.spec.js +145 -145
  4. package/components/access-code/access-code.dom.js +5 -5
  5. package/components/access-code/access-code.js +16 -16
  6. package/components/access-code/access-code.scss +22 -22
  7. package/components/access-code/access-code.spec.js +17 -17
  8. package/components/access-code/example-access-code-error.njk +49 -37
  9. package/components/access-code/example-access-code.njk +40 -30
  10. package/components/accordion/_macro.njk +7 -6
  11. package/components/accordion/_macro.spec.js +154 -154
  12. package/components/accordion/accordion.dom.js +10 -10
  13. package/components/accordion/accordion.js +50 -50
  14. package/components/accordion/accordion.spec.js +104 -104
  15. package/components/accordion/example-accordion-open.njk +0 -1
  16. package/components/address-input/_macro.njk +23 -11
  17. package/components/address-input/_macro.spec.js +420 -420
  18. package/components/address-input/autosuggest.address.dom.js +5 -5
  19. package/components/address-input/autosuggest.address.error.js +77 -77
  20. package/components/address-input/autosuggest.address.js +354 -359
  21. package/components/address-input/autosuggest.address.setter.js +95 -95
  22. package/components/address-input/autosuggest.address.spec.js +668 -651
  23. package/components/address-input/example-address-input-editable.njk +52 -50
  24. package/components/address-input/example-address-input-manual.njk +23 -21
  25. package/components/address-input/example-address-input.njk +40 -38
  26. package/components/address-output/_address-output.scss +3 -3
  27. package/components/address-output/_macro.njk +6 -6
  28. package/components/address-output/_macro.spec.js +84 -84
  29. package/components/autosuggest/_autosuggest.scss +114 -114
  30. package/components/autosuggest/_macro.njk +57 -37
  31. package/components/autosuggest/_macro.spec.js +255 -255
  32. package/components/autosuggest/autosuggest.dom.js +5 -5
  33. package/components/autosuggest/autosuggest.helpers.js +11 -11
  34. package/components/autosuggest/autosuggest.helpers.spec.js +73 -73
  35. package/components/autosuggest/autosuggest.js +20 -20
  36. package/components/autosuggest/autosuggest.spec.js +542 -536
  37. package/components/autosuggest/autosuggest.ui.js +478 -475
  38. package/components/autosuggest/example-autosuggest-country-multiple.njk +26 -26
  39. package/components/autosuggest/example-autosuggest-country.njk +24 -24
  40. package/components/autosuggest/fuse-config.js +17 -17
  41. package/components/back-to-top/_back-to-top.scss +27 -27
  42. package/components/back-to-top/_macro.spec.js +49 -49
  43. package/components/back-to-top/back-to-top.dom.js +5 -5
  44. package/components/back-to-top/back-to-top.js +52 -52
  45. package/components/back-to-top/back-to-top.spec.js +106 -106
  46. package/components/back-to-top/example-back-to-top.njk +183 -6
  47. package/components/back-to-top/example-full-page-back-to-top.njk +135 -123
  48. package/components/breadcrumbs/_breadcrumbs.scss +63 -65
  49. package/components/breadcrumbs/_macro.njk +12 -4
  50. package/components/breadcrumbs/_macro.spec.js +91 -91
  51. package/components/browser-banner/_browser-banner.scss +23 -23
  52. package/components/browser-banner/_macro.njk +6 -3
  53. package/components/browser-banner/_macro.spec.js +92 -92
  54. package/components/button/_button.scss +525 -491
  55. package/components/button/_macro.njk +63 -62
  56. package/components/button/_macro.spec.js +363 -363
  57. package/components/button/button.dom.js +15 -15
  58. package/components/button/button.js +53 -53
  59. package/components/button/button.spec.js +248 -240
  60. package/components/button/example-button-ghost.njk +1 -0
  61. package/components/call-to-action/_call-to-action.scss +5 -5
  62. package/components/call-to-action/_macro.njk +7 -5
  63. package/components/call-to-action/_macro.spec.js +28 -28
  64. package/components/call-to-action/example-call-to-action-default.njk +3 -2
  65. package/components/card/_card.scss +23 -23
  66. package/components/card/_macro.njk +26 -10
  67. package/components/card/_macro.spec.js +180 -180
  68. package/components/card/example-card-set-with-images.njk +31 -29
  69. package/components/card/example-card-set-with-lists.njk +58 -56
  70. package/components/card/example-card-set.njk +28 -26
  71. package/components/card/example-card.njk +9 -7
  72. package/components/char-check-limit/_macro.njk +1 -3
  73. package/components/char-check-limit/_macro.spec.js +48 -48
  74. package/components/char-check-limit/character-check.js +58 -58
  75. package/components/char-check-limit/character-check.spec.js +173 -173
  76. package/components/char-check-limit/character-limit.js +40 -40
  77. package/components/checkboxes/_checkbox-macro.njk +19 -15
  78. package/components/checkboxes/_checkbox-macro.spec.js +355 -355
  79. package/components/checkboxes/_checkbox.scss +180 -180
  80. package/components/checkboxes/_checkboxes.scss +37 -27
  81. package/components/checkboxes/_macro.njk +81 -72
  82. package/components/checkboxes/_macro.spec.js +261 -261
  83. package/components/checkboxes/checkbox-with-autoselect.js +32 -32
  84. package/components/checkboxes/checkbox-with-fieldset.js +21 -21
  85. package/components/checkboxes/checkboxes-with-reveal.js +10 -10
  86. package/components/checkboxes/checkboxes.dom.js +27 -27
  87. package/components/checkboxes/checkboxes.spec.js +183 -183
  88. package/components/checkboxes/example-checkboxes-disabled.njk +30 -30
  89. package/components/checkboxes/example-checkboxes-error.njk +0 -1
  90. package/components/checkboxes/example-checkboxes-with-descriptions.njk +7 -5
  91. package/components/checkboxes/example-checkboxes-with-hidden-label.njk +162 -170
  92. package/components/checkboxes/example-checkboxes-with-revealed-checkboxes-expanded.njk +81 -81
  93. package/components/checkboxes/example-checkboxes-with-revealed-checkboxes.njk +79 -79
  94. package/components/checkboxes/example-checkboxes-with-revealed-select-expanded.njk +7 -5
  95. package/components/checkboxes/example-checkboxes-with-revealed-select.njk +7 -5
  96. package/components/checkboxes/example-checkboxes-with-revealed-text-input-expanded.njk +7 -5
  97. package/components/checkboxes/example-checkboxes-with-revealed-text-input.njk +7 -5
  98. package/components/checkboxes/example-checkboxes-with-select-all-button.njk +7 -5
  99. package/components/checkboxes/example-checkboxes-with-visible-text-input.njk +7 -5
  100. package/components/checkboxes/example-checkboxes.njk +7 -5
  101. package/components/content-pagination/_content-pagination.scss +41 -41
  102. package/components/content-pagination/_macro.njk +34 -32
  103. package/components/content-pagination/_macro.spec.js +159 -159
  104. package/components/content-pagination/example-content-pagination.njk +17 -17
  105. package/components/cookies-banner/_cookies-banner.scss +22 -22
  106. package/components/cookies-banner/_macro.njk +19 -6
  107. package/components/cookies-banner/_macro.spec.js +177 -177
  108. package/components/cookies-banner/cookies-banner.dom.js +7 -7
  109. package/components/cookies-banner/cookies-banner.js +76 -76
  110. package/components/cookies-banner/cookies-banner.spec.js +72 -68
  111. package/components/cookies-banner/example-cookies-banner-cymraeg.njk +2 -1
  112. package/components/cookies-banner/example-cookies-banner.njk +3 -4
  113. package/components/date-input/_macro.njk +71 -63
  114. package/components/date-input/_macro.spec.js +338 -338
  115. package/components/date-input/example-date-input-error-for-single-field.njk +0 -1
  116. package/components/date-input/example-date-input-error.njk +0 -1
  117. package/components/description-list/_description-list.scss +23 -23
  118. package/components/description-list/_macro.njk +20 -11
  119. package/components/description-list/_macro.spec.js +144 -144
  120. package/components/details/_details.scss +109 -109
  121. package/components/details/_macro.njk +18 -11
  122. package/components/details/_macro.spec.js +132 -132
  123. package/components/details/details.dom.js +6 -6
  124. package/components/details/details.js +60 -60
  125. package/components/details/details.spec.js +106 -106
  126. package/components/details/example-details-with-warning.njk +15 -10
  127. package/components/document-list/_macro.njk +102 -93
  128. package/components/document-list/_macro.spec.js +444 -444
  129. package/components/document-list/document-list.scss +145 -149
  130. package/components/document-list/example-document-list-article-featured.njk +27 -25
  131. package/components/document-list/example-document-list-articles.njk +55 -53
  132. package/components/document-list/example-document-list-downloads.njk +49 -47
  133. package/components/document-list/example-document-list-search-result-featured.njk +19 -17
  134. package/components/document-list/example-document-list-search-results.njk +60 -58
  135. package/components/download-resources/_download-resources.scss +109 -108
  136. package/components/download-resources/download-resources.js +907 -900
  137. package/components/download-resources/download-resources.spec.js +461 -461
  138. package/components/duration/_macro.njk +61 -55
  139. package/components/duration/_macro.spec.js +291 -291
  140. package/components/duration/example-duration-error-for-single-field.njk +28 -26
  141. package/components/duration/example-duration-single-field.njk +23 -19
  142. package/components/duration/example-duration.njk +33 -29
  143. package/components/error/_macro.njk +8 -6
  144. package/components/error/_macro.spec.js +72 -72
  145. package/components/external-link/_external-link.scss +19 -19
  146. package/components/external-link/_macro.njk +7 -5
  147. package/components/external-link/_macro.spec.js +68 -68
  148. package/components/external-link/example-external-link.njk +9 -6
  149. package/components/feedback/_feedback.scss +31 -31
  150. package/components/feedback/_macro.njk +7 -5
  151. package/components/feedback/_macro.spec.js +72 -72
  152. package/components/field/_field-group.scss +10 -10
  153. package/components/field/_field.scss +16 -16
  154. package/components/field/_macro.njk +2 -2
  155. package/components/field/_macro.spec.js +80 -80
  156. package/components/fieldset/_fieldset.scss +27 -27
  157. package/components/fieldset/_macro.njk +23 -16
  158. package/components/fieldset/_macro.spec.js +161 -161
  159. package/components/footer/_footer.scss +45 -45
  160. package/components/footer/_macro.njk +28 -21
  161. package/components/footer/_macro.spec.js +452 -452
  162. package/components/footer/example-footer-cymraeg.njk +2 -1
  163. package/components/footer/example-footer-default.njk +3 -4
  164. package/components/footer/example-footer-transactional.njk +2 -1
  165. package/components/footer/example-footer-warning.njk +2 -1
  166. package/components/footer/example-footer-with-alternative-organisation.njk +2 -1
  167. package/components/footer/example-footer-with-coat-of-arms.njk +2 -1
  168. package/components/footer/example-footer-with-copyright.njk +2 -1
  169. package/components/footer/example-footer.njk +2 -1
  170. package/components/header/_header.scss +207 -202
  171. package/components/header/_macro.njk +183 -141
  172. package/components/header/_macro.spec.js +833 -829
  173. package/components/header/example-header-default.njk +2 -1
  174. package/components/header/example-header-external-for-survey-with-description.njk +2 -1
  175. package/components/header/example-header-external-for-surveys.njk +2 -1
  176. package/components/header/example-header-external-welsh.njk +7 -7
  177. package/components/header/example-header-external-with-navigation-and-search.njk +3 -2
  178. package/components/header/example-header-external-with-navigation.njk +2 -1
  179. package/components/header/example-header-external-with-service-links.njk +2 -1
  180. package/components/header/example-header-external-with-sub-navigation-removed.njk +2 -1
  181. package/components/header/example-header-external-with-sub-navigation.njk +3 -2
  182. package/components/header/example-header-internal.njk +2 -1
  183. package/components/header/example-header-multiple-logos.njk +2 -1
  184. package/components/header/{example-header-neutral-for-multicoloured-logo.njk → example-header-neutral.njk} +2 -1
  185. package/components/helpers/_grid.scss +4 -4
  186. package/components/helpers/grid.njk +17 -16
  187. package/components/hero/_hero.scss +48 -48
  188. package/components/hero/_macro.njk +6 -11
  189. package/components/hero/_macro.spec.js +59 -59
  190. package/components/hero/example-hero-dark.njk +2 -1
  191. package/components/hero/example-hero-default.njk +2 -1
  192. package/components/icon/_icon.scss +44 -44
  193. package/components/icon/_macro.njk +601 -168
  194. package/components/icon/_macro.spec.js +110 -110
  195. package/components/image/_image.scss +11 -11
  196. package/components/image/_macro.njk +7 -5
  197. package/components/image/_macro.spec.js +81 -81
  198. package/components/input/_input-type.scss +86 -89
  199. package/components/input/_input.scss +123 -124
  200. package/components/input/_macro.njk +114 -95
  201. package/components/input/_macro.spec.js +604 -604
  202. package/components/input/character-check.dom.js +5 -5
  203. package/components/input/example-input-search-with-character-check.njk +1 -1
  204. package/components/input/example-input-search-with-placeholder.njk +1 -1
  205. package/components/input/example-input-search.njk +1 -1
  206. package/components/input/input.dom.js +5 -5
  207. package/components/input/input.js +10 -10
  208. package/components/input/input.spec.js +18 -18
  209. package/components/label/_label.scss +24 -24
  210. package/components/label/_macro.njk +32 -26
  211. package/components/label/_macro.spec.js +173 -170
  212. package/components/language-selector/_macro.njk +11 -2
  213. package/components/language-selector/_macro.spec.js +97 -97
  214. package/components/language-selector/language.scss +7 -7
  215. package/components/list/_list.scss +110 -97
  216. package/components/list/_macro.njk +93 -73
  217. package/components/list/_macro.spec.js +583 -583
  218. package/components/message/_macro.njk +20 -7
  219. package/components/message/_macro.spec.js +74 -74
  220. package/components/message/_message.scss +39 -39
  221. package/components/message-list/_macro.njk +26 -20
  222. package/components/message-list/_macro.spec.js +86 -86
  223. package/components/message-list/_message-list.scss +16 -16
  224. package/components/modal/_macro.njk +11 -12
  225. package/components/modal/_macro.spec.js +69 -69
  226. package/components/modal/_modal.scss +36 -36
  227. package/components/modal/modal.dom.js +6 -6
  228. package/components/modal/modal.js +89 -89
  229. package/components/modal/modal.spec.js +50 -50
  230. package/components/multiple-input-fields/_macro.njk +30 -28
  231. package/components/mutually-exclusive/_macro.njk +20 -13
  232. package/components/mutually-exclusive/_macro.spec.js +140 -140
  233. package/components/mutually-exclusive/example-mutually-exclusive-checkboxes.njk +6 -4
  234. package/components/mutually-exclusive/example-mutually-exclusive-date.njk +7 -5
  235. package/components/mutually-exclusive/example-mutually-exclusive-duration.njk +44 -40
  236. package/components/mutually-exclusive/example-mutually-exclusive-email.njk +7 -5
  237. package/components/mutually-exclusive/example-mutually-exclusive-multiple-options.njk +6 -4
  238. package/components/mutually-exclusive/example-mutually-exclusive-number.njk +6 -4
  239. package/components/mutually-exclusive/example-mutually-exclusive-textarea.njk +6 -4
  240. package/components/mutually-exclusive/mutually-exclusive.checkboxes.spec.js +188 -188
  241. package/components/mutually-exclusive/mutually-exclusive.date.spec.js +211 -211
  242. package/components/mutually-exclusive/mutually-exclusive.dom.js +5 -5
  243. package/components/mutually-exclusive/mutually-exclusive.duration.spec.js +210 -210
  244. package/components/mutually-exclusive/mutually-exclusive.email.spec.js +90 -90
  245. package/components/mutually-exclusive/mutually-exclusive.js +137 -137
  246. package/components/mutually-exclusive/mutually-exclusive.multiple-options.checkboxes.spec.js +197 -197
  247. package/components/mutually-exclusive/mutually-exclusive.number.spec.js +96 -96
  248. package/components/mutually-exclusive/mutually-exclusive.textarea.spec.js +102 -102
  249. package/components/navigation/_macro.njk +133 -67
  250. package/components/navigation/_macro.spec.js +360 -354
  251. package/components/navigation/_navigation.scss +112 -122
  252. package/components/navigation/navigation.dom.js +35 -35
  253. package/components/navigation/navigation.js +49 -49
  254. package/components/navigation/navigation.spec.js +249 -249
  255. package/components/pagination/_macro.njk +42 -20
  256. package/components/pagination/_macro.spec.js +342 -335
  257. package/components/pagination/_pagination.scss +58 -58
  258. package/components/panel/_macro.njk +27 -16
  259. package/components/panel/_macro.spec.js +372 -372
  260. package/components/panel/_panel.scss +200 -199
  261. package/components/panel/example-panel-bare.njk +6 -4
  262. package/components/panel/example-panel-with-announcement.njk +7 -4
  263. package/components/panel/example-panel-with-error-summary.njk +6 -4
  264. package/components/panel/example-panel-with-warning.njk +5 -3
  265. package/components/password/_macro.njk +7 -5
  266. package/components/password/_macro.spec.js +95 -95
  267. package/components/password/password.dom.js +5 -5
  268. package/components/password/password.js +10 -10
  269. package/components/password/password.spec.js +26 -26
  270. package/components/phase-banner/_macro.njk +3 -3
  271. package/components/phase-banner/_macro.spec.js +86 -86
  272. package/components/phase-banner/_phase-banner.scss +16 -16
  273. package/components/phase-banner/example-phase-banner-alpha.njk +2 -1
  274. package/components/phase-banner/example-phase-banner-beta.njk +4 -3
  275. package/components/question/_macro.njk +62 -47
  276. package/components/question/_macro.spec.js +235 -235
  277. package/components/question/_question.scss +24 -24
  278. package/components/question/example-question-ccs.njk +40 -35
  279. package/components/question/example-question-fieldset.njk +84 -80
  280. package/components/question/example-question-interviewer-note.njk +27 -24
  281. package/components/question/example-question-no-fieldset.njk +39 -33
  282. package/components/quote/_macro.njk +3 -1
  283. package/components/quote/_macro.spec.js +52 -52
  284. package/components/quote/_quote.scss +24 -24
  285. package/components/radios/_macro.njk +54 -36
  286. package/components/radios/_macro.spec.js +545 -524
  287. package/components/radios/_radio.scss +49 -48
  288. package/components/radios/_radios.scss +14 -20
  289. package/components/radios/check-radios.js +21 -21
  290. package/components/radios/clear-radios.js +45 -45
  291. package/components/radios/example-radios-with-clear-button-expanded.njk +6 -4
  292. package/components/radios/example-radios-with-clear-button.njk +6 -4
  293. package/components/radios/example-radios-with-descriptions.njk +7 -5
  294. package/components/radios/example-radios-with-revealed-select-expanded.njk +6 -4
  295. package/components/radios/example-radios-with-revealed-select.njk +6 -4
  296. package/components/radios/example-radios-with-revealed-text-area-expanded.njk +7 -5
  297. package/components/radios/example-radios-with-revealed-text-area.njk +7 -5
  298. package/components/radios/example-radios-with-revealed-text-input-expanded.njk +7 -5
  299. package/components/radios/example-radios-with-revealed-text-input.njk +7 -5
  300. package/components/radios/example-radios-with-separator.njk +6 -4
  301. package/components/radios/example-radios-with-visible-text-input.njk +7 -5
  302. package/components/radios/example-radios-without-border.njk +0 -1
  303. package/components/radios/example-radios.njk +7 -5
  304. package/components/radios/radio-with-fieldset.js +22 -22
  305. package/components/radios/radios.dom.js +32 -32
  306. package/components/radios/radios.spec.js +251 -251
  307. package/components/related-content/_macro.njk +10 -11
  308. package/components/related-content/_macro.spec.js +109 -109
  309. package/components/related-content/_related-content.scss +12 -12
  310. package/components/related-content/_section-macro.njk +7 -7
  311. package/components/related-content/_section-macro.spec.js +20 -20
  312. package/components/related-content/example-related-content-general.njk +5 -3
  313. package/components/related-content/example-related-content-multiple-rows-of-links.njk +51 -49
  314. package/components/related-content/example-related-content-social-media.njk +40 -38
  315. package/components/relationships/_macro.njk +10 -8
  316. package/components/relationships/_macro.spec.js +94 -94
  317. package/components/relationships/_relationships.scss +9 -9
  318. package/components/relationships/example-relationships-error.njk +176 -168
  319. package/components/relationships/example-relationships-you.njk +169 -163
  320. package/components/relationships/example-relationships.njk +167 -161
  321. package/components/relationships/relationships.dom.js +5 -5
  322. package/components/relationships/relationships.js +18 -18
  323. package/components/relationships/relationships.spec.js +71 -71
  324. package/components/reply/_macro.spec.js +47 -47
  325. package/components/reply/reply-input.js +15 -15
  326. package/components/reply/reply.dom.js +5 -5
  327. package/components/reply/reply.spec.js +57 -57
  328. package/components/section-navigation/_macro.njk +34 -12
  329. package/components/section-navigation/_macro.spec.js +210 -210
  330. package/components/section-navigation/_section-navigation.scss +76 -76
  331. package/components/select/_macro.njk +21 -18
  332. package/components/select/_macro.spec.js +166 -166
  333. package/components/share-page/_macro.njk +10 -5
  334. package/components/share-page/_macro.spec.js +68 -68
  335. package/components/skip-to-content/_macro.njk +1 -1
  336. package/components/skip-to-content/_macro.spec.js +54 -54
  337. package/components/skip-to-content/_skip.scss +30 -30
  338. package/components/skip-to-content/example-skip-to-content.njk +1 -0
  339. package/components/skip-to-content/skip-to-content.dom.js +6 -6
  340. package/components/skip-to-content/skip-to-content.js +7 -7
  341. package/components/skip-to-content/skip-to-content.spec.js +21 -21
  342. package/components/status/_macro.njk +1 -1
  343. package/components/status/_macro.spec.js +53 -53
  344. package/components/status/_status.scss +32 -32
  345. package/components/summary/_macro.njk +53 -23
  346. package/components/summary/_macro.spec.js +551 -535
  347. package/components/summary/_summary.scss +191 -195
  348. package/components/summary/example-summary-household-no-rows.njk +18 -16
  349. package/components/summary/example-summary-household.njk +75 -73
  350. package/components/summary/example-summary-hub-minimal.njk +74 -72
  351. package/components/summary/example-summary-hub.njk +169 -167
  352. package/components/table/_macro.njk +72 -45
  353. package/components/table/_macro.spec.js +499 -499
  354. package/components/table/_table.scss +204 -201
  355. package/components/table/scrollable-table.dom.js +5 -5
  356. package/components/table/scrollable-table.js +60 -60
  357. package/components/table/sortable-table.dom.js +5 -5
  358. package/components/table/sortable-table.js +135 -135
  359. package/components/table/table.spec.js +144 -140
  360. package/components/table-of-contents/_macro.njk +34 -32
  361. package/components/table-of-contents/_macro.spec.js +125 -125
  362. package/components/table-of-contents/_toc.scss +9 -9
  363. package/components/table-of-contents/example-table-of-contents-grouped.njk +1 -1
  364. package/components/table-of-contents/example-table-of-contents-single.njk +1 -1
  365. package/components/table-of-contents/example-table-of-contents-sticky-full-page.njk +79 -38
  366. package/components/table-of-contents/example-table-of-contents-sticky.njk +50 -13
  367. package/components/table-of-contents/toc.dom.js +5 -5
  368. package/components/table-of-contents/toc.js +30 -30
  369. package/components/table-of-contents/toc.spec.js +88 -88
  370. package/components/tabs/_macro.njk +12 -6
  371. package/components/tabs/_macro.spec.js +92 -92
  372. package/components/tabs/_tabs.scss +120 -115
  373. package/components/tabs/example-tabs-details.njk +5 -6
  374. package/components/tabs/tabs.dom.js +5 -5
  375. package/components/tabs/tabs.js +266 -266
  376. package/components/tabs/tabs.spec.js +268 -268
  377. package/components/text-indent/_macro.njk +1 -3
  378. package/components/text-indent/_macro.spec.js +33 -33
  379. package/components/text-indent/_text-indent.scss +3 -3
  380. package/components/textarea/_macro.njk +49 -46
  381. package/components/textarea/_macro.spec.js +227 -238
  382. package/components/textarea/textarea.dom.js +5 -5
  383. package/components/textarea/textarea.spec.js +78 -74
  384. package/components/timeline/_macro.njk +4 -6
  385. package/components/timeline/_macro.spec.js +83 -83
  386. package/components/timeline/_timeline.scss +26 -26
  387. package/components/timeout-modal/_macro.njk +21 -19
  388. package/components/timeout-modal/_macro.spec.js +47 -47
  389. package/components/timeout-modal/example-timeout-modal.njk +16 -14
  390. package/components/timeout-modal/timeout-modal.dom.js +9 -9
  391. package/components/timeout-modal/timeout-modal.js +66 -66
  392. package/components/timeout-modal/timeout-modal.spec.js +157 -157
  393. package/components/timeout-panel/_macro.njk +19 -17
  394. package/components/timeout-panel/_macro.spec.js +41 -41
  395. package/components/timeout-panel/example-panel-with-timeout-warning.njk +13 -11
  396. package/components/timeout-panel/timeout-panel.dom.js +8 -8
  397. package/components/timeout-panel/timeout-panel.spec.js +118 -118
  398. package/components/upload/_macro.njk +20 -16
  399. package/components/upload/_macro.spec.js +52 -52
  400. package/components/upload/_upload.scss +28 -28
  401. package/components/video/_macro.njk +16 -2
  402. package/components/video/_macro.spec.js +42 -42
  403. package/components/video/_video.scss +16 -16
  404. package/components/video/example-video.njk +2 -2
  405. package/components/video/video.dom.js +5 -5
  406. package/components/video/video.js +32 -32
  407. package/components/video/video.spec.js +103 -97
  408. package/css/main.css +1 -1
  409. package/favicons/manifest.json +25 -25
  410. package/js/abortable-fetch.js +23 -23
  411. package/js/analytics.js +53 -53
  412. package/js/cookies-functions.js +135 -135
  413. package/js/cookies-settings.dom.js +7 -7
  414. package/js/cookies-settings.js +77 -77
  415. package/js/cookies-settings.spec.js +106 -106
  416. package/js/domready.js +8 -8
  417. package/js/fetch.js +14 -14
  418. package/js/inpagelink.dom.js +5 -5
  419. package/js/inpagelink.js +19 -19
  420. package/js/polyfills.js +0 -1
  421. package/js/print-button.js +6 -6
  422. package/js/timeout.js +211 -211
  423. package/layout/_dsTemplate.njk +22 -20
  424. package/layout/_template.njk +63 -51
  425. package/package.json +132 -128
  426. package/scripts/main.es5.js +1 -1
  427. package/scripts/main.js +1 -1
  428. package/scss/base/_forms.scss +10 -10
  429. package/scss/base/_global.scss +45 -44
  430. package/scss/base/_typography.scss +20 -20
  431. package/scss/helpers/_functions.scss +18 -15
  432. package/scss/helpers/_mixins.scss +59 -53
  433. package/scss/helpers/_mq.scss +62 -65
  434. package/scss/objects/_container.scss +20 -20
  435. package/scss/objects/_page.scss +33 -33
  436. package/scss/objects/_spacing.scss +10 -10
  437. package/scss/overrides/hcm.scss +237 -237
  438. package/scss/overrides/rtl.scss +95 -95
  439. package/scss/print.scss +47 -47
  440. package/scss/utilities/_border.scss +7 -7
  441. package/scss/utilities/_colors.scss +6 -6
  442. package/scss/utilities/_display.scss +8 -8
  443. package/scss/utilities/_float.scss +7 -7
  444. package/scss/utilities/_grid.scss +144 -144
  445. package/scss/utilities/_highlight.scss +4 -4
  446. package/scss/utilities/_margin.scss +17 -17
  447. package/scss/utilities/_pad.scss +15 -15
  448. package/scss/utilities/_typography.scss +35 -33
  449. package/scss/utilities/_utilities.scss +8 -8
  450. package/scss/utilities/_visibility.scss +25 -25
  451. package/scss/vars/_colors.scss +116 -116
  452. package/scss/vars/_forms.scss +22 -22
  453. package/scss/vars/_grid.scss +11 -9
  454. package/scss/vars/_typography.scss +54 -54
@@ -1,27 +1,27 @@
1
1
  {
2
- "name": "Office for National Statistics",
3
- "short_name": "ONS",
4
- "icons": [
5
- {
6
- "src": "android-chrome-192x192.png",
7
- "sizes": "192x192",
8
- "type": "image/png"
9
- },
10
- {
11
- "src": "android-chrome-512x512.png",
12
- "sizes": "512x512",
13
- "type": "image/png"
14
- },
15
- {
16
- "src": "maskable_icon.png",
17
- "sizes": "192x192",
18
- "type": "image/png",
19
- "purpose": "any maskable"
20
- }
21
- ],
22
- "content_security_policy": "script-src 'self' https://cdn.ons.gov.uk; object-src 'self' https://cdn.ons.gov.uk;",
23
- "theme_color": "#003B61",
24
- "background_color": "#003B61",
25
- "display": "standalone",
26
- "start_url": "../"
2
+ "name": "Office for National Statistics",
3
+ "short_name": "ONS",
4
+ "icons": [
5
+ {
6
+ "src": "android-chrome-192x192.png",
7
+ "sizes": "192x192",
8
+ "type": "image/png"
9
+ },
10
+ {
11
+ "src": "android-chrome-512x512.png",
12
+ "sizes": "512x512",
13
+ "type": "image/png"
14
+ },
15
+ {
16
+ "src": "maskable_icon.png",
17
+ "sizes": "192x192",
18
+ "type": "image/png",
19
+ "purpose": "any maskable"
20
+ }
21
+ ],
22
+ "content_security_policy": "script-src 'self' https://cdn.ons.gov.uk; object-src 'self' https://cdn.ons.gov.uk;",
23
+ "theme_color": "#003B61",
24
+ "background_color": "#003B61",
25
+ "display": "standalone",
26
+ "start_url": "../"
27
27
  }
@@ -1,30 +1,30 @@
1
1
  class AbortableFetch {
2
- constructor(url, options) {
3
- this.url = url;
4
- this.options = options;
5
- this.controller = new window.AbortController();
6
- this.status = 'UNSENT';
7
- }
2
+ constructor(url, options) {
3
+ this.url = url;
4
+ this.options = options;
5
+ this.controller = new window.AbortController();
6
+ this.status = 'UNSENT';
7
+ }
8
8
 
9
- async send() {
10
- this.status = 'LOADING';
11
- try {
12
- const response = await window.fetch(this.url, { signal: this.controller.signal, ...this.options });
13
- const isResponseOK = (response.status >= 200 && response.status < 300) || response.status >= 400;
14
- if (!isResponseOK) {
15
- const error = new Error(`HTTP error! status: ${response.status}`);
16
- error.response = response;
17
- throw error;
18
- }
19
- return response;
20
- } finally {
21
- this.status = 'DONE';
9
+ async send() {
10
+ this.status = 'LOADING';
11
+ try {
12
+ const response = await window.fetch(this.url, { signal: this.controller.signal, ...this.options });
13
+ const isResponseOK = (response.status >= 200 && response.status < 300) || response.status >= 400;
14
+ if (!isResponseOK) {
15
+ const error = new Error(`HTTP error! status: ${response.status}`);
16
+ error.response = response;
17
+ throw error;
18
+ }
19
+ return response;
20
+ } finally {
21
+ this.status = 'DONE';
22
+ }
22
23
  }
23
- }
24
24
 
25
- abort() {
26
- this.controller.abort();
27
- }
25
+ abort() {
26
+ this.controller.abort();
27
+ }
28
28
  }
29
29
 
30
30
  export default (url, options) => new AbortableFetch(url, options);
package/js/analytics.js CHANGED
@@ -3,71 +3,71 @@ import domready from './domready';
3
3
  export let trackEvent = () => {};
4
4
 
5
5
  if (window.google_tag_manager !== undefined) {
6
- console.log('GA active');
7
- trackEvent = (type, data) => {
8
- gtag('event', type, { ...data });
9
- console.log('Data sent to Data Layer');
10
- };
6
+ console.log('GA active');
7
+ trackEvent = (type, data) => {
8
+ gtag('event', type, { ...data });
9
+ console.log('Data sent to Data Layer');
10
+ };
11
11
  } else {
12
- console.log('Google analytics not connected');
12
+ console.log('Google analytics not connected');
13
13
  }
14
14
 
15
15
  export const trackElement = (el, type) => {
16
- const attributes = el.attributes;
17
- const eventData = {};
18
- // Loop through all attributes of the element
19
- for (let i = 0; i < attributes.length; i++) {
20
- const attributeName = attributes[i].name;
21
- // Check if the attribute starts with 'data-ga-'
22
- if (attributeName.startsWith('data-ga-')) {
23
- // Extract the key by removing 'data-ga-' prefix
24
- const key = attributeName.replace('data-ga-', '').replace('-', '_');
25
- // Use the attribute value as the value for the key
26
- eventData[key] = el.getAttribute(attributeName);
16
+ const attributes = el.attributes;
17
+ const eventData = {};
18
+ // Loop through all attributes of the element
19
+ for (let i = 0; i < attributes.length; i++) {
20
+ const attributeName = attributes[i].name;
21
+ // Check if the attribute starts with 'data-ga-'
22
+ if (attributeName.startsWith('data-ga-')) {
23
+ // Extract the key by removing 'data-ga-' prefix
24
+ const key = attributeName.replace('data-ga-', '').replace('-', '_');
25
+ // Use the attribute value as the value for the key
26
+ eventData[key] = el.getAttribute(attributeName);
27
+ }
27
28
  }
28
- }
29
- return trackEvent(`ons_${type}`, eventData);
29
+ return trackEvent(`ons_${type}`, eventData);
30
30
  };
31
31
 
32
32
  export default function initAnalytics() {
33
- let trackVisibleElements = [...document.querySelectorAll('[data-ga=visible]')];
33
+ let trackVisibleElements = [...document.querySelectorAll('[data-ga=visible]')];
34
34
 
35
- const interval = window.setInterval(() => {
36
- trackVisibleElements = trackVisibleElements.filter((element) => {
37
- return element ? trackElement(element, 'visible') && false : true;
38
- });
39
- if (trackVisibleElements.length === 0) {
40
- window.clearInterval(interval);
41
- }
42
- }, 200);
43
-
44
- document.body.addEventListener('click', ({ target }) => {
45
- if (target.getAttribute('data-ga') === 'click') {
46
- return trackElement(target, 'click');
47
- } else if (target.parentElement.getAttribute('data-ga') === 'click') {
48
- return trackElement(target.parentElement, 'click');
49
- }
50
- });
51
- [...document.querySelectorAll('[data-ga=error]')].map((element) => trackElement(element, 'error'));
35
+ const interval = window.setInterval(() => {
36
+ trackVisibleElements = trackVisibleElements.filter((element) => {
37
+ return element ? trackElement(element, 'visible') && false : true;
38
+ });
39
+ if (trackVisibleElements.length === 0) {
40
+ window.clearInterval(interval);
41
+ }
42
+ }, 200);
52
43
 
53
- const afterPrint = () => {
54
- return trackEvent({
55
- event_tracked: 'true',
56
- event_category: 'Print Intent',
57
- event_action: 'Print Intent',
58
- event_label: window.location.pathname.split('/').slice(-3).join('/'),
44
+ document.body.addEventListener('click', ({ target }) => {
45
+ if (target.getAttribute('data-ga') === 'click') {
46
+ return trackElement(target, 'click');
47
+ } else if (target.parentElement.getAttribute('data-ga') === 'click') {
48
+ return trackElement(target.parentElement, 'click');
49
+ }
59
50
  });
60
- };
51
+ [...document.querySelectorAll('[data-ga=error]')].map((element) => trackElement(element, 'error'));
61
52
 
62
- if (window.matchMedia) {
63
- const mediaQueryList = window.matchMedia('print');
64
- mediaQueryList.addListener(function (mql) {
65
- if (!mql.matches) {
66
- afterPrint();
67
- }
68
- });
69
- }
70
- window.onafterprint = afterPrint;
53
+ const afterPrint = () => {
54
+ return trackEvent({
55
+ event_tracked: 'true',
56
+ event_category: 'Print Intent',
57
+ event_action: 'Print Intent',
58
+ event_label: window.location.pathname.split('/').slice(-3).join('/'),
59
+ });
60
+ };
61
+
62
+ if (window.matchMedia) {
63
+ const mediaQueryList = window.matchMedia('print');
64
+ mediaQueryList.addListener(function (mql) {
65
+ if (!mql.matches) {
66
+ afterPrint();
67
+ }
68
+ });
69
+ }
70
+ window.onafterprint = afterPrint;
71
71
  }
72
72
 
73
73
  domready(initAnalytics);
@@ -1,182 +1,182 @@
1
1
  export const DEFAULT_COOKIE_CONSENT = {
2
- essential: true,
3
- settings: false,
4
- usage: false,
5
- campaigns: false,
2
+ essential: true,
3
+ settings: false,
4
+ usage: false,
5
+ campaigns: false,
6
6
  };
7
7
 
8
8
  export const COOKIE_CATEGORIES = {
9
- RH_SESSION: 'essential',
10
- session: 'essential',
11
- ons_cookie_policy: 'essential',
12
- ons_cookie_message_displayed: 'essential',
13
- _ga: 'usage',
14
- _gid: 'usage',
15
- _gat: 'usage',
16
- _use_hitbox: 'campaigns',
17
- VISITOR_INFO1_LIVE: 'campaigns',
18
- _fbp: 'campaigns',
19
- COOKIE_SUPPORT: 'essential',
20
- GUEST_LANGUAGE_ID: 'essential',
21
- JSESSIONID: 'essential',
22
- ID: 'essential',
23
- COMPANY_ID: 'essential',
24
- USER_UUID: 'essential',
25
- LFR_SESSION_STATE_: 'essential',
26
- csfcfc: 'essential',
9
+ RH_SESSION: 'essential',
10
+ session: 'essential',
11
+ ons_cookie_policy: 'essential',
12
+ ons_cookie_message_displayed: 'essential',
13
+ _ga: 'usage',
14
+ _gid: 'usage',
15
+ _gat: 'usage',
16
+ _use_hitbox: 'campaigns',
17
+ VISITOR_INFO1_LIVE: 'campaigns',
18
+ _fbp: 'campaigns',
19
+ COOKIE_SUPPORT: 'essential',
20
+ GUEST_LANGUAGE_ID: 'essential',
21
+ JSESSIONID: 'essential',
22
+ ID: 'essential',
23
+ COMPANY_ID: 'essential',
24
+ USER_UUID: 'essential',
25
+ LFR_SESSION_STATE_: 'essential',
26
+ csfcfc: 'essential',
27
27
  };
28
28
 
29
29
  export function cookie(name, value, options) {
30
- if (typeof value !== 'undefined') {
31
- if (value === false || value === null) {
32
- return setCookie(name, '', { days: -1 });
30
+ if (typeof value !== 'undefined') {
31
+ if (value === false || value === null) {
32
+ return setCookie(name, '', { days: -1 });
33
+ } else {
34
+ if (typeof options === 'undefined') {
35
+ options = { days: 30 };
36
+ }
37
+ return setCookie(name, value, options);
38
+ }
33
39
  } else {
34
- if (typeof options === 'undefined') {
35
- options = { days: 30 };
36
- }
37
- return setCookie(name, value, options);
40
+ return getCookie(name);
38
41
  }
39
- } else {
40
- return getCookie(name);
41
- }
42
42
  }
43
43
 
44
44
  export function setDefaultConsentCookie() {
45
- const defaultConsentCookie = JSON.stringify(DEFAULT_COOKIE_CONSENT).replace(/"/g, "'");
46
- setCookie('ons_cookie_policy', defaultConsentCookie, { days: 365 });
45
+ const defaultConsentCookie = JSON.stringify(DEFAULT_COOKIE_CONSENT).replace(/"/g, "'");
46
+ setCookie('ons_cookie_policy', defaultConsentCookie, { days: 365 });
47
47
  }
48
48
 
49
49
  export function approveAllCookieTypes() {
50
- let approvedConsent = {
51
- essential: true,
52
- settings: true,
53
- usage: true,
54
- campaigns: true,
55
- };
56
-
57
- setCookie('ons_cookie_policy', JSON.stringify(approvedConsent).replace(/"/g, "'"), { days: 365 });
50
+ let approvedConsent = {
51
+ essential: true,
52
+ settings: true,
53
+ usage: true,
54
+ campaigns: true,
55
+ };
56
+
57
+ setCookie('ons_cookie_policy', JSON.stringify(approvedConsent).replace(/"/g, "'"), { days: 365 });
58
58
  }
59
59
 
60
60
  export function getConsentCookie() {
61
- const consentCookie = cookie('ons_cookie_policy');
62
- let consentCookieObj;
61
+ const consentCookie = cookie('ons_cookie_policy');
62
+ let consentCookieObj;
63
63
 
64
- if (consentCookie) {
65
- consentCookieObj = JSON.parse(consentCookie.replace(/'/g, '"'));
64
+ if (consentCookie) {
65
+ consentCookieObj = JSON.parse(consentCookie.replace(/'/g, '"'));
66
66
 
67
- if (typeof consentCookieObj !== 'object' && consentCookieObj !== null) {
68
- consentCookieObj = JSON.parse(consentCookieObj.replace(/'/g, '"'));
67
+ if (typeof consentCookieObj !== 'object' && consentCookieObj !== null) {
68
+ consentCookieObj = JSON.parse(consentCookieObj.replace(/'/g, '"'));
69
+ }
70
+ } else {
71
+ return null;
69
72
  }
70
- } else {
71
- return null;
72
- }
73
- return consentCookieObj;
73
+ return consentCookieObj;
74
74
  }
75
75
 
76
76
  export function setConsentCookie(options) {
77
- const domain = getDomain(document.domain);
78
-
79
- let cookieConsent = getConsentCookie();
80
- if (!cookieConsent) {
81
- cookieConsent = JSON.parse(JSON.stringify(DEFAULT_COOKIE_CONSENT).replace(/'/g, '"'));
82
- }
83
- for (let cookieType in options) {
84
- cookieConsent[cookieType] = options[cookieType];
85
- if (!options[cookieType]) {
86
- for (let cookies in COOKIE_CATEGORIES) {
87
- if (COOKIE_CATEGORIES[cookies] === cookieType) {
88
- cookie(cookies, null);
89
- if (cookie(cookies)) {
90
- const cookieString = cookies + '=; expires=' + new Date() + '; domain=' + domain + '; path=/';
91
- document.cookie = cookieString;
92
- }
77
+ const domain = getDomain(document.domain);
78
+
79
+ let cookieConsent = getConsentCookie();
80
+ if (!cookieConsent) {
81
+ cookieConsent = JSON.parse(JSON.stringify(DEFAULT_COOKIE_CONSENT).replace(/'/g, '"'));
82
+ }
83
+ for (let cookieType in options) {
84
+ cookieConsent[cookieType] = options[cookieType];
85
+ if (!options[cookieType]) {
86
+ for (let cookies in COOKIE_CATEGORIES) {
87
+ if (COOKIE_CATEGORIES[cookies] === cookieType) {
88
+ cookie(cookies, null);
89
+ if (cookie(cookies)) {
90
+ const cookieString = cookies + '=; expires=' + new Date() + '; domain=' + domain + '; path=/';
91
+ document.cookie = cookieString;
92
+ }
93
+ }
94
+ }
93
95
  }
94
- }
95
96
  }
96
- }
97
- setCookie('ons_cookie_policy', JSON.stringify(cookieConsent).replace(/"/g, "'"), { days: 365 });
97
+ setCookie('ons_cookie_policy', JSON.stringify(cookieConsent).replace(/"/g, "'"), { days: 365 });
98
98
  }
99
99
 
100
100
  export function checkConsentCookieCategory(cookieName, cookieCategory) {
101
- let currentConsentCookie = getConsentCookie();
102
- if (!currentConsentCookie && COOKIE_CATEGORIES[cookieName]) {
103
- return true;
104
- }
105
-
106
- currentConsentCookie = getConsentCookie();
107
- try {
108
- return currentConsentCookie[cookieCategory];
109
- } catch (e) {
110
- console.error(e);
111
- return false;
112
- }
101
+ let currentConsentCookie = getConsentCookie();
102
+ if (!currentConsentCookie && COOKIE_CATEGORIES[cookieName]) {
103
+ return true;
104
+ }
105
+
106
+ currentConsentCookie = getConsentCookie();
107
+ try {
108
+ return currentConsentCookie[cookieCategory];
109
+ } catch (e) {
110
+ console.error(e);
111
+ return false;
112
+ }
113
113
  }
114
114
 
115
115
  export function checkConsentCookie(cookieName, cookieValue) {
116
- // If we're setting the consent, session or RH_SESSION cookie OR deleting a cookie, allow by default
117
- if (cookieName === 'ons_cookie_policy' || cookieValue === null || cookieValue === false) {
118
- return true;
119
- }
120
-
121
- if (COOKIE_CATEGORIES[cookieName]) {
122
- const cookieCategory = COOKIE_CATEGORIES[cookieName];
123
- return checkConsentCookieCategory(cookieName, cookieCategory);
124
- } else {
125
- // Deny the cookie if it is not known to us
126
- return false;
127
- }
116
+ // If we're setting the consent, session or RH_SESSION cookie OR deleting a cookie, allow by default
117
+ if (cookieName === 'ons_cookie_policy' || cookieValue === null || cookieValue === false) {
118
+ return true;
119
+ }
120
+
121
+ if (COOKIE_CATEGORIES[cookieName]) {
122
+ const cookieCategory = COOKIE_CATEGORIES[cookieName];
123
+ return checkConsentCookieCategory(cookieName, cookieCategory);
124
+ } else {
125
+ // Deny the cookie if it is not known to us
126
+ return false;
127
+ }
128
128
  }
129
129
 
130
130
  export function setCookie(name, value, options) {
131
- const domain = getDomain(document.domain);
132
- let setDomain = '';
131
+ const domain = getDomain(document.domain);
132
+ let setDomain = '';
133
133
 
134
- if (domain.indexOf('localhost') === -1) {
135
- setDomain = '; domain=' + domain;
136
- }
137
-
138
- if (checkConsentCookie(name, value)) {
139
- if (typeof options === 'undefined') {
140
- options = {};
134
+ if (domain.indexOf('localhost') === -1) {
135
+ setDomain = '; domain=' + domain;
141
136
  }
142
137
 
143
- let cookieString = name + '=' + value + setDomain + '; path=/';
144
- if (options.days) {
145
- const date = new Date();
146
- date.setTime(date.getTime() + options.days * 24 * 60 * 60 * 1000);
147
- cookieString = cookieString + '; expires=' + date.toGMTString();
148
- }
149
- if (document.location.protocol === 'https:') {
150
- cookieString = cookieString + '; Secure';
138
+ if (checkConsentCookie(name, value)) {
139
+ if (typeof options === 'undefined') {
140
+ options = {};
141
+ }
142
+
143
+ let cookieString = name + '=' + value + setDomain + '; path=/';
144
+ if (options.days) {
145
+ const date = new Date();
146
+ date.setTime(date.getTime() + options.days * 24 * 60 * 60 * 1000);
147
+ cookieString = cookieString + '; expires=' + date.toGMTString();
148
+ }
149
+ if (document.location.protocol === 'https:') {
150
+ cookieString = cookieString + '; Secure';
151
+ }
152
+ document.cookie = cookieString;
151
153
  }
152
- document.cookie = cookieString;
153
- }
154
154
  }
155
155
 
156
156
  export function getCookie(name) {
157
- const nameEQ = name + '=';
158
- const cookies = document.cookie.split(';');
159
- for (let i = 0, len = cookies.length; i < len; i++) {
160
- let cookie = cookies[i];
161
- while (cookie.charAt(0) === ' ') {
162
- cookie = cookie.substring(1, cookie.length);
163
- }
164
- if (cookie.indexOf(nameEQ) === 0) {
165
- return decodeURIComponent(cookie.substring(nameEQ.length));
157
+ const nameEQ = name + '=';
158
+ const cookies = document.cookie.split(';');
159
+ for (let i = 0, len = cookies.length; i < len; i++) {
160
+ let cookie = cookies[i];
161
+ while (cookie.charAt(0) === ' ') {
162
+ cookie = cookie.substring(1, cookie.length);
163
+ }
164
+ if (cookie.indexOf(nameEQ) === 0) {
165
+ return decodeURIComponent(cookie.substring(nameEQ.length));
166
+ }
166
167
  }
167
- }
168
- return null;
168
+ return null;
169
169
  }
170
170
 
171
171
  export function getDomain(domain) {
172
- let i = 0,
173
- domainName = domain,
174
- p = domainName.split('.'),
175
- s = '_gd' + new Date().getTime();
176
- while (i < p.length - 1 && document.cookie.indexOf(s + '=' + s) == -1) {
177
- domainName = p.slice(-1 - ++i).join('.');
178
- document.cookie = s + '=' + s + ';domain=' + domainName + ';';
179
- }
180
- document.cookie = s + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;domain=' + domainName + ';';
181
- return domainName;
172
+ let i = 0,
173
+ domainName = domain,
174
+ p = domainName.split('.'),
175
+ s = '_gd' + new Date().getTime();
176
+ while (i < p.length - 1 && document.cookie.indexOf(s + '=' + s) == -1) {
177
+ domainName = p.slice(-1 - ++i).join('.');
178
+ document.cookie = s + '=' + s + ';domain=' + domainName + ';';
179
+ }
180
+ document.cookie = s + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;domain=' + domainName + ';';
181
+ return domainName;
182
182
  }
@@ -1,13 +1,13 @@
1
1
  import domready from './domready';
2
2
 
3
3
  async function cookiesSettings() {
4
- const cookiesSettings = [...document.querySelectorAll('[data-module=cookie-settings]')];
5
- if (cookiesSettings.length) {
6
- const CookiesSettings = (await import('./cookies-settings')).default;
7
- cookiesSettings.forEach((form) => {
8
- new CookiesSettings(form);
9
- });
10
- }
4
+ const cookiesSettings = [...document.querySelectorAll('[data-module=cookie-settings]')];
5
+ if (cookiesSettings.length) {
6
+ const CookiesSettings = (await import('./cookies-settings')).default;
7
+ cookiesSettings.forEach((form) => {
8
+ new CookiesSettings(form);
9
+ });
10
+ }
11
11
  }
12
12
 
13
13
  domready(cookiesSettings);