govuk_publishing_components 34.6.0 → 34.7.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-link-tracker.js +2 -1
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/init-ga4.js +6 -4
- data/app/assets/javascripts/govuk_publishing_components/load-analytics.js +6 -3
- data/app/assets/stylesheets/govuk_publishing_components/components/_document-list.scss +6 -0
- data/app/assets/stylesheets/govuk_publishing_components/components/_layout-super-navigation-header.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_tables.scss +12 -0
- data/app/views/govuk_publishing_components/components/_document_list.html.erb +1 -0
- data/app/views/govuk_publishing_components/components/docs/document_list.yml +18 -1
- data/app/views/govuk_publishing_components/components/docs/govspeak.yml +22 -1
- data/lib/govuk_publishing_components/presenters/related_navigation_helper.rb +0 -7
- data/lib/govuk_publishing_components/version.rb +1 -1
- data/node_modules/govuk-frontend/govuk/all.js +4029 -3792
- data/node_modules/govuk-frontend/govuk/all.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/common/closest-attribute-value.js +52 -51
- data/node_modules/govuk-frontend/govuk/common/closest-attribute-value.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/common/index.js +153 -145
- data/node_modules/govuk-frontend/govuk/common/index.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/common/normalise-dataset.js +324 -321
- data/node_modules/govuk-frontend/govuk/common/normalise-dataset.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/common.js +154 -146
- data/node_modules/govuk-frontend/govuk/common.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/components/_all.scss +1 -1
- data/node_modules/govuk-frontend/govuk/components/accordion/_index.scss +23 -4
- data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js +2059 -1654
- data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/components/accordion/fixtures.json +11 -11
- data/node_modules/govuk-frontend/govuk/components/accordion/template.njk +1 -1
- data/node_modules/govuk-frontend/govuk/components/back-link/_index.scss +19 -19
- data/node_modules/govuk-frontend/govuk/components/breadcrumbs/_index.scss +21 -10
- data/node_modules/govuk-frontend/govuk/components/button/button.js +927 -917
- data/node_modules/govuk-frontend/govuk/components/button/button.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/components/character-count/character-count.js +2050 -2040
- data/node_modules/govuk-frontend/govuk/components/character-count/character-count.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/components/checkboxes/checkboxes.js +1155 -1147
- data/node_modules/govuk-frontend/govuk/components/checkboxes/checkboxes.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/components/cookie-banner/fixtures.json +23 -23
- data/node_modules/govuk-frontend/govuk/components/cookie-banner/template.njk +1 -1
- data/node_modules/govuk-frontend/govuk/components/details/details.js +800 -799
- data/node_modules/govuk-frontend/govuk/components/details/details.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/components/error-summary/error-summary.js +1058 -1045
- data/node_modules/govuk-frontend/govuk/components/error-summary/error-summary.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/components/header/_index.scss +6 -0
- data/node_modules/govuk-frontend/govuk/components/header/header.js +646 -998
- data/node_modules/govuk-frontend/govuk/components/header/header.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/components/notification-banner/notification-banner.js +760 -752
- data/node_modules/govuk-frontend/govuk/components/notification-banner/notification-banner.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/components/pagination/fixtures.json +61 -0
- data/node_modules/govuk-frontend/govuk/components/pagination/template.njk +1 -1
- data/node_modules/govuk-frontend/govuk/components/phase-banner/macro-options.json +1 -1
- data/node_modules/govuk-frontend/govuk/components/radios/radios.js +1110 -1107
- data/node_modules/govuk-frontend/govuk/components/radios/radios.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/components/skip-link/skip-link.js +1017 -1014
- data/node_modules/govuk-frontend/govuk/components/skip-link/skip-link.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/components/summary-list/_index.scss +107 -0
- data/node_modules/govuk-frontend/govuk/components/summary-list/fixtures.json +318 -23
- data/node_modules/govuk-frontend/govuk/components/summary-list/macro-options.json +110 -0
- data/node_modules/govuk-frontend/govuk/components/summary-list/template.njk +72 -28
- data/node_modules/govuk-frontend/govuk/components/tabs/tabs.js +1392 -1264
- data/node_modules/govuk-frontend/govuk/components/tabs/tabs.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/i18n.js +363 -364
- data/node_modules/govuk-frontend/govuk/i18n.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/settings/_measurements.scss +5 -5
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/DOMTokenList.js +242 -241
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/DOMTokenList.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Date/now.js +13 -12
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Date/now.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Document.js +17 -16
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Document.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/classList.js +547 -546
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/classList.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/closest.js +37 -36
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/closest.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/dataset.js +251 -250
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/dataset.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/matches.js +21 -20
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/matches.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/nextElementSibling.js +198 -197
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/nextElementSibling.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/previousElementSibling.js +198 -197
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/previousElementSibling.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element.js +106 -105
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Event.js +400 -399
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Event.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Function/prototype/bind.js +239 -238
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Function/prototype/bind.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Object/defineProperty.js +72 -71
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Object/defineProperty.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/String/prototype/trim.js +14 -13
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/String/prototype/trim.js.map +1 -0
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Window.js +17 -16
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Window.js.map +1 -0
- data/node_modules/govuk-frontend/govuk-esm/all.mjs +2 -2
- data/node_modules/govuk-frontend/govuk-esm/common/index.mjs +17 -10
- data/node_modules/govuk-frontend/govuk-esm/common/normalise-dataset.mjs +3 -1
- data/node_modules/govuk-frontend/govuk-esm/components/accordion/accordion.mjs +135 -52
- data/node_modules/govuk-frontend/govuk-esm/components/button/button.mjs +11 -9
- data/node_modules/govuk-frontend/govuk-esm/components/character-count/character-count.mjs +10 -7
- data/node_modules/govuk-frontend/govuk-esm/components/checkboxes/checkboxes.mjs +24 -18
- data/node_modules/govuk-frontend/govuk-esm/components/details/details.mjs +23 -16
- data/node_modules/govuk-frontend/govuk-esm/components/error-summary/error-summary.mjs +15 -11
- data/node_modules/govuk-frontend/govuk-esm/components/header/header.mjs +3 -2
- data/node_modules/govuk-frontend/govuk-esm/components/notification-banner/notification-banner.mjs +3 -4
- data/node_modules/govuk-frontend/govuk-esm/components/radios/radios.mjs +10 -9
- data/node_modules/govuk-frontend/govuk-esm/components/skip-link/skip-link.mjs +5 -3
- data/node_modules/govuk-frontend/govuk-esm/components/tabs/tabs.mjs +165 -38
- data/node_modules/govuk-frontend/govuk-esm/i18n.mjs +9 -11
- data/node_modules/govuk-frontend/package.json +1 -1
- metadata +35 -3
@@ -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:
|
23
|
-
one-third:
|
24
|
-
one-half:
|
25
|
-
two-thirds:
|
26
|
-
three-quarters:
|
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
|
-
|
3
|
-
|
4
|
-
|
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
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
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
|
-
|
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
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
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
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
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
|
-
|
110
|
-
|
109
|
+
/** Populate our internal token list if the targeted attribute of the subject element isn't empty. */
|
110
|
+
preop();
|
111
111
|
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
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
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
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
|
-
|
126
|
-
|
127
|
-
return tokens[idx];
|
128
|
-
};
|
158
|
+
that.remove = function () {
|
159
|
+
preop.apply(that, args = arguments);
|
129
160
|
|
130
|
-
|
131
|
-
|
132
|
-
|
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
|
-
|
136
|
-
|
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
|
-
|
139
|
-
|
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
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
}
|
154
|
-
|
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
|
-
|
159
|
-
|
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
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
}
|
203
|
+
/** Otherwise, add the token and return TRUE. */
|
204
|
+
that.add(token);
|
205
|
+
return true;
|
206
|
+
};
|
166
207
|
|
167
|
-
|
168
|
-
|
169
|
-
if (!ignore[tokens[i]]) t.push(tokens[i]);
|
208
|
+
return that;
|
209
|
+
};
|
170
210
|
|
171
|
-
|
172
|
-
|
211
|
+
return _DOMTokenList;
|
212
|
+
}());
|
213
|
+
}
|
173
214
|
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
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
|
-
|
228
|
+
force = !!force;
|
229
|
+
this[force ? 'add' : 'remove'](token);
|
230
|
+
return force;
|
181
231
|
};
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
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
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
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
|
-
|
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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"}
|