govuk_publishing_components 34.7.0 → 34.7.1

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 (101) hide show
  1. checksums.yaml +4 -4
  2. data/lib/govuk_publishing_components/presenters/related_navigation_helper.rb +0 -7
  3. data/lib/govuk_publishing_components/version.rb +1 -1
  4. data/node_modules/govuk-frontend/govuk/all.js +4029 -3792
  5. data/node_modules/govuk-frontend/govuk/all.js.map +1 -0
  6. data/node_modules/govuk-frontend/govuk/common/closest-attribute-value.js +52 -51
  7. data/node_modules/govuk-frontend/govuk/common/closest-attribute-value.js.map +1 -0
  8. data/node_modules/govuk-frontend/govuk/common/index.js +153 -145
  9. data/node_modules/govuk-frontend/govuk/common/index.js.map +1 -0
  10. data/node_modules/govuk-frontend/govuk/common/normalise-dataset.js +324 -321
  11. data/node_modules/govuk-frontend/govuk/common/normalise-dataset.js.map +1 -0
  12. data/node_modules/govuk-frontend/govuk/common.js +154 -146
  13. data/node_modules/govuk-frontend/govuk/common.js.map +1 -0
  14. data/node_modules/govuk-frontend/govuk/components/_all.scss +1 -1
  15. data/node_modules/govuk-frontend/govuk/components/accordion/_index.scss +23 -4
  16. data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js +2059 -1654
  17. data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js.map +1 -0
  18. data/node_modules/govuk-frontend/govuk/components/accordion/fixtures.json +11 -11
  19. data/node_modules/govuk-frontend/govuk/components/accordion/template.njk +1 -1
  20. data/node_modules/govuk-frontend/govuk/components/back-link/_index.scss +19 -19
  21. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/_index.scss +21 -10
  22. data/node_modules/govuk-frontend/govuk/components/button/button.js +927 -917
  23. data/node_modules/govuk-frontend/govuk/components/button/button.js.map +1 -0
  24. data/node_modules/govuk-frontend/govuk/components/character-count/character-count.js +2050 -2040
  25. data/node_modules/govuk-frontend/govuk/components/character-count/character-count.js.map +1 -0
  26. data/node_modules/govuk-frontend/govuk/components/checkboxes/checkboxes.js +1155 -1147
  27. data/node_modules/govuk-frontend/govuk/components/checkboxes/checkboxes.js.map +1 -0
  28. data/node_modules/govuk-frontend/govuk/components/cookie-banner/fixtures.json +23 -23
  29. data/node_modules/govuk-frontend/govuk/components/cookie-banner/template.njk +1 -1
  30. data/node_modules/govuk-frontend/govuk/components/details/details.js +800 -799
  31. data/node_modules/govuk-frontend/govuk/components/details/details.js.map +1 -0
  32. data/node_modules/govuk-frontend/govuk/components/error-summary/error-summary.js +1058 -1045
  33. data/node_modules/govuk-frontend/govuk/components/error-summary/error-summary.js.map +1 -0
  34. data/node_modules/govuk-frontend/govuk/components/header/_index.scss +6 -0
  35. data/node_modules/govuk-frontend/govuk/components/header/header.js +646 -998
  36. data/node_modules/govuk-frontend/govuk/components/header/header.js.map +1 -0
  37. data/node_modules/govuk-frontend/govuk/components/notification-banner/notification-banner.js +760 -752
  38. data/node_modules/govuk-frontend/govuk/components/notification-banner/notification-banner.js.map +1 -0
  39. data/node_modules/govuk-frontend/govuk/components/pagination/fixtures.json +61 -0
  40. data/node_modules/govuk-frontend/govuk/components/pagination/template.njk +1 -1
  41. data/node_modules/govuk-frontend/govuk/components/phase-banner/macro-options.json +1 -1
  42. data/node_modules/govuk-frontend/govuk/components/radios/radios.js +1110 -1107
  43. data/node_modules/govuk-frontend/govuk/components/radios/radios.js.map +1 -0
  44. data/node_modules/govuk-frontend/govuk/components/skip-link/skip-link.js +1017 -1014
  45. data/node_modules/govuk-frontend/govuk/components/skip-link/skip-link.js.map +1 -0
  46. data/node_modules/govuk-frontend/govuk/components/summary-list/_index.scss +107 -0
  47. data/node_modules/govuk-frontend/govuk/components/summary-list/fixtures.json +318 -23
  48. data/node_modules/govuk-frontend/govuk/components/summary-list/macro-options.json +110 -0
  49. data/node_modules/govuk-frontend/govuk/components/summary-list/template.njk +72 -28
  50. data/node_modules/govuk-frontend/govuk/components/tabs/tabs.js +1392 -1264
  51. data/node_modules/govuk-frontend/govuk/components/tabs/tabs.js.map +1 -0
  52. data/node_modules/govuk-frontend/govuk/i18n.js +363 -364
  53. data/node_modules/govuk-frontend/govuk/i18n.js.map +1 -0
  54. data/node_modules/govuk-frontend/govuk/settings/_measurements.scss +5 -5
  55. data/node_modules/govuk-frontend/govuk/vendor/polyfills/DOMTokenList.js +242 -241
  56. data/node_modules/govuk-frontend/govuk/vendor/polyfills/DOMTokenList.js.map +1 -0
  57. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Date/now.js +13 -12
  58. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Date/now.js.map +1 -0
  59. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Document.js +17 -16
  60. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Document.js.map +1 -0
  61. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/classList.js +547 -546
  62. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/classList.js.map +1 -0
  63. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/closest.js +37 -36
  64. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/closest.js.map +1 -0
  65. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/dataset.js +251 -250
  66. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/dataset.js.map +1 -0
  67. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/matches.js +21 -20
  68. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/matches.js.map +1 -0
  69. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/nextElementSibling.js +198 -197
  70. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/nextElementSibling.js.map +1 -0
  71. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/previousElementSibling.js +198 -197
  72. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/previousElementSibling.js.map +1 -0
  73. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element.js +106 -105
  74. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element.js.map +1 -0
  75. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Event.js +400 -399
  76. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Event.js.map +1 -0
  77. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Function/prototype/bind.js +239 -238
  78. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Function/prototype/bind.js.map +1 -0
  79. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Object/defineProperty.js +72 -71
  80. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Object/defineProperty.js.map +1 -0
  81. data/node_modules/govuk-frontend/govuk/vendor/polyfills/String/prototype/trim.js +14 -13
  82. data/node_modules/govuk-frontend/govuk/vendor/polyfills/String/prototype/trim.js.map +1 -0
  83. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Window.js +17 -16
  84. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Window.js.map +1 -0
  85. data/node_modules/govuk-frontend/govuk-esm/all.mjs +2 -2
  86. data/node_modules/govuk-frontend/govuk-esm/common/index.mjs +17 -10
  87. data/node_modules/govuk-frontend/govuk-esm/common/normalise-dataset.mjs +3 -1
  88. data/node_modules/govuk-frontend/govuk-esm/components/accordion/accordion.mjs +135 -52
  89. data/node_modules/govuk-frontend/govuk-esm/components/button/button.mjs +11 -9
  90. data/node_modules/govuk-frontend/govuk-esm/components/character-count/character-count.mjs +10 -7
  91. data/node_modules/govuk-frontend/govuk-esm/components/checkboxes/checkboxes.mjs +24 -18
  92. data/node_modules/govuk-frontend/govuk-esm/components/details/details.mjs +23 -16
  93. data/node_modules/govuk-frontend/govuk-esm/components/error-summary/error-summary.mjs +15 -11
  94. data/node_modules/govuk-frontend/govuk-esm/components/header/header.mjs +3 -2
  95. data/node_modules/govuk-frontend/govuk-esm/components/notification-banner/notification-banner.mjs +3 -4
  96. data/node_modules/govuk-frontend/govuk-esm/components/radios/radios.mjs +10 -9
  97. data/node_modules/govuk-frontend/govuk-esm/components/skip-link/skip-link.mjs +5 -3
  98. data/node_modules/govuk-frontend/govuk-esm/components/tabs/tabs.mjs +165 -38
  99. data/node_modules/govuk-frontend/govuk-esm/i18n.mjs +9 -11
  100. data/node_modules/govuk-frontend/package.json +1 -1
  101. metadata +34 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.js","sources":["../../src/govuk/i18n.mjs"],"sourcesContent":["/**\n * Internal support for selecting messages to render, with placeholder\n * interpolation and locale-aware number formatting and pluralisation\n *\n * @class\n * @private\n * @param {Object<string, unknown>} translations - Key-value pairs of the translation strings to use.\n * @param {object} [config] - Configuration options for the function.\n * @param {string} [config.locale] - An overriding locale for the PluralRules functionality.\n */\nexport function I18n (translations, config) {\n // Make list of translations available throughout function\n this.translations = translations || {}\n\n // The locale to use for PluralRules and NumberFormat\n this.locale = (config && config.locale) || document.documentElement.lang || 'en'\n}\n\n/**\n * The most used function - takes the key for a given piece of UI text and\n * returns the appropriate string.\n *\n * @param {string} lookupKey - The lookup key of the string to use.\n * @param {Object<string, unknown>} [options] - Any options passed with the translation string, e.g: for string interpolation.\n * @returns {string} The appropriate translation string.\n * @throws {Error} Lookup key required\n * @throws {Error} Options required for `${}` placeholders\n */\nI18n.prototype.t = function (lookupKey, options) {\n if (!lookupKey) {\n // Print a console error if no lookup key has been provided\n throw new Error('i18n: lookup key missing')\n }\n\n // If the `count` option is set, determine which plural suffix is needed and\n // change the lookupKey to match. We check to see if it's undefined instead of\n // falsy, as this could legitimately be 0.\n if (options && typeof options.count !== 'undefined') {\n // Get the plural suffix\n lookupKey = lookupKey + '.' + this.getPluralSuffix(lookupKey, options.count)\n }\n\n if (lookupKey in this.translations) {\n // Fetch the translation string for that lookup key\n var translationString = this.translations[lookupKey]\n\n // Check for ${} placeholders in the translation string\n if (translationString.match(/%{(.\\S+)}/)) {\n if (!options) {\n throw new Error('i18n: cannot replace placeholders in string if no option data provided')\n }\n\n return this.replacePlaceholders(translationString, options)\n } else {\n return translationString\n }\n } else {\n // If the key wasn't found in our translations object,\n // return the lookup key itself as the fallback\n return lookupKey\n }\n}\n\n/**\n * Takes a translation string with placeholders, and replaces the placeholders\n * with the provided data\n *\n * @param {string} translationString - The translation string\n * @param {Object<string, unknown>} options - Any options passed with the translation string, e.g: for string interpolation.\n * @returns {string} The translation string to output, with ${} placeholders replaced\n */\nI18n.prototype.replacePlaceholders = function (translationString, options) {\n var formatter\n\n if (this.hasIntlNumberFormatSupport()) {\n formatter = new Intl.NumberFormat(this.locale)\n }\n\n return translationString.replace(/%{(.\\S+)}/g, function (placeholderWithBraces, placeholderKey) {\n if (Object.prototype.hasOwnProperty.call(options, placeholderKey)) {\n var placeholderValue = options[placeholderKey]\n\n // If a user has passed `false` as the value for the placeholder\n // treat it as though the value should not be displayed\n if (placeholderValue === false) {\n return ''\n }\n\n // If the placeholder's value is a number, localise the number formatting\n if (typeof placeholderValue === 'number' && formatter) {\n return formatter.format(placeholderValue)\n }\n\n return placeholderValue\n } else {\n throw new Error('i18n: no data found to replace ' + placeholderWithBraces + ' placeholder in string')\n }\n })\n}\n\n/**\n * Check to see if the browser supports Intl and Intl.PluralRules.\n *\n * It requires all conditions to be met in order to be supported:\n * - The browser supports the Intl class (true in IE11)\n * - The implementation of Intl supports PluralRules (NOT true in IE11)\n * - The browser/OS has plural rules for the current locale (browser dependent)\n *\n * @returns {boolean} Returns true if all conditions are met. Returns false otherwise.\n */\nI18n.prototype.hasIntlPluralRulesSupport = function () {\n return Boolean(window.Intl && ('PluralRules' in window.Intl && Intl.PluralRules.supportedLocalesOf(this.locale).length))\n}\n\n/**\n * Check to see if the browser supports Intl and Intl.NumberFormat.\n *\n * It requires all conditions to be met in order to be supported:\n * - The browser supports the Intl class (true in IE11)\n * - The implementation of Intl supports NumberFormat (also true in IE11)\n * - The browser/OS has number formatting rules for the current locale (browser dependent)\n *\n * @returns {boolean} Returns true if all conditions are met. Returns false otherwise.\n */\nI18n.prototype.hasIntlNumberFormatSupport = function () {\n return Boolean(window.Intl && ('NumberFormat' in window.Intl && Intl.NumberFormat.supportedLocalesOf(this.locale).length))\n}\n\n/**\n * Get the appropriate suffix for the plural form.\n *\n * Uses Intl.PluralRules (or our own fallback implementation) to get the\n * 'preferred' form to use for the given count.\n *\n * Checks that a translation has been provided for that plural form – if it\n * hasn't, it'll fall back to the 'other' plural form (unless that doesn't exist\n * either, in which case an error will be thrown)\n *\n * @param {string} lookupKey - The lookup key of the string to use.\n * @param {number} count - Number used to determine which pluralisation to use.\n * @returns {PluralRule} The suffix associated with the correct pluralisation for this locale.\n * @throws {Error} Plural form `.other` required when preferred plural form is missing\n */\nI18n.prototype.getPluralSuffix = function (lookupKey, count) {\n // Validate that the number is actually a number.\n //\n // Number(count) will turn anything that can't be converted to a Number type\n // into 'NaN'. isFinite filters out NaN, as it isn't a finite number.\n count = Number(count)\n if (!isFinite(count)) { return 'other' }\n\n var preferredForm\n\n // Check to verify that all the requirements for Intl.PluralRules are met.\n // If so, we can use that instead of our custom implementation. Otherwise,\n // use the hardcoded fallback.\n if (this.hasIntlPluralRulesSupport()) {\n preferredForm = new Intl.PluralRules(this.locale).select(count)\n } else {\n preferredForm = this.selectPluralFormUsingFallbackRules(count)\n }\n\n // Use the correct plural form if provided\n if (lookupKey + '.' + preferredForm in this.translations) {\n return preferredForm\n // Fall back to `other` if the plural form is missing, but log a warning\n // to the console\n } else if (lookupKey + '.other' in this.translations) {\n if (console && 'warn' in console) {\n console.warn('i18n: Missing plural form \".' + preferredForm + '\" for \"' +\n this.locale + '\" locale. Falling back to \".other\".')\n }\n\n return 'other'\n // If the required `other` plural form is missing, all we can do is error\n } else {\n throw new Error(\n 'i18n: Plural form \".other\" is required for \"' + this.locale + '\" locale'\n )\n }\n}\n\n/**\n * Get the plural form using our fallback implementation\n *\n * This is split out into a separate function to make it easier to test the\n * fallback behaviour in an environment where Intl.PluralRules exists.\n *\n * @param {number} count - Number used to determine which pluralisation to use.\n * @returns {PluralRule} The pluralisation form for count in this locale.\n */\nI18n.prototype.selectPluralFormUsingFallbackRules = function (count) {\n // Currently our custom code can only handle positive integers, so let's\n // make sure our number is one of those.\n count = Math.abs(Math.floor(count))\n\n var ruleset = this.getPluralRulesForLocale()\n\n if (ruleset) {\n return I18n.pluralRules[ruleset](count)\n }\n\n return 'other'\n}\n\n/**\n * Work out which pluralisation rules to use for the current locale\n *\n * The locale may include a regional indicator (such as en-GB), but we don't\n * usually care about this part, as pluralisation rules are usually the same\n * regardless of region. There are exceptions, however, (e.g. Portuguese) so\n * this searches by both the full and shortened locale codes, just to be sure.\n *\n * @returns {PluralRuleName | undefined} The name of the pluralisation rule to use (a key for one\n * of the functions in this.pluralRules)\n */\nI18n.prototype.getPluralRulesForLocale = function () {\n var locale = this.locale\n var localeShort = locale.split('-')[0]\n\n // Look through the plural rules map to find which `pluralRule` is\n // appropriate for our current `locale`.\n for (var pluralRule in I18n.pluralRulesMap) {\n if (Object.prototype.hasOwnProperty.call(I18n.pluralRulesMap, pluralRule)) {\n var languages = I18n.pluralRulesMap[pluralRule]\n for (var i = 0; i < languages.length; i++) {\n if (languages[i] === locale || languages[i] === localeShort) {\n return pluralRule\n }\n }\n }\n }\n}\n\n/**\n * Map of plural rules to languages where those rules apply.\n *\n * Note: These groups are named for the most dominant or recognisable language\n * that uses each system. The groupings do not imply that the languages are\n * related to one another. Many languages have evolved the same systems\n * independently of one another.\n *\n * Code to support more languages can be found in the i18n spike:\n * {@link https://github.com/alphagov/govuk-frontend/blob/spike-i18n-support/src/govuk/i18n.mjs}\n *\n * Languages currently supported:\n *\n * Arabic: Arabic (ar)\n * Chinese: Burmese (my), Chinese (zh), Indonesian (id), Japanese (ja),\n * Javanese (jv), Korean (ko), Malay (ms), Thai (th), Vietnamese (vi)\n * French: Armenian (hy), Bangla (bn), French (fr), Gujarati (gu), Hindi (hi),\n * Persian Farsi (fa), Punjabi (pa), Zulu (zu)\n * German: Afrikaans (af), Albanian (sq), Azerbaijani (az), Basque (eu),\n * Bulgarian (bg), Catalan (ca), Danish (da), Dutch (nl), English (en),\n * Estonian (et), Finnish (fi), Georgian (ka), German (de), Greek (el),\n * Hungarian (hu), Luxembourgish (lb), Norwegian (no), Somali (so),\n * Swahili (sw), Swedish (sv), Tamil (ta), Telugu (te), Turkish (tr),\n * Urdu (ur)\n * Irish: Irish Gaelic (ga)\n * Russian: Russian (ru), Ukrainian (uk)\n * Scottish: Scottish Gaelic (gd)\n * Spanish: European Portuguese (pt-PT), Italian (it), Spanish (es)\n * Welsh: Welsh (cy)\n *\n * @type {Object<PluralRuleName, string[]>}\n */\nI18n.pluralRulesMap = {\n arabic: ['ar'],\n chinese: ['my', 'zh', 'id', 'ja', 'jv', 'ko', 'ms', 'th', 'vi'],\n french: ['hy', 'bn', 'fr', 'gu', 'hi', 'fa', 'pa', 'zu'],\n german: [\n 'af', 'sq', 'az', 'eu', 'bg', 'ca', 'da', 'nl', 'en', 'et', 'fi', 'ka',\n 'de', 'el', 'hu', 'lb', 'no', 'so', 'sw', 'sv', 'ta', 'te', 'tr', 'ur'\n ],\n irish: ['ga'],\n russian: ['ru', 'uk'],\n scottish: ['gd'],\n spanish: ['pt-PT', 'it', 'es'],\n welsh: ['cy']\n}\n\n/**\n * Different pluralisation rule sets\n *\n * Returns the appropriate suffix for the plural form associated with `n`.\n * Possible suffixes: 'zero', 'one', 'two', 'few', 'many', 'other' (the actual\n * meaning of each differs per locale). 'other' should always exist, even in\n * languages without plurals, such as Chinese.\n * {@link https://cldr.unicode.org/index/cldr-spec/plural-rules}\n *\n * The count must be a positive integer. Negative numbers and decimals aren't accounted for\n *\n * @type {Object<string, function(number): PluralRule>}\n */\nI18n.pluralRules = {\n /* eslint-disable jsdoc/require-jsdoc */\n arabic: function (n) {\n if (n === 0) { return 'zero' }\n if (n === 1) { return 'one' }\n if (n === 2) { return 'two' }\n if (n % 100 >= 3 && n % 100 <= 10) { return 'few' }\n if (n % 100 >= 11 && n % 100 <= 99) { return 'many' }\n return 'other'\n },\n chinese: function () {\n return 'other'\n },\n french: function (n) {\n return n === 0 || n === 1 ? 'one' : 'other'\n },\n german: function (n) {\n return n === 1 ? 'one' : 'other'\n },\n irish: function (n) {\n if (n === 1) { return 'one' }\n if (n === 2) { return 'two' }\n if (n >= 3 && n <= 6) { return 'few' }\n if (n >= 7 && n <= 10) { return 'many' }\n return 'other'\n },\n russian: function (n) {\n var lastTwo = n % 100\n var last = lastTwo % 10\n if (last === 1 && lastTwo !== 11) { return 'one' }\n if (last >= 2 && last <= 4 && !(lastTwo >= 12 && lastTwo <= 14)) { return 'few' }\n if (last === 0 || (last >= 5 && last <= 9) || (lastTwo >= 11 && lastTwo <= 14)) { return 'many' }\n // Note: The 'other' suffix is only used by decimal numbers in Russian.\n // We don't anticipate it being used, but it's here for consistency.\n return 'other'\n },\n scottish: function (n) {\n if (n === 1 || n === 11) { return 'one' }\n if (n === 2 || n === 12) { return 'two' }\n if ((n >= 3 && n <= 10) || (n >= 13 && n <= 19)) { return 'few' }\n return 'other'\n },\n spanish: function (n) {\n if (n === 1) { return 'one' }\n if (n % 1000000 === 0 && n !== 0) { return 'many' }\n return 'other'\n },\n welsh: function (n) {\n if (n === 0) { return 'zero' }\n if (n === 1) { return 'one' }\n if (n === 2) { return 'two' }\n if (n === 3) { return 'few' }\n if (n === 6) { return 'many' }\n return 'other'\n }\n /* eslint-enable jsdoc/require-jsdoc */\n}\n\n/**\n * Supported languages for plural rules\n *\n * @typedef {'arabic' | 'chinese' | 'french' | 'german' | 'irish' | 'russian' | 'scottish' | 'spanish' | 'welsh'} PluralRuleName\n */\n\n/**\n * Plural rule category mnemonic tags\n *\n * @typedef {'zero' | 'one' | 'two' | 'few' | 'many' | 'other'} PluralRule\n */\n\n/**\n * Translated message by plural rule they correspond to.\n *\n * Allows to group pluralised messages under a single key when passing\n * translations to a component's constructor\n *\n * @typedef {object} TranslationPluralForms\n * @property {string} [other] - General plural form\n * @property {string} [zero] - Plural form used with 0\n * @property {string} [one] - Plural form used with 1\n * @property {string} [two] - Plural form used with 2\n * @property {string} [few] - Plural form used for a few\n * @property {string} [many] - Plural form used for many\n */\n"],"names":[],"mappings":"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"}
@@ -19,11 +19,11 @@ $govuk-page-width: 960px !default;
19
19
  /// @access public
20
20
 
21
21
  $govuk-grid-widths: (
22
- one-quarter: 25%,
23
- one-third: 33.3333%,
24
- one-half: 50%,
25
- two-thirds: 66.6666%,
26
- three-quarters: 75%,
22
+ one-quarter: (100% / 4),
23
+ one-third: (100% / 3),
24
+ one-half: (100% / 2),
25
+ two-thirds: (200% / 3),
26
+ three-quarters: (300% / 4),
27
27
  full: 100%
28
28
  ) !default;
29
29
 
@@ -1,272 +1,273 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory() :
3
- typeof define === 'function' && define.amd ? define('GOVUKFrontend', factory) :
4
- (factory());
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory() :
3
+ typeof define === 'function' && define.amd ? define('GOVUKFrontend', factory) :
4
+ (factory());
5
5
  }(this, (function () { 'use strict';
6
6
 
7
- (function(undefined) {
8
-
9
- // Detection from https://raw.githubusercontent.com/Financial-Times/polyfill-service/master/packages/polyfill-library/polyfills/DOMTokenList/detect.js
10
- var detect = (
11
- 'DOMTokenList' in this && (function (x) {
12
- return 'classList' in x ? !x.classList.toggle('x', false) && !x.className : true;
13
- })(document.createElement('x'))
14
- );
15
-
16
- if (detect) return
17
-
18
- // Polyfill from https://raw.githubusercontent.com/Financial-Times/polyfill-service/master/packages/polyfill-library/polyfills/DOMTokenList/polyfill.js
19
- (function (global) {
20
- var nativeImpl = "DOMTokenList" in global && global.DOMTokenList;
21
-
22
- if (
23
- !nativeImpl ||
24
- (
25
- !!document.createElementNS &&
26
- !!document.createElementNS('http://www.w3.org/2000/svg', 'svg') &&
27
- !(document.createElementNS("http://www.w3.org/2000/svg", "svg").classList instanceof DOMTokenList)
28
- )
29
- ) {
30
- global.DOMTokenList = (function() { // eslint-disable-line no-unused-vars
31
- var dpSupport = true;
32
- var defineGetter = function (object, name, fn, configurable) {
33
- if (Object.defineProperty)
34
- Object.defineProperty(object, name, {
35
- configurable: false === dpSupport ? true : !!configurable,
36
- get: fn
37
- });
38
-
39
- else object.__defineGetter__(name, fn);
40
- };
41
-
42
- /** Ensure the browser allows Object.defineProperty to be used on native JavaScript objects. */
43
- try {
44
- defineGetter({}, "support");
45
- }
46
- catch (e) {
47
- dpSupport = false;
48
- }
49
-
50
-
51
- var _DOMTokenList = function (el, prop) {
52
- var that = this;
53
- var tokens = [];
54
- var tokenMap = {};
55
- var length = 0;
56
- var maxLength = 0;
57
- var addIndexGetter = function (i) {
58
- defineGetter(that, i, function () {
59
- preop();
60
- return tokens[i];
61
- }, false);
7
+ (function(undefined) {
8
+
9
+ // Detection from https://raw.githubusercontent.com/Financial-Times/polyfill-service/master/packages/polyfill-library/polyfills/DOMTokenList/detect.js
10
+ var detect = (
11
+ 'DOMTokenList' in this && (function (x) {
12
+ return 'classList' in x ? !x.classList.toggle('x', false) && !x.className : true;
13
+ })(document.createElement('x'))
14
+ );
15
+
16
+ if (detect) return
17
+
18
+ // Polyfill from https://raw.githubusercontent.com/Financial-Times/polyfill-service/master/packages/polyfill-library/polyfills/DOMTokenList/polyfill.js
19
+ (function (global) {
20
+ var nativeImpl = "DOMTokenList" in global && global.DOMTokenList;
21
+
22
+ if (
23
+ !nativeImpl ||
24
+ (
25
+ !!document.createElementNS &&
26
+ !!document.createElementNS('http://www.w3.org/2000/svg', 'svg') &&
27
+ !(document.createElementNS("http://www.w3.org/2000/svg", "svg").classList instanceof DOMTokenList)
28
+ )
29
+ ) {
30
+ global.DOMTokenList = (function() { // eslint-disable-line no-unused-vars
31
+ var dpSupport = true;
32
+ var defineGetter = function (object, name, fn, configurable) {
33
+ if (Object.defineProperty)
34
+ Object.defineProperty(object, name, {
35
+ configurable: false === dpSupport ? true : !!configurable,
36
+ get: fn
37
+ });
38
+
39
+ else object.__defineGetter__(name, fn);
40
+ };
62
41
 
63
- };
64
- var reindex = function () {
42
+ /** Ensure the browser allows Object.defineProperty to be used on native JavaScript objects. */
43
+ try {
44
+ defineGetter({}, "support");
45
+ }
46
+ catch (e) {
47
+ dpSupport = false;
48
+ }
65
49
 
66
- /** Define getter functions for array-like access to the tokenList's contents. */
67
- if (length >= maxLength)
68
- for (; maxLength < length; ++maxLength) {
69
- addIndexGetter(maxLength);
70
- }
71
- };
72
50
 
73
- /** Helper function called at the start of each class method. Internal use only. */
74
- var preop = function () {
75
- var error;
76
- var i;
77
- var args = arguments;
78
- var rSpace = /\s+/;
79
-
80
- /** Validate the token/s passed to an instance method, if any. */
81
- if (args.length)
82
- for (i = 0; i < args.length; ++i)
83
- if (rSpace.test(args[i])) {
84
- error = new SyntaxError('String "' + args[i] + '" ' + "contains" + ' an invalid character');
85
- error.code = 5;
86
- error.name = "InvalidCharacterError";
87
- throw error;
51
+ var _DOMTokenList = function (el, prop) {
52
+ var that = this;
53
+ var tokens = [];
54
+ var tokenMap = {};
55
+ var length = 0;
56
+ var maxLength = 0;
57
+ var addIndexGetter = function (i) {
58
+ defineGetter(that, i, function () {
59
+ preop();
60
+ return tokens[i];
61
+ }, false);
62
+
63
+ };
64
+ var reindex = function () {
65
+
66
+ /** Define getter functions for array-like access to the tokenList's contents. */
67
+ if (length >= maxLength)
68
+ for (; maxLength < length; ++maxLength) {
69
+ addIndexGetter(maxLength);
70
+ }
71
+ };
72
+
73
+ /** Helper function called at the start of each class method. Internal use only. */
74
+ var preop = function () {
75
+ var error;
76
+ var i;
77
+ var args = arguments;
78
+ var rSpace = /\s+/;
79
+
80
+ /** Validate the token/s passed to an instance method, if any. */
81
+ if (args.length)
82
+ for (i = 0; i < args.length; ++i)
83
+ if (rSpace.test(args[i])) {
84
+ error = new SyntaxError('String "' + args[i] + '" ' + "contains" + ' an invalid character');
85
+ error.code = 5;
86
+ error.name = "InvalidCharacterError";
87
+ throw error;
88
+ }
89
+
90
+
91
+ /** Split the new value apart by whitespace*/
92
+ if (typeof el[prop] === "object") {
93
+ tokens = ("" + el[prop].baseVal).replace(/^\s+|\s+$/g, "").split(rSpace);
94
+ } else {
95
+ tokens = ("" + el[prop]).replace(/^\s+|\s+$/g, "").split(rSpace);
88
96
  }
89
97
 
98
+ /** Avoid treating blank strings as single-item token lists */
99
+ if ("" === tokens[0]) tokens = [];
90
100
 
91
- /** Split the new value apart by whitespace*/
92
- if (typeof el[prop] === "object") {
93
- tokens = ("" + el[prop].baseVal).replace(/^\s+|\s+$/g, "").split(rSpace);
94
- } else {
95
- tokens = ("" + el[prop]).replace(/^\s+|\s+$/g, "").split(rSpace);
96
- }
97
-
98
- /** Avoid treating blank strings as single-item token lists */
99
- if ("" === tokens[0]) tokens = [];
100
-
101
- /** Repopulate the internal token lists */
102
- tokenMap = {};
103
- for (i = 0; i < tokens.length; ++i)
104
- tokenMap[tokens[i]] = true;
105
- length = tokens.length;
106
- reindex();
107
- };
101
+ /** Repopulate the internal token lists */
102
+ tokenMap = {};
103
+ for (i = 0; i < tokens.length; ++i)
104
+ tokenMap[tokens[i]] = true;
105
+ length = tokens.length;
106
+ reindex();
107
+ };
108
108
 
109
- /** Populate our internal token list if the targeted attribute of the subject element isn't empty. */
110
- preop();
109
+ /** Populate our internal token list if the targeted attribute of the subject element isn't empty. */
110
+ preop();
111
111
 
112
- /** Return the number of tokens in the underlying string. Read-only. */
113
- defineGetter(that, "length", function () {
114
- preop();
115
- return length;
116
- });
112
+ /** Return the number of tokens in the underlying string. Read-only. */
113
+ defineGetter(that, "length", function () {
114
+ preop();
115
+ return length;
116
+ });
117
+
118
+ /** Override the default toString/toLocaleString methods to return a space-delimited list of tokens when typecast. */
119
+ that.toLocaleString =
120
+ that.toString = function () {
121
+ preop();
122
+ return tokens.join(" ");
123
+ };
124
+
125
+ that.item = function (idx) {
126
+ preop();
127
+ return tokens[idx];
128
+ };
129
+
130
+ that.contains = function (token) {
131
+ preop();
132
+ return !!tokenMap[token];
133
+ };
134
+
135
+ that.add = function () {
136
+ preop.apply(that, args = arguments);
137
+
138
+ for (var args, token, i = 0, l = args.length; i < l; ++i) {
139
+ token = args[i];
140
+ if (!tokenMap[token]) {
141
+ tokens.push(token);
142
+ tokenMap[token] = true;
143
+ }
144
+ }
117
145
 
118
- /** Override the default toString/toLocaleString methods to return a space-delimited list of tokens when typecast. */
119
- that.toLocaleString =
120
- that.toString = function () {
121
- preop();
122
- return tokens.join(" ");
123
- };
146
+ /** Update the targeted attribute of the attached element if the token list's changed. */
147
+ if (length !== tokens.length) {
148
+ length = tokens.length >>> 0;
149
+ if (typeof el[prop] === "object") {
150
+ el[prop].baseVal = tokens.join(" ");
151
+ } else {
152
+ el[prop] = tokens.join(" ");
153
+ }
154
+ reindex();
155
+ }
156
+ };
124
157
 
125
- that.item = function (idx) {
126
- preop();
127
- return tokens[idx];
128
- };
158
+ that.remove = function () {
159
+ preop.apply(that, args = arguments);
129
160
 
130
- that.contains = function (token) {
131
- preop();
132
- return !!tokenMap[token];
133
- };
161
+ /** Build a hash of token names to compare against when recollecting our token list. */
162
+ for (var args, ignore = {}, i = 0, t = []; i < args.length; ++i) {
163
+ ignore[args[i]] = true;
164
+ delete tokenMap[args[i]];
165
+ }
134
166
 
135
- that.add = function () {
136
- preop.apply(that, args = arguments);
167
+ /** Run through our tokens list and reassign only those that aren't defined in the hash declared above. */
168
+ for (i = 0; i < tokens.length; ++i)
169
+ if (!ignore[tokens[i]]) t.push(tokens[i]);
137
170
 
138
- for (var args, token, i = 0, l = args.length; i < l; ++i) {
139
- token = args[i];
140
- if (!tokenMap[token]) {
141
- tokens.push(token);
142
- tokenMap[token] = true;
143
- }
144
- }
171
+ tokens = t;
172
+ length = t.length >>> 0;
145
173
 
146
- /** Update the targeted attribute of the attached element if the token list's changed. */
147
- if (length !== tokens.length) {
148
- length = tokens.length >>> 0;
149
- if (typeof el[prop] === "object") {
150
- el[prop].baseVal = tokens.join(" ");
151
- } else {
152
- el[prop] = tokens.join(" ");
153
- }
154
- reindex();
155
- }
156
- };
174
+ /** Update the targeted attribute of the attached element. */
175
+ if (typeof el[prop] === "object") {
176
+ el[prop].baseVal = tokens.join(" ");
177
+ } else {
178
+ el[prop] = tokens.join(" ");
179
+ }
180
+ reindex();
181
+ };
182
+
183
+ that.toggle = function (token, force) {
184
+ preop.apply(that, [token]);
185
+
186
+ /** Token state's being forced. */
187
+ if (undefined !== force) {
188
+ if (force) {
189
+ that.add(token);
190
+ return true;
191
+ } else {
192
+ that.remove(token);
193
+ return false;
194
+ }
195
+ }
157
196
 
158
- that.remove = function () {
159
- preop.apply(that, args = arguments);
197
+ /** Token already exists in tokenList. Remove it, and return FALSE. */
198
+ if (tokenMap[token]) {
199
+ that.remove(token);
200
+ return false;
201
+ }
160
202
 
161
- /** Build a hash of token names to compare against when recollecting our token list. */
162
- for (var args, ignore = {}, i = 0, t = []; i < args.length; ++i) {
163
- ignore[args[i]] = true;
164
- delete tokenMap[args[i]];
165
- }
203
+ /** Otherwise, add the token and return TRUE. */
204
+ that.add(token);
205
+ return true;
206
+ };
166
207
 
167
- /** Run through our tokens list and reassign only those that aren't defined in the hash declared above. */
168
- for (i = 0; i < tokens.length; ++i)
169
- if (!ignore[tokens[i]]) t.push(tokens[i]);
208
+ return that;
209
+ };
170
210
 
171
- tokens = t;
172
- length = t.length >>> 0;
211
+ return _DOMTokenList;
212
+ }());
213
+ }
173
214
 
174
- /** Update the targeted attribute of the attached element. */
175
- if (typeof el[prop] === "object") {
176
- el[prop].baseVal = tokens.join(" ");
177
- } else {
178
- el[prop] = tokens.join(" ");
215
+ // Add second argument to native DOMTokenList.toggle() if necessary
216
+ (function () {
217
+ var e = document.createElement('span');
218
+ if (!('classList' in e)) return;
219
+ e.classList.toggle('x', false);
220
+ if (!e.classList.contains('x')) return;
221
+ e.classList.constructor.prototype.toggle = function toggle(token /*, force*/) {
222
+ var force = arguments[1];
223
+ if (force === undefined) {
224
+ var add = !this.contains(token);
225
+ this[add ? 'add' : 'remove'](token);
226
+ return add;
179
227
  }
180
- reindex();
228
+ force = !!force;
229
+ this[force ? 'add' : 'remove'](token);
230
+ return force;
181
231
  };
182
-
183
- that.toggle = function (token, force) {
184
- preop.apply(that, [token]);
185
-
186
- /** Token state's being forced. */
187
- if (undefined !== force) {
188
- if (force) {
189
- that.add(token);
190
- return true;
191
- } else {
192
- that.remove(token);
193
- return false;
194
- }
232
+ }());
233
+
234
+ // Add multiple arguments to native DOMTokenList.add() if necessary
235
+ (function () {
236
+ var e = document.createElement('span');
237
+ if (!('classList' in e)) return;
238
+ e.classList.add('a', 'b');
239
+ if (e.classList.contains('b')) return;
240
+ var native = e.classList.constructor.prototype.add;
241
+ e.classList.constructor.prototype.add = function () {
242
+ var args = arguments;
243
+ var l = arguments.length;
244
+ for (var i = 0; i < l; i++) {
245
+ native.call(this, args[i]);
195
246
  }
196
-
197
- /** Token already exists in tokenList. Remove it, and return FALSE. */
198
- if (tokenMap[token]) {
199
- that.remove(token);
200
- return false;
247
+ };
248
+ }());
249
+
250
+ // Add multiple arguments to native DOMTokenList.remove() if necessary
251
+ (function () {
252
+ var e = document.createElement('span');
253
+ if (!('classList' in e)) return;
254
+ e.classList.add('a');
255
+ e.classList.add('b');
256
+ e.classList.remove('a', 'b');
257
+ if (!e.classList.contains('b')) return;
258
+ var native = e.classList.constructor.prototype.remove;
259
+ e.classList.constructor.prototype.remove = function () {
260
+ var args = arguments;
261
+ var l = arguments.length;
262
+ for (var i = 0; i < l; i++) {
263
+ native.call(this, args[i]);
201
264
  }
202
-
203
- /** Otherwise, add the token and return TRUE. */
204
- that.add(token);
205
- return true;
206
265
  };
266
+ }());
207
267
 
208
- return that;
209
- };
210
-
211
- return _DOMTokenList;
212
- }());
213
- }
214
-
215
- // Add second argument to native DOMTokenList.toggle() if necessary
216
- (function () {
217
- var e = document.createElement('span');
218
- if (!('classList' in e)) return;
219
- e.classList.toggle('x', false);
220
- if (!e.classList.contains('x')) return;
221
- e.classList.constructor.prototype.toggle = function toggle(token /*, force*/) {
222
- var force = arguments[1];
223
- if (force === undefined) {
224
- var add = !this.contains(token);
225
- this[add ? 'add' : 'remove'](token);
226
- return add;
227
- }
228
- force = !!force;
229
- this[force ? 'add' : 'remove'](token);
230
- return force;
231
- };
232
- }());
233
-
234
- // Add multiple arguments to native DOMTokenList.add() if necessary
235
- (function () {
236
- var e = document.createElement('span');
237
- if (!('classList' in e)) return;
238
- e.classList.add('a', 'b');
239
- if (e.classList.contains('b')) return;
240
- var native = e.classList.constructor.prototype.add;
241
- e.classList.constructor.prototype.add = function () {
242
- var args = arguments;
243
- var l = arguments.length;
244
- for (var i = 0; i < l; i++) {
245
- native.call(this, args[i]);
246
- }
247
- };
248
- }());
249
-
250
- // Add multiple arguments to native DOMTokenList.remove() if necessary
251
- (function () {
252
- var e = document.createElement('span');
253
- if (!('classList' in e)) return;
254
- e.classList.add('a');
255
- e.classList.add('b');
256
- e.classList.remove('a', 'b');
257
- if (!e.classList.contains('b')) return;
258
- var native = e.classList.constructor.prototype.remove;
259
- e.classList.constructor.prototype.remove = function () {
260
- var args = arguments;
261
- var l = arguments.length;
262
- for (var i = 0; i < l; i++) {
263
- native.call(this, args[i]);
264
- }
265
- };
266
- }());
267
-
268
- }(this));
268
+ }(this));
269
269
 
270
- }).call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
270
+ }).call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
271
271
 
272
272
  })));
273
+ //# sourceMappingURL=DOMTokenList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DOMTokenList.js","sources":["../../../../src/govuk/vendor/polyfills/DOMTokenList.mjs"],"sourcesContent":["(function(undefined) {\n\n // Detection from https://raw.githubusercontent.com/Financial-Times/polyfill-service/master/packages/polyfill-library/polyfills/DOMTokenList/detect.js\n var detect = (\n 'DOMTokenList' in this && (function (x) {\n return 'classList' in x ? !x.classList.toggle('x', false) && !x.className : true;\n })(document.createElement('x'))\n )\n\n if (detect) return\n\n // Polyfill from https://raw.githubusercontent.com/Financial-Times/polyfill-service/master/packages/polyfill-library/polyfills/DOMTokenList/polyfill.js\n (function (global) {\n var nativeImpl = \"DOMTokenList\" in global && global.DOMTokenList;\n\n if (\n !nativeImpl ||\n (\n !!document.createElementNS &&\n !!document.createElementNS('http://www.w3.org/2000/svg', 'svg') &&\n !(document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\").classList instanceof DOMTokenList)\n )\n ) {\n global.DOMTokenList = (function() { // eslint-disable-line no-unused-vars\n var dpSupport = true;\n var defineGetter = function (object, name, fn, configurable) {\n if (Object.defineProperty)\n Object.defineProperty(object, name, {\n configurable: false === dpSupport ? true : !!configurable,\n get: fn\n });\n\n else object.__defineGetter__(name, fn);\n };\n\n /** Ensure the browser allows Object.defineProperty to be used on native JavaScript objects. */\n try {\n defineGetter({}, \"support\");\n }\n catch (e) {\n dpSupport = false;\n }\n\n\n var _DOMTokenList = function (el, prop) {\n var that = this;\n var tokens = [];\n var tokenMap = {};\n var length = 0;\n var maxLength = 0;\n var addIndexGetter = function (i) {\n defineGetter(that, i, function () {\n preop();\n return tokens[i];\n }, false);\n\n };\n var reindex = function () {\n\n /** Define getter functions for array-like access to the tokenList's contents. */\n if (length >= maxLength)\n for (; maxLength < length; ++maxLength) {\n addIndexGetter(maxLength);\n }\n };\n\n /** Helper function called at the start of each class method. Internal use only. */\n var preop = function () {\n var error;\n var i;\n var args = arguments;\n var rSpace = /\\s+/;\n\n /** Validate the token/s passed to an instance method, if any. */\n if (args.length)\n for (i = 0; i < args.length; ++i)\n if (rSpace.test(args[i])) {\n error = new SyntaxError('String \"' + args[i] + '\" ' + \"contains\" + ' an invalid character');\n error.code = 5;\n error.name = \"InvalidCharacterError\";\n throw error;\n }\n\n\n /** Split the new value apart by whitespace*/\n if (typeof el[prop] === \"object\") {\n tokens = (\"\" + el[prop].baseVal).replace(/^\\s+|\\s+$/g, \"\").split(rSpace);\n } else {\n tokens = (\"\" + el[prop]).replace(/^\\s+|\\s+$/g, \"\").split(rSpace);\n }\n\n /** Avoid treating blank strings as single-item token lists */\n if (\"\" === tokens[0]) tokens = [];\n\n /** Repopulate the internal token lists */\n tokenMap = {};\n for (i = 0; i < tokens.length; ++i)\n tokenMap[tokens[i]] = true;\n length = tokens.length;\n reindex();\n };\n\n /** Populate our internal token list if the targeted attribute of the subject element isn't empty. */\n preop();\n\n /** Return the number of tokens in the underlying string. Read-only. */\n defineGetter(that, \"length\", function () {\n preop();\n return length;\n });\n\n /** Override the default toString/toLocaleString methods to return a space-delimited list of tokens when typecast. */\n that.toLocaleString =\n that.toString = function () {\n preop();\n return tokens.join(\" \");\n };\n\n that.item = function (idx) {\n preop();\n return tokens[idx];\n };\n\n that.contains = function (token) {\n preop();\n return !!tokenMap[token];\n };\n\n that.add = function () {\n preop.apply(that, args = arguments);\n\n for (var args, token, i = 0, l = args.length; i < l; ++i) {\n token = args[i];\n if (!tokenMap[token]) {\n tokens.push(token);\n tokenMap[token] = true;\n }\n }\n\n /** Update the targeted attribute of the attached element if the token list's changed. */\n if (length !== tokens.length) {\n length = tokens.length >>> 0;\n if (typeof el[prop] === \"object\") {\n el[prop].baseVal = tokens.join(\" \");\n } else {\n el[prop] = tokens.join(\" \");\n }\n reindex();\n }\n };\n\n that.remove = function () {\n preop.apply(that, args = arguments);\n\n /** Build a hash of token names to compare against when recollecting our token list. */\n for (var args, ignore = {}, i = 0, t = []; i < args.length; ++i) {\n ignore[args[i]] = true;\n delete tokenMap[args[i]];\n }\n\n /** Run through our tokens list and reassign only those that aren't defined in the hash declared above. */\n for (i = 0; i < tokens.length; ++i)\n if (!ignore[tokens[i]]) t.push(tokens[i]);\n\n tokens = t;\n length = t.length >>> 0;\n\n /** Update the targeted attribute of the attached element. */\n if (typeof el[prop] === \"object\") {\n el[prop].baseVal = tokens.join(\" \");\n } else {\n el[prop] = tokens.join(\" \");\n }\n reindex();\n };\n\n that.toggle = function (token, force) {\n preop.apply(that, [token]);\n\n /** Token state's being forced. */\n if (undefined !== force) {\n if (force) {\n that.add(token);\n return true;\n } else {\n that.remove(token);\n return false;\n }\n }\n\n /** Token already exists in tokenList. Remove it, and return FALSE. */\n if (tokenMap[token]) {\n that.remove(token);\n return false;\n }\n\n /** Otherwise, add the token and return TRUE. */\n that.add(token);\n return true;\n };\n\n return that;\n };\n\n return _DOMTokenList;\n }());\n }\n\n // Add second argument to native DOMTokenList.toggle() if necessary\n (function () {\n var e = document.createElement('span');\n if (!('classList' in e)) return;\n e.classList.toggle('x', false);\n if (!e.classList.contains('x')) return;\n e.classList.constructor.prototype.toggle = function toggle(token /*, force*/) {\n var force = arguments[1];\n if (force === undefined) {\n var add = !this.contains(token);\n this[add ? 'add' : 'remove'](token);\n return add;\n }\n force = !!force;\n this[force ? 'add' : 'remove'](token);\n return force;\n };\n }());\n\n // Add multiple arguments to native DOMTokenList.add() if necessary\n (function () {\n var e = document.createElement('span');\n if (!('classList' in e)) return;\n e.classList.add('a', 'b');\n if (e.classList.contains('b')) return;\n var native = e.classList.constructor.prototype.add;\n e.classList.constructor.prototype.add = function () {\n var args = arguments;\n var l = arguments.length;\n for (var i = 0; i < l; i++) {\n native.call(this, args[i]);\n }\n };\n }());\n\n // Add multiple arguments to native DOMTokenList.remove() if necessary\n (function () {\n var e = document.createElement('span');\n if (!('classList' in e)) return;\n e.classList.add('a');\n e.classList.add('b');\n e.classList.remove('a', 'b');\n if (!e.classList.contains('b')) return;\n var native = e.classList.constructor.prototype.remove;\n e.classList.constructor.prototype.remove = function () {\n var args = arguments;\n var l = arguments.length;\n for (var i = 0; i < l; i++) {\n native.call(this, args[i]);\n }\n };\n }());\n\n }(this));\n\n}).call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});"],"names":[],"mappings":"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"}