{"version":3,"file":"js/home.bundle.min.js","mappings":"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","sources":["webpack://sciencenews/./node_modules/fastdom/fastdom.js","webpack://sciencenews/./node_modules/js-cookie/src/js.cookie.js","webpack://sciencenews/./node_modules/memize/index.js","webpack://sciencenews/./node_modules/sprintf-js/src/sprintf.js","webpack://sciencenews/./client/src/components/carousel/next.svg","webpack://sciencenews/./client/src/components/carousel/previous.svg","webpack://sciencenews/./client/src/components/nav-bar/chevron-down.svg","webpack://sciencenews/webpack/bootstrap","webpack://sciencenews/webpack/runtime/compat get default export","webpack://sciencenews/webpack/runtime/define property getters","webpack://sciencenews/webpack/runtime/hasOwnProperty shorthand","webpack://sciencenews/./node_modules/js-component-framework/es/domContentLoaded.js","webpack://sciencenews/./node_modules/js-component-framework/es/componentProvider.js","webpack://sciencenews/./node_modules/js-component-framework/es/componentLoader.js","webpack://sciencenews/./client/src/js/utils/getFormattedClassnames.js","webpack://sciencenews/./node_modules/@tannin/postfix/index.js","webpack://sciencenews/./node_modules/@wordpress/i18n/build-module/sprintf.js","webpack://sciencenews/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://sciencenews/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://sciencenews/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://sciencenews/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://sciencenews/./node_modules/@tannin/evaluate/index.js","webpack://sciencenews/./node_modules/tannin/index.js","webpack://sciencenews/./node_modules/@wordpress/i18n/build-module/create-i18n.js","webpack://sciencenews/./node_modules/@tannin/plural-forms/index.js","webpack://sciencenews/./node_modules/@tannin/compile/index.js","webpack://sciencenews/./node_modules/@wordpress/hooks/build-module/validateNamespace.js","webpack://sciencenews/./node_modules/@wordpress/hooks/build-module/validateHookName.js","webpack://sciencenews/./node_modules/@wordpress/hooks/build-module/createAddHook.js","webpack://sciencenews/./node_modules/@wordpress/hooks/build-module/createRemoveHook.js","webpack://sciencenews/./node_modules/@wordpress/hooks/build-module/createHasHook.js","webpack://sciencenews/./node_modules/@wordpress/hooks/build-module/createRunHook.js","webpack://sciencenews/./node_modules/@wordpress/hooks/build-module/createCurrentHook.js","webpack://sciencenews/./node_modules/@wordpress/hooks/build-module/createDoingHook.js","webpack://sciencenews/./node_modules/@wordpress/hooks/build-module/createDidHook.js","webpack://sciencenews/./node_modules/@wordpress/hooks/build-module/index.js","webpack://sciencenews/./node_modules/@wordpress/hooks/build-module/createHooks.js","webpack://sciencenews/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://sciencenews/./node_modules/@wordpress/i18n/build-module/default-i18n.js","webpack://sciencenews/./client/src/js/a11y/lib/keyCodes.js","webpack://sciencenews/./client/src/js/a11y/lib/interactiveChildren.js","webpack://sciencenews/./client/src/js/a11y/Popup.js","webpack://sciencenews/./client/src/js/a11y/MenuItem.js","webpack://sciencenews/./client/src/js/a11y/lib/rovingTabIndex.js","webpack://sciencenews/./client/src/js/a11y/Menu.js","webpack://sciencenews/./client/src/js/utils/Throttle.js","webpack://sciencenews/./client/src/js/utils/breakpoints.js","webpack://sciencenews/./client/src/js/a11y/lib/uniqueId.js","webpack://sciencenews/./client/src/js/a11y/lib/createScreenReaderText.js","webpack://sciencenews/./client/src/components/topics-megamenu/GroupWidget.js","webpack://sciencenews/./client/src/components/topics-megamenu/index.js","webpack://sciencenews/./client/src/components/topics-megamenu/topics-megamenu.js","webpack://sciencenews/./client/src/js/a11y/Disclosure.js","webpack://sciencenews/./client/src/js/utils/getClassnameFromComponent.js","webpack://sciencenews/./client/src/js/utils/camelCaseString.js","webpack://sciencenews/./client/src/js/utils/getElementFromComponent.js","webpack://sciencenews/./client/src/components/header-search/index.js","webpack://sciencenews/./client/src/components/header-search/header-search.js","webpack://sciencenews/./client/src/js/utils/FormAssemblySubmit.js","webpack://sciencenews/./client/src/components/form-assembly/index.js","webpack://sciencenews/./client/src/components/form-assembly/form-assembly.js","webpack://sciencenews/./client/src/components/restricted-content/restrictedContentCookieName.js","webpack://sciencenews/./client/src/components/restricted-content/login-form/index.js","webpack://sciencenews/./client/src/components/restricted-content/login-form/login-form.js","webpack://sciencenews/./node_modules/aria-components/src/AriaComponent.js","webpack://sciencenews/./node_modules/aria-components/src/lib/keyCodes.js","webpack://sciencenews/./node_modules/aria-components/src/lib/rovingTabIndex.js","webpack://sciencenews/./client/src/js/utils/ProgrammaticDialog.js","webpack://sciencenews/./node_modules/aria-components/src/lib/interactiveChildren.js","webpack://sciencenews/./node_modules/aria-components/src/lib/getFirstAndLastItems.js","webpack://sciencenews/./client/src/js/utils/toArray.js","webpack://sciencenews/./node_modules/aria-components/src/lib/uniqueId.js","webpack://sciencenews/./client/src/components/restricted-content/modal-access/index.js","webpack://sciencenews/./client/src/components/restricted-content/modal-access/modal-access.js","webpack://sciencenews/./client/src/components/nav-bar/index.js","webpack://sciencenews/./client/src/components/nav-bar/nav-bar.js","webpack://sciencenews/./client/src/components/newsletter-signup/index.js","webpack://sciencenews/./client/src/components/newsletter-signup/newsletter-signup.js","webpack://sciencenews/./client/src/components/cookie-banner/index.js","webpack://sciencenews/./node_modules/swiper/shared/ssr-window.esm.mjs","webpack://sciencenews/./client/src/components/cookie-banner/cookie-banner.js","webpack://sciencenews/./client/src/components/form-assembly-form/index.js","webpack://sciencenews/./client/src/components/form-assembly-form/form-assembly-form.js","webpack://sciencenews/./node_modules/swiper/shared/utils.mjs","webpack://sciencenews/./node_modules/swiper/shared/swiper-core.mjs","webpack://sciencenews/./node_modules/swiper/shared/create-element-if-not-defined.mjs","webpack://sciencenews/./node_modules/swiper/modules/navigation.mjs","webpack://sciencenews/./node_modules/swiper/shared/classes-to-selector.mjs","webpack://sciencenews/./node_modules/swiper/modules/pagination.mjs","webpack://sciencenews/./node_modules/swiper/modules/a11y.mjs","webpack://sciencenews/./client/src/components/carousel/index.js","webpack://sciencenews/./client/src/components/carousel/carousel.js","webpack://sciencenews/./client/src/components/carousel/carousel.module.scss?e093","webpack://sciencenews/./client/src/components/video-player/index.js","webpack://sciencenews/./client/src/components/video-player/video-player.js"],"sourcesContent":["!(function(win) {\n\n/**\n * FastDom\n *\n * Eliminates layout thrashing\n * by batching DOM read/write\n * interactions.\n *\n * @author Wilson Page \n * @author Kornel Lesinski \n */\n\n'use strict';\n\n/**\n * Mini logger\n *\n * @return {Function}\n */\nvar debug = 0 ? console.log.bind(console, '[fastdom]') : function() {};\n\n/**\n * Normalized rAF\n *\n * @type {Function}\n */\nvar raf = win.requestAnimationFrame\n || win.webkitRequestAnimationFrame\n || win.mozRequestAnimationFrame\n || win.msRequestAnimationFrame\n || function(cb) { return setTimeout(cb, 16); };\n\n/**\n * Initialize a `FastDom`.\n *\n * @constructor\n */\nfunction FastDom() {\n var self = this;\n self.reads = [];\n self.writes = [];\n self.raf = raf.bind(win); // test hook\n debug('initialized', self);\n}\n\nFastDom.prototype = {\n constructor: FastDom,\n\n /**\n * We run this inside a try catch\n * so that if any jobs error, we\n * are able to recover and continue\n * to flush the batch until it's empty.\n *\n * @param {Array} tasks\n */\n runTasks: function(tasks) {\n debug('run tasks');\n var task; while (task = tasks.shift()) task();\n },\n\n /**\n * Adds a job to the read batch and\n * schedules a new frame if need be.\n *\n * @param {Function} fn\n * @param {Object} ctx the context to be bound to `fn` (optional).\n * @public\n */\n measure: function(fn, ctx) {\n debug('measure');\n var task = !ctx ? fn : fn.bind(ctx);\n this.reads.push(task);\n scheduleFlush(this);\n return task;\n },\n\n /**\n * Adds a job to the\n * write batch and schedules\n * a new frame if need be.\n *\n * @param {Function} fn\n * @param {Object} ctx the context to be bound to `fn` (optional).\n * @public\n */\n mutate: function(fn, ctx) {\n debug('mutate');\n var task = !ctx ? fn : fn.bind(ctx);\n this.writes.push(task);\n scheduleFlush(this);\n return task;\n },\n\n /**\n * Clears a scheduled 'read' or 'write' task.\n *\n * @param {Object} task\n * @return {Boolean} success\n * @public\n */\n clear: function(task) {\n debug('clear', task);\n return remove(this.reads, task) || remove(this.writes, task);\n },\n\n /**\n * Extend this FastDom with some\n * custom functionality.\n *\n * Because fastdom must *always* be a\n * singleton, we're actually extending\n * the fastdom instance. This means tasks\n * scheduled by an extension still enter\n * fastdom's global task queue.\n *\n * The 'super' instance can be accessed\n * from `this.fastdom`.\n *\n * @example\n *\n * var myFastdom = fastdom.extend({\n * initialize: function() {\n * // runs on creation\n * },\n *\n * // override a method\n * measure: function(fn) {\n * // do extra stuff ...\n *\n * // then call the original\n * return this.fastdom.measure(fn);\n * },\n *\n * ...\n * });\n *\n * @param {Object} props properties to mixin\n * @return {FastDom}\n */\n extend: function(props) {\n debug('extend', props);\n if (typeof props != 'object') throw new Error('expected object');\n\n var child = Object.create(this);\n mixin(child, props);\n child.fastdom = this;\n\n // run optional creation hook\n if (child.initialize) child.initialize();\n\n return child;\n },\n\n // override this with a function\n // to prevent Errors in console\n // when tasks throw\n catch: null\n};\n\n/**\n * Schedules a new read/write\n * batch if one isn't pending.\n *\n * @private\n */\nfunction scheduleFlush(fastdom) {\n if (!fastdom.scheduled) {\n fastdom.scheduled = true;\n fastdom.raf(flush.bind(null, fastdom));\n debug('flush scheduled');\n }\n}\n\n/**\n * Runs queued `read` and `write` tasks.\n *\n * Errors are caught and thrown by default.\n * If a `.catch` function has been defined\n * it is called instead.\n *\n * @private\n */\nfunction flush(fastdom) {\n debug('flush');\n\n var writes = fastdom.writes;\n var reads = fastdom.reads;\n var error;\n\n try {\n debug('flushing reads', reads.length);\n fastdom.runTasks(reads);\n debug('flushing writes', writes.length);\n fastdom.runTasks(writes);\n } catch (e) { error = e; }\n\n fastdom.scheduled = false;\n\n // If the batch errored we may still have tasks queued\n if (reads.length || writes.length) scheduleFlush(fastdom);\n\n if (error) {\n debug('task errored', error.message);\n if (fastdom.catch) fastdom.catch(error);\n else throw error;\n }\n}\n\n/**\n * Remove an item from an Array.\n *\n * @param {Array} array\n * @param {*} item\n * @return {Boolean}\n */\nfunction remove(array, item) {\n var index = array.indexOf(item);\n return !!~index && !!array.splice(index, 1);\n}\n\n/**\n * Mixin own properties of source\n * object into the target.\n *\n * @param {Object} target\n * @param {Object} source\n */\nfunction mixin(target, source) {\n for (var key in source) {\n if (source.hasOwnProperty(key)) target[key] = source[key];\n }\n}\n\n// There should never be more than\n// one instance of `FastDom` in an app\nvar exports = win.fastdom = (win.fastdom || new FastDom()); // jshint ignore:line\n\n// Expose to CJS & AMD\nif ((typeof define) == 'function') define(function() { return exports; });\nelse if ((typeof module) == 'object') module.exports = exports;\n\n})( typeof window !== 'undefined' ? window : this);\n","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","/**\n * Memize options object.\n *\n * @typedef MemizeOptions\n *\n * @property {number} [maxSize] Maximum size of the cache.\n */\n\n/**\n * Internal cache entry.\n *\n * @typedef MemizeCacheNode\n *\n * @property {?MemizeCacheNode|undefined} [prev] Previous node.\n * @property {?MemizeCacheNode|undefined} [next] Next node.\n * @property {Array<*>} args Function arguments for cache\n * entry.\n * @property {*} val Function result.\n */\n\n/**\n * Properties of the enhanced function for controlling cache.\n *\n * @typedef MemizeMemoizedFunction\n *\n * @property {()=>void} clear Clear the cache.\n */\n\n/**\n * Accepts a function to be memoized, and returns a new memoized function, with\n * optional options.\n *\n * @template {Function} F\n *\n * @param {F} fn Function to memoize.\n * @param {MemizeOptions} [options] Options object.\n *\n * @return {F & MemizeMemoizedFunction} Memoized function.\n */\nfunction memize( fn, options ) {\n\tvar size = 0;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar head;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar tail;\n\n\toptions = options || {};\n\n\tfunction memoized( /* ...args */ ) {\n\t\tvar node = head,\n\t\t\tlen = arguments.length,\n\t\t\targs, i;\n\n\t\tsearchCache: while ( node ) {\n\t\t\t// Perform a shallow equality test to confirm that whether the node\n\t\t\t// under test is a candidate for the arguments passed. Two arrays\n\t\t\t// are shallowly equal if their length matches and each entry is\n\t\t\t// strictly equal between the two sets. Avoid abstracting to a\n\t\t\t// function which could incur an arguments leaking deoptimization.\n\n\t\t\t// Check whether node arguments match arguments length\n\t\t\tif ( node.args.length !== arguments.length ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Check whether node arguments match arguments values\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( node.args[ i ] !== arguments[ i ] ) {\n\t\t\t\t\tnode = node.next;\n\t\t\t\t\tcontinue searchCache;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== head ) {\n\t\t\t\t// As tail, shift to previous. Must only shift if not also\n\t\t\t\t// head, since if both head and tail, there is no previous.\n\t\t\t\tif ( node === tail ) {\n\t\t\t\t\ttail = node.prev;\n\t\t\t\t}\n\n\t\t\t\t// Adjust siblings to point to each other. If node was tail,\n\t\t\t\t// this also handles new tail's empty `next` assignment.\n\t\t\t\t/** @type {MemizeCacheNode} */ ( node.prev ).next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = head;\n\t\t\t\tnode.prev = null;\n\t\t\t\t/** @type {MemizeCacheNode} */ ( head ).prev = node;\n\t\t\t\thead = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\t// Create a copy of arguments (avoid leaking deoptimization)\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tnode = {\n\t\t\targs: args,\n\n\t\t\t// Generate the result from original function\n\t\t\tval: fn.apply( null, args ),\n\t\t};\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( head ) {\n\t\t\thead.prev = node;\n\t\t\tnode.next = head;\n\t\t} else {\n\t\t\t// If no head, follows that there's no tail (at initial or reset)\n\t\t\ttail = node;\n\t\t}\n\n\t\t// Trim tail if we're reached max size and are pending cache insertion\n\t\tif ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) {\n\t\t\ttail = /** @type {MemizeCacheNode} */ ( tail ).prev;\n\t\t\t/** @type {MemizeCacheNode} */ ( tail ).next = null;\n\t\t} else {\n\t\t\tsize++;\n\t\t}\n\n\t\thead = node;\n\n\t\treturn node.val;\n\t}\n\n\tmemoized.clear = function() {\n\t\thead = null;\n\t\ttail = null;\n\t\tsize = 0;\n\t};\n\n\tif ( process.env.NODE_ENV === 'test' ) {\n\t\t// Cache is not exposed in the public API, but used in tests to ensure\n\t\t// expected list progression\n\t\tmemoized.getCache = function() {\n\t\t\treturn [ head, tail, size ];\n\t\t};\n\t}\n\n\t// Ignore reason: There's not a clear solution to create an intersection of\n\t// the function with additional properties, where the goal is to retain the\n\t// function signature of the incoming argument and add control properties\n\t// on the return value.\n\n\t// @ts-ignore\n\treturn memoized;\n}\n\nmodule.exports = memize;\n","/* global window, exports, define */\n\n!function() {\n 'use strict'\n\n var re = {\n not_string: /[^s]/,\n not_bool: /[^t]/,\n not_type: /[^T]/,\n not_primitive: /[^v]/,\n number: /[diefg]/,\n numeric_arg: /[bcdiefguxX]/,\n json: /[j]/,\n not_json: /[^j]/,\n text: /^[^\\x25]+/,\n modulo: /^\\x25{2}/,\n placeholder: /^\\x25(?:([1-9]\\d*)\\$|\\(([^)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-gijostTuvxX])/,\n key: /^([a-z_][a-z_\\d]*)/i,\n key_access: /^\\.([a-z_][a-z_\\d]*)/i,\n index_access: /^\\[(\\d+)\\]/,\n sign: /^[+-]/\n }\n\n function sprintf(key) {\n // `arguments` is not an array, but should be fine for this call\n return sprintf_format(sprintf_parse(key), arguments)\n }\n\n function vsprintf(fmt, argv) {\n return sprintf.apply(null, [fmt].concat(argv || []))\n }\n\n function sprintf_format(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign\n for (i = 0; i < tree_length; i++) {\n if (typeof parse_tree[i] === 'string') {\n output += parse_tree[i]\n }\n else if (typeof parse_tree[i] === 'object') {\n ph = parse_tree[i] // convenience purposes only\n if (ph.keys) { // keyword argument\n arg = argv[cursor]\n for (k = 0; k < ph.keys.length; k++) {\n if (arg == undefined) {\n throw new Error(sprintf('[sprintf] Cannot access property \"%s\" of undefined value \"%s\"', ph.keys[k], ph.keys[k-1]))\n }\n arg = arg[ph.keys[k]]\n }\n }\n else if (ph.param_no) { // positional argument (explicit)\n arg = argv[ph.param_no]\n }\n else { // positional argument (implicit)\n arg = argv[cursor++]\n }\n\n if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) {\n arg = arg()\n }\n\n if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) {\n throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg))\n }\n\n if (re.number.test(ph.type)) {\n is_positive = arg >= 0\n }\n\n switch (ph.type) {\n case 'b':\n arg = parseInt(arg, 10).toString(2)\n break\n case 'c':\n arg = String.fromCharCode(parseInt(arg, 10))\n break\n case 'd':\n case 'i':\n arg = parseInt(arg, 10)\n break\n case 'j':\n arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0)\n break\n case 'e':\n arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential()\n break\n case 'f':\n arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg)\n break\n case 'g':\n arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg)\n break\n case 'o':\n arg = (parseInt(arg, 10) >>> 0).toString(8)\n break\n case 's':\n arg = String(arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 't':\n arg = String(!!arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'T':\n arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'u':\n arg = parseInt(arg, 10) >>> 0\n break\n case 'v':\n arg = arg.valueOf()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'x':\n arg = (parseInt(arg, 10) >>> 0).toString(16)\n break\n case 'X':\n arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase()\n break\n }\n if (re.json.test(ph.type)) {\n output += arg\n }\n else {\n if (re.number.test(ph.type) && (!is_positive || ph.sign)) {\n sign = is_positive ? '+' : '-'\n arg = arg.toString().replace(re.sign, '')\n }\n else {\n sign = ''\n }\n pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' '\n pad_length = ph.width - (sign + arg).length\n pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : ''\n output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg)\n }\n }\n }\n return output\n }\n\n var sprintf_cache = Object.create(null)\n\n function sprintf_parse(fmt) {\n if (sprintf_cache[fmt]) {\n return sprintf_cache[fmt]\n }\n\n var _fmt = fmt, match, parse_tree = [], arg_names = 0\n while (_fmt) {\n if ((match = re.text.exec(_fmt)) !== null) {\n parse_tree.push(match[0])\n }\n else if ((match = re.modulo.exec(_fmt)) !== null) {\n parse_tree.push('%')\n }\n else if ((match = re.placeholder.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1\n var field_list = [], replacement_field = match[2], field_match = []\n if ((field_match = re.key.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n if ((field_match = re.key_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else if ((field_match = re.index_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n }\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n match[2] = field_list\n }\n else {\n arg_names |= 2\n }\n if (arg_names === 3) {\n throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported')\n }\n\n parse_tree.push(\n {\n placeholder: match[0],\n param_no: match[1],\n keys: match[2],\n sign: match[3],\n pad_char: match[4],\n align: match[5],\n width: match[6],\n precision: match[7],\n type: match[8]\n }\n )\n }\n else {\n throw new SyntaxError('[sprintf] unexpected placeholder')\n }\n _fmt = _fmt.substring(match[0].length)\n }\n return sprintf_cache[fmt] = parse_tree\n }\n\n /**\n * export to either browser or node.js\n */\n /* eslint-disable quote-props */\n if (typeof exports !== 'undefined') {\n exports['sprintf'] = sprintf\n exports['vsprintf'] = vsprintf\n }\n if (typeof window !== 'undefined') {\n window['sprintf'] = sprintf\n window['vsprintf'] = vsprintf\n\n if (typeof define === 'function' && define['amd']) {\n define(function() {\n return {\n 'sprintf': sprintf,\n 'vsprintf': vsprintf\n }\n })\n }\n }\n /* eslint-enable quote-props */\n}(); // eslint-disable-line\n","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","/* eslint consistent-return: [\"error\", { \"treatUndefinedAsUnspecified\": true }] */\n\n/**\n * Executes the given callback when DOMContentLoaded is ready.\n *\n * @param {function} callback Callback to execute once DOMContentLoaded completes.\n */\nfunction domContentLoaded(callback) {\n if (document.readyState === 'complete' || document.readyState === 'interactive') {\n return void callback(); // eslint-disable-line no-void\n }\n\n document.addEventListener('DOMContentLoaded', callback, {\n once: true\n });\n}\nexport default domContentLoaded;","import componentLoader from './componentLoader';\n\n/**\n * Compile component elements and DOM attachments.\n *\n * @param {Object} config The component config.\n * @returns {Function|undefined} A function to initialize the component.\n */\nexport default function componentProvider(config) {\n const {\n component: Component,\n load,\n // default value omitted so `componentLoader` can use its default.\n name,\n querySelector = {},\n querySelectorAll = {},\n options = {}\n } = config;\n if (typeof Component !== 'function') {\n return undefined;\n }\n\n /**\n * Collect component arguments based on the config.\n *\n * @returns {array} Array of arguments.\n */\n const getComponentArgs = () => {\n // Set component selector, preferring the `name` property.\n const selector = undefined === name ? config === null || config === void 0 ? void 0 : config.root : `[data-component='${name}']`;\n let componentEls;\n\n // Test for a valid selector.\n try {\n componentEls = document.querySelectorAll(selector);\n } catch (e) {\n console.error(e); // eslint-disable-line no-console\n return [];\n }\n\n // No component elements found.\n if (componentEls.length < 1) {\n console.log(`No elements found for ${selector}`); // eslint-disable-line no-console\n return [];\n }\n return Array.from(componentEls).map(element => {\n const children = {};\n\n // Select single child nodes.\n Object.keys(querySelector).forEach(elementKey => {\n children[elementKey] = element.querySelector(querySelector[elementKey]);\n });\n\n // Select groups of child nodes.\n Object.keys(querySelectorAll).forEach(elementKey => {\n const nodeList = element.querySelectorAll(querySelectorAll[elementKey]);\n children[elementKey] = Array.from(nodeList);\n });\n return {\n element,\n children,\n options\n };\n });\n };\n\n /**\n * The provider function.\n *\n * Finds DOM nodes upon which the component should be initialized, collects\n * references to child nodes thereof, and passes these as arguments to each\n * instance of the component.\n */\n const init = () => {\n const componentArgs = getComponentArgs();\n componentArgs.forEach(args => new Component(args));\n };\n\n // Return the provider function for later execution.\n if (load === false) {\n return init;\n }\n\n /*\n * Call the provider function so it is executed as soon as the document is\n * parsed and loaded.\n *\n * This is a convenience option and is functionally identical to setting\n * `config.load` to false and calling the provider function later in the script.\n */\n if (load === true) {\n return void init(); // eslint-disable-line no-void\n }\n\n // Use the handler defined in the `load` config property.\n return void componentLoader(init, load); // eslint-disable-line no-void\n}","import domContentLoaded from './domContentLoaded';\n\n/**\n * Execute the given function according to the `load` parameter.\n *\n * @param {function} init The function to execute.\n * @param {boolean|array|function} load The loading instructions.\n */\nexport default function componentLoader(init) {\n let load = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : domContentLoaded;\n if (init) {\n if (typeof load === 'function') {\n load(init);\n } else if (Array.isArray(load)) {\n const [element, event] = load;\n\n // e.g., load: [window, 'load']\n element === null || element === void 0 ? void 0 : element.addEventListener(event, init);\n }\n }\n}","/**\n * Formats classnames from a given namespace\n * Essentially just adds a '.' to the beginning of classnames\n *\n * @param {Object} namespace The namespace within which to format classnames.\n * @return {Object}\n */\nexport default function getFormattedClassnames(namespace) {\n return Object.keys(namespace).reduce((acc, key) => {\n acc[key] = `.${namespace[key].split(' ')[0]}`;\n return acc;\n }, {});\n}\n","var PRECEDENCE, OPENERS, TERMINATORS, PATTERN;\n\n/**\n * Operator precedence mapping.\n *\n * @type {Object}\n */\nPRECEDENCE = {\n\t'(': 9,\n\t'!': 8,\n\t'*': 7,\n\t'/': 7,\n\t'%': 7,\n\t'+': 6,\n\t'-': 6,\n\t'<': 5,\n\t'<=': 5,\n\t'>': 5,\n\t'>=': 5,\n\t'==': 4,\n\t'!=': 4,\n\t'&&': 3,\n\t'||': 2,\n\t'?': 1,\n\t'?:': 1,\n};\n\n/**\n * Characters which signal pair opening, to be terminated by terminators.\n *\n * @type {string[]}\n */\nOPENERS = [ '(', '?' ];\n\n/**\n * Characters which signal pair termination, the value an array with the\n * opener as its first member. The second member is an optional operator\n * replacement to push to the stack.\n *\n * @type {string[]}\n */\nTERMINATORS = {\n\t')': [ '(' ],\n\t':': [ '?', '?:' ],\n};\n\n/**\n * Pattern matching operators and openers.\n *\n * @type {RegExp}\n */\nPATTERN = /<=|>=|==|!=|&&|\\|\\||\\?:|\\(|!|\\*|\\/|%|\\+|-|<|>|\\?|\\)|:/;\n\n/**\n * Given a C expression, returns the equivalent postfix (Reverse Polish)\n * notation terms as an array.\n *\n * If a postfix string is desired, simply `.join( ' ' )` the result.\n *\n * @example\n *\n * ```js\n * import postfix from '@tannin/postfix';\n *\n * postfix( 'n > 1' );\n * // ⇒ [ 'n', '1', '>' ]\n * ```\n *\n * @param {string} expression C expression.\n *\n * @return {string[]} Postfix terms.\n */\nexport default function postfix( expression ) {\n\tvar terms = [],\n\t\tstack = [],\n\t\tmatch, operator, term, element;\n\n\twhile ( ( match = expression.match( PATTERN ) ) ) {\n\t\toperator = match[ 0 ];\n\n\t\t// Term is the string preceding the operator match. It may contain\n\t\t// whitespace, and may be empty (if operator is at beginning).\n\t\tterm = expression.substr( 0, match.index ).trim();\n\t\tif ( term ) {\n\t\t\tterms.push( term );\n\t\t}\n\n\t\twhile ( ( element = stack.pop() ) ) {\n\t\t\tif ( TERMINATORS[ operator ] ) {\n\t\t\t\tif ( TERMINATORS[ operator ][ 0 ] === element ) {\n\t\t\t\t\t// Substitution works here under assumption that because\n\t\t\t\t\t// the assigned operator will no longer be a terminator, it\n\t\t\t\t\t// will be pushed to the stack during the condition below.\n\t\t\t\t\toperator = TERMINATORS[ operator ][ 1 ] || operator;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if ( OPENERS.indexOf( element ) >= 0 || PRECEDENCE[ element ] < PRECEDENCE[ operator ] ) {\n\t\t\t\t// Push to stack if either an opener or when pop reveals an\n\t\t\t\t// element of lower precedence.\n\t\t\t\tstack.push( element );\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// For each popped from stack, push to terms.\n\t\t\tterms.push( element );\n\t\t}\n\n\t\tif ( ! TERMINATORS[ operator ] ) {\n\t\t\tstack.push( operator );\n\t\t}\n\n\t\t// Slice matched fragment from expression to continue match.\n\t\texpression = expression.substr( match.index + operator.length );\n\t}\n\n\t// Push remainder of operand, if exists, to terms.\n\texpression = expression.trim();\n\tif ( expression ) {\n\t\tterms.push( expression );\n\t}\n\n\t// Pop remaining items from stack into terms.\n\treturn terms.concat( stack.reverse() );\n}\n","/**\n * External dependencies\n */\nimport memoize from 'memize';\nimport sprintfjs from 'sprintf-js';\n/**\n * Log to console, once per message; or more precisely, per referentially equal\n * argument set. Because Jed throws errors, we log these to the console instead\n * to avoid crashing the application.\n *\n * @param {...*} args Arguments to pass to `console.error`\n */\n\nvar logErrorOnce = memoize(console.error); // eslint-disable-line no-console\n\n/**\n * Returns a formatted string. If an error occurs in applying the format, the\n * original format string is returned.\n *\n * @param {string} format The format of the string to generate.\n * @param {...*} args Arguments to apply to the format.\n *\n * @see https://www.npmjs.com/package/sprintf-js\n *\n * @return {string} The formatted string.\n */\n\nexport function sprintf(format) {\n try {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return sprintfjs.sprintf.apply(sprintfjs, [format].concat(args));\n } catch (error) {\n logErrorOnce('sprintf error: \\n\\n' + error.toString());\n return format;\n }\n}\n//# sourceMappingURL=sprintf.js.map","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","/**\n * Operator callback functions.\n *\n * @type {Object}\n */\nvar OPERATORS = {\n\t'!': function( a ) {\n\t\treturn ! a;\n\t},\n\t'*': function( a, b ) {\n\t\treturn a * b;\n\t},\n\t'/': function( a, b ) {\n\t\treturn a / b;\n\t},\n\t'%': function( a, b ) {\n\t\treturn a % b;\n\t},\n\t'+': function( a, b ) {\n\t\treturn a + b;\n\t},\n\t'-': function( a, b ) {\n\t\treturn a - b;\n\t},\n\t'<': function( a, b ) {\n\t\treturn a < b;\n\t},\n\t'<=': function( a, b ) {\n\t\treturn a <= b;\n\t},\n\t'>': function( a, b ) {\n\t\treturn a > b;\n\t},\n\t'>=': function( a, b ) {\n\t\treturn a >= b;\n\t},\n\t'==': function( a, b ) {\n\t\treturn a === b;\n\t},\n\t'!=': function( a, b ) {\n\t\treturn a !== b;\n\t},\n\t'&&': function( a, b ) {\n\t\treturn a && b;\n\t},\n\t'||': function( a, b ) {\n\t\treturn a || b;\n\t},\n\t'?:': function( a, b, c ) {\n\t\tif ( a ) {\n\t\t\tthrow b;\n\t\t}\n\n\t\treturn c;\n\t},\n};\n\n/**\n * Given an array of postfix terms and operand variables, returns the result of\n * the postfix evaluation.\n *\n * @example\n *\n * ```js\n * import evaluate from '@tannin/evaluate';\n *\n * // 3 + 4 * 5 / 6 ⇒ '3 4 5 * 6 / +'\n * const terms = [ '3', '4', '5', '*', '6', '/', '+' ];\n *\n * evaluate( terms, {} );\n * // ⇒ 6.333333333333334\n * ```\n *\n * @param {string[]} postfix Postfix terms.\n * @param {Object} variables Operand variables.\n *\n * @return {*} Result of evaluation.\n */\nexport default function evaluate( postfix, variables ) {\n\tvar stack = [],\n\t\ti, j, args, getOperatorResult, term, value;\n\n\tfor ( i = 0; i < postfix.length; i++ ) {\n\t\tterm = postfix[ i ];\n\n\t\tgetOperatorResult = OPERATORS[ term ];\n\t\tif ( getOperatorResult ) {\n\t\t\t// Pop from stack by number of function arguments.\n\t\t\tj = getOperatorResult.length;\n\t\t\targs = Array( j );\n\t\t\twhile ( j-- ) {\n\t\t\t\targs[ j ] = stack.pop();\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tvalue = getOperatorResult.apply( null, args );\n\t\t\t} catch ( earlyReturn ) {\n\t\t\t\treturn earlyReturn;\n\t\t\t}\n\t\t} else if ( variables.hasOwnProperty( term ) ) {\n\t\t\tvalue = variables[ term ];\n\t\t} else {\n\t\t\tvalue = +term;\n\t\t}\n\n\t\tstack.push( value );\n\t}\n\n\treturn stack[ 0 ];\n}\n","import pluralForms from '@tannin/plural-forms';\n\n/**\n * Tannin constructor options.\n *\n * @typedef {Object} TanninOptions\n *\n * @property {string} [contextDelimiter] Joiner in string lookup with context.\n * @property {Function} [onMissingKey] Callback to invoke when key missing.\n */\n\n/**\n * Domain metadata.\n *\n * @typedef {Object} TanninDomainMetadata\n *\n * @property {string} [domain] Domain name.\n * @property {string} [lang] Language code.\n * @property {(string|Function)} [plural_forms] Plural forms expression or\n * function evaluator.\n */\n\n/**\n * Domain translation pair respectively representing the singular and plural\n * translation.\n *\n * @typedef {[string,string]} TanninTranslation\n */\n\n/**\n * Locale data domain. The key is used as reference for lookup, the value an\n * array of two string entries respectively representing the singular and plural\n * translation.\n *\n * @typedef {{[key:string]:TanninDomainMetadata|TanninTranslation,'':TanninDomainMetadata|TanninTranslation}} TanninLocaleDomain\n */\n\n/**\n * Jed-formatted locale data.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @typedef {{[domain:string]:TanninLocaleDomain}} TanninLocaleData\n */\n\n/**\n * Default Tannin constructor options.\n *\n * @type {TanninOptions}\n */\nvar DEFAULT_OPTIONS = {\n\tcontextDelimiter: '\\u0004',\n\tonMissingKey: null,\n};\n\n/**\n * Given a specific locale data's config `plural_forms` value, returns the\n * expression.\n *\n * @example\n *\n * ```\n * getPluralExpression( 'nplurals=2; plural=(n != 1);' ) === '(n != 1)'\n * ```\n *\n * @param {string} pf Locale data plural forms.\n *\n * @return {string} Plural forms expression.\n */\nfunction getPluralExpression( pf ) {\n\tvar parts, i, part;\n\n\tparts = pf.split( ';' );\n\n\tfor ( i = 0; i < parts.length; i++ ) {\n\t\tpart = parts[ i ].trim();\n\t\tif ( part.indexOf( 'plural=' ) === 0 ) {\n\t\t\treturn part.substr( 7 );\n\t\t}\n\t}\n}\n\n/**\n * Tannin constructor.\n *\n * @class\n *\n * @param {TanninLocaleData} data Jed-formatted locale data.\n * @param {TanninOptions} [options] Tannin options.\n */\nexport default function Tannin( data, options ) {\n\tvar key;\n\n\t/**\n\t * Jed-formatted locale data.\n\t *\n\t * @name Tannin#data\n\t * @type {TanninLocaleData}\n\t */\n\tthis.data = data;\n\n\t/**\n\t * Plural forms function cache, keyed by plural forms string.\n\t *\n\t * @name Tannin#pluralForms\n\t * @type {Object}\n\t */\n\tthis.pluralForms = {};\n\n\t/**\n\t * Effective options for instance, including defaults.\n\t *\n\t * @name Tannin#options\n\t * @type {TanninOptions}\n\t */\n\tthis.options = {};\n\n\tfor ( key in DEFAULT_OPTIONS ) {\n\t\tthis.options[ key ] = options !== undefined && key in options\n\t\t\t? options[ key ]\n\t\t\t: DEFAULT_OPTIONS[ key ];\n\t}\n}\n\n/**\n * Returns the plural form index for the given domain and value.\n *\n * @param {string} domain Domain on which to calculate plural form.\n * @param {number} n Value for which plural form is to be calculated.\n *\n * @return {number} Plural form index.\n */\nTannin.prototype.getPluralForm = function( domain, n ) {\n\tvar getPluralForm = this.pluralForms[ domain ],\n\t\tconfig, plural, pf;\n\n\tif ( ! getPluralForm ) {\n\t\tconfig = this.data[ domain ][ '' ];\n\n\t\tpf = (\n\t\t\tconfig[ 'Plural-Forms' ] ||\n\t\t\tconfig[ 'plural-forms' ] ||\n\t\t\t// Ignore reason: As known, there's no way to document the empty\n\t\t\t// string property on a key to guarantee this as metadata.\n\t\t\t// @ts-ignore\n\t\t\tconfig.plural_forms\n\t\t);\n\n\t\tif ( typeof pf !== 'function' ) {\n\t\t\tplural = getPluralExpression(\n\t\t\t\tconfig[ 'Plural-Forms' ] ||\n\t\t\t\tconfig[ 'plural-forms' ] ||\n\t\t\t\t// Ignore reason: As known, there's no way to document the empty\n\t\t\t\t// string property on a key to guarantee this as metadata.\n\t\t\t\t// @ts-ignore\n\t\t\t\tconfig.plural_forms\n\t\t\t);\n\n\t\t\tpf = pluralForms( plural );\n\t\t}\n\n\t\tgetPluralForm = this.pluralForms[ domain ] = pf;\n\t}\n\n\treturn getPluralForm( n );\n};\n\n/**\n * Translate a string.\n *\n * @param {string} domain Translation domain.\n * @param {string|void} context Context distinguishing terms of the same name.\n * @param {string} singular Primary key for translation lookup.\n * @param {string=} plural Fallback value used for non-zero plural\n * form index.\n * @param {number=} n Value to use in calculating plural form.\n *\n * @return {string} Translated string.\n */\nTannin.prototype.dcnpgettext = function( domain, context, singular, plural, n ) {\n\tvar index, key, entry;\n\n\tif ( n === undefined ) {\n\t\t// Default to singular.\n\t\tindex = 0;\n\t} else {\n\t\t// Find index by evaluating plural form for value.\n\t\tindex = this.getPluralForm( domain, n );\n\t}\n\n\tkey = singular;\n\n\t// If provided, context is prepended to key with delimiter.\n\tif ( context ) {\n\t\tkey = context + this.options.contextDelimiter + singular;\n\t}\n\n\tentry = this.data[ domain ][ key ];\n\n\t// Verify not only that entry exists, but that the intended index is within\n\t// range and non-empty.\n\tif ( entry && entry[ index ] ) {\n\t\treturn entry[ index ];\n\t}\n\n\tif ( this.options.onMissingKey ) {\n\t\tthis.options.onMissingKey( singular, domain );\n\t}\n\n\t// If entry not found, fall back to singular vs. plural with zero index\n\t// representing the singular value.\n\treturn index === 0 ? singular : plural;\n};\n","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\nimport Tannin from 'tannin';\n/**\n * @typedef {Record} LocaleData\n */\n\n/**\n * Default locale data to use for Tannin domain when not otherwise provided.\n * Assumes an English plural forms expression.\n *\n * @type {LocaleData}\n */\n\nvar DEFAULT_LOCALE_DATA = {\n '': {\n /** @param {number} n */\n plural_forms: function plural_forms(n) {\n return n === 1 ? 0 : 1;\n }\n }\n};\n/*\n * Regular expression that matches i18n hooks like `i18n.gettext`, `i18n.ngettext`,\n * `i18n.gettext_domain` or `i18n.ngettext_with_context` or `i18n.has_translation`.\n */\n\nvar I18N_HOOK_REGEXP = /^i18n\\.(n?gettext|has_translation)(_|$)/;\n/**\n * @typedef {(domain?: string) => LocaleData} GetLocaleData\n *\n * Returns locale data by domain in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} SetLocaleData\n *\n * Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} ResetLocaleData\n *\n * Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/** @typedef {() => void} SubscribeCallback */\n\n/** @typedef {() => void} UnsubscribeCallback */\n\n/**\n * @typedef {(callback: SubscribeCallback) => UnsubscribeCallback} Subscribe\n *\n * Subscribes to changes of locale data\n */\n\n/**\n * @typedef {(domain?: string) => string} GetFilterDomain\n * Retrieve the domain to use when calling domain-specific filters.\n */\n\n/**\n * @typedef {(text: string, domain?: string) => string} __\n *\n * Retrieve the translation of text.\n *\n * @see https://developer.wordpress.org/reference/functions/__/\n */\n\n/**\n * @typedef {(text: string, context: string, domain?: string) => string} _x\n *\n * Retrieve translated string with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_x/\n */\n\n/**\n * @typedef {(single: string, plural: string, number: number, domain?: string) => string} _n\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number.\n *\n * @see https://developer.wordpress.org/reference/functions/_n/\n */\n\n/**\n * @typedef {(single: string, plural: string, number: number, context: string, domain?: string) => string} _nx\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_nx/\n */\n\n/**\n * @typedef {() => boolean} IsRtl\n *\n * Check if current locale is RTL.\n *\n * **RTL (Right To Left)** is a locale property indicating that text is written from right to left.\n * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common\n * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages,\n * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`).\n */\n\n/**\n * @typedef {(single: string, context?: string, domain?: string) => boolean} HasTranslation\n *\n * Check if there is a translation for a given string in singular form.\n */\n\n/** @typedef {import('@wordpress/hooks').Hooks} Hooks */\n\n/**\n * An i18n instance\n *\n * @typedef I18n\n * @property {GetLocaleData} getLocaleData Returns locale data by domain in a Jed-formatted JSON object shape.\n * @property {SetLocaleData} setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n * @property {ResetLocaleData} resetLocaleData Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n * @property {Subscribe} subscribe Subscribes to changes of Tannin locale data.\n * @property {__} __ Retrieve the translation of text.\n * @property {_x} _x Retrieve translated string with gettext context.\n * @property {_n} _n Translates and retrieves the singular or plural form based on the supplied\n * number.\n * @property {_nx} _nx Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n * @property {IsRtl} isRTL Check if current locale is RTL.\n * @property {HasTranslation} hasTranslation Check if there is a translation for a given string.\n */\n\n/**\n * Create an i18n instance\n *\n * @param {LocaleData} [initialData] Locale data configuration.\n * @param {string} [initialDomain] Domain for which configuration applies.\n * @param {Hooks} [hooks] Hooks implementation.\n * @return {I18n} I18n instance\n */\n\nexport var createI18n = function createI18n(initialData, initialDomain, hooks) {\n /**\n * The underlying instance of Tannin to which exported functions interface.\n *\n * @type {Tannin}\n */\n var tannin = new Tannin({});\n var listeners = new Set();\n\n var notifyListeners = function notifyListeners() {\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n /**\n * Subscribe to changes of locale data.\n *\n * @param {SubscribeCallback} callback Subscription callback.\n * @return {UnsubscribeCallback} Unsubscribe callback.\n */\n\n\n var subscribe = function subscribe(callback) {\n listeners.add(callback);\n return function () {\n return listeners.delete(callback);\n };\n };\n /** @type {GetLocaleData} */\n\n\n var getLocaleData = function getLocaleData() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n return tannin.data[domain];\n };\n /**\n * @param {LocaleData} [data]\n * @param {string} [domain]\n */\n\n\n var doSetLocaleData = function doSetLocaleData(data) {\n var domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';\n tannin.data[domain] = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA), tannin.data[domain]), data); // Populate default domain configuration (supported locale date which omits\n // a plural forms expression).\n\n tannin.data[domain][''] = _objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA['']), tannin.data[domain]['']);\n };\n /** @type {SetLocaleData} */\n\n\n var setLocaleData = function setLocaleData(data, domain) {\n doSetLocaleData(data, domain);\n notifyListeners();\n };\n /** @type {ResetLocaleData} */\n\n\n var resetLocaleData = function resetLocaleData(data, domain) {\n // Reset all current Tannin locale data.\n tannin.data = {}; // Reset cached plural forms functions cache.\n\n tannin.pluralForms = {};\n setLocaleData(data, domain);\n };\n /**\n * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not\n * otherwise previously assigned.\n *\n * @param {string|undefined} domain Domain to retrieve the translated text.\n * @param {string|undefined} context Context information for the translators.\n * @param {string} single Text to translate if non-plural. Used as\n * fallback return value on a caught error.\n * @param {string} [plural] The text to be used if the number is\n * plural.\n * @param {number} [number] The number to compare against to use\n * either the singular or plural form.\n *\n * @return {string} The translated string.\n */\n\n\n var dcnpgettext = function dcnpgettext() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n var context = arguments.length > 1 ? arguments[1] : undefined;\n var single = arguments.length > 2 ? arguments[2] : undefined;\n var plural = arguments.length > 3 ? arguments[3] : undefined;\n var number = arguments.length > 4 ? arguments[4] : undefined;\n\n if (!tannin.data[domain]) {\n // use `doSetLocaleData` to set silently, without notifying listeners\n doSetLocaleData(undefined, domain);\n }\n\n return tannin.dcnpgettext(domain, context, single, plural, number);\n };\n /** @type {GetFilterDomain} */\n\n\n var getFilterDomain = function getFilterDomain() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n return domain;\n };\n /** @type {__} */\n\n\n var __ = function __(text, domain) {\n var translation = dcnpgettext(domain, undefined, text);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters text with its translation.\n *\n * @param {string} translation Translated text.\n * @param {string} text Text to translate.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext', translation, text, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_' + getFilterDomain(domain), translation, text, domain)\n );\n };\n /** @type {_x} */\n\n\n var _x = function _x(text, context, domain) {\n var translation = dcnpgettext(domain, context, text);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters text with its translation based on context information.\n *\n * @param {string} translation Translated text.\n * @param {string} text Text to translate.\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_with_context', translation, text, context, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_with_context_' + getFilterDomain(domain), translation, text, context, domain)\n );\n };\n /** @type {_n} */\n\n\n var _n = function _n(single, plural, number, domain) {\n var translation = dcnpgettext(domain, undefined, single, plural, number);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters the singular or plural form of a string.\n *\n * @param {string} translation Translated text.\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {string} number The number to compare against to use either the singular or plural form.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext', translation, single, plural, number, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_' + getFilterDomain(domain), translation, single, plural, number, domain)\n );\n };\n /** @type {_nx} */\n\n\n var _nx = function _nx(single, plural, number, context, domain) {\n var translation = dcnpgettext(domain, context, single, plural, number);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters the singular or plural form of a string with gettext context.\n *\n * @param {string} translation Translated text.\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {string} number The number to compare against to use either the singular or plural form.\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_with_context', translation, single, plural, number, context, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_with_context_' + getFilterDomain(domain), translation, single, plural, number, context, domain)\n );\n };\n /** @type {IsRtl} */\n\n\n var isRTL = function isRTL() {\n return 'rtl' === _x('ltr', 'text direction');\n };\n /** @type {HasTranslation} */\n\n\n var hasTranslation = function hasTranslation(single, context, domain) {\n var _tannin$data, _tannin$data2;\n\n var key = context ? context + \"\\x04\" + single : single;\n var result = !!((_tannin$data = tannin.data) !== null && _tannin$data !== void 0 && (_tannin$data2 = _tannin$data[domain !== null && domain !== void 0 ? domain : 'default']) !== null && _tannin$data2 !== void 0 && _tannin$data2[key]);\n\n if (hooks) {\n /**\n * Filters the presence of a translation in the locale data.\n *\n * @param {boolean} hasTranslation Whether the translation is present or not..\n * @param {string} single The singular form of the translated text (used as key in locale data)\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n result =\n /** @type { boolean } */\n\n /** @type {*} */\n hooks.applyFilters('i18n.has_translation', result, single, context, domain);\n result =\n /** @type { boolean } */\n\n /** @type {*} */\n hooks.applyFilters('i18n.has_translation_' + getFilterDomain(domain), result, single, context, domain);\n }\n\n return result;\n };\n\n if (initialData) {\n setLocaleData(initialData, initialDomain);\n }\n\n if (hooks) {\n /**\n * @param {string} hookName\n */\n var onHookAddedOrRemoved = function onHookAddedOrRemoved(hookName) {\n if (I18N_HOOK_REGEXP.test(hookName)) {\n notifyListeners();\n }\n };\n\n hooks.addAction('hookAdded', 'core/i18n', onHookAddedOrRemoved);\n hooks.addAction('hookRemoved', 'core/i18n', onHookAddedOrRemoved);\n }\n\n return {\n getLocaleData: getLocaleData,\n setLocaleData: setLocaleData,\n resetLocaleData: resetLocaleData,\n subscribe: subscribe,\n __: __,\n _x: _x,\n _n: _n,\n _nx: _nx,\n isRTL: isRTL,\n hasTranslation: hasTranslation\n };\n};\n//# sourceMappingURL=create-i18n.js.map","import compile from '@tannin/compile';\n\n/**\n * Given a C expression, returns a function which, when called with a value,\n * evaluates the result with the value assumed to be the \"n\" variable of the\n * expression. The result will be coerced to its numeric equivalent.\n *\n * @param {string} expression C expression.\n *\n * @return {Function} Evaluator function.\n */\nexport default function pluralForms( expression ) {\n\tvar evaluate = compile( expression );\n\n\treturn function( n ) {\n\t\treturn +evaluate( { n: n } );\n\t};\n}\n","import postfix from '@tannin/postfix';\nimport evaluate from '@tannin/evaluate';\n\n/**\n * Given a C expression, returns a function which can be called to evaluate its\n * result.\n *\n * @example\n *\n * ```js\n * import compile from '@tannin/compile';\n *\n * const evaluate = compile( 'n > 1' );\n *\n * evaluate( { n: 2 } );\n * // ⇒ true\n * ```\n *\n * @param {string} expression C expression.\n *\n * @return {(variables?:{[variable:string]:*})=>*} Compiled evaluator.\n */\nexport default function compile( expression ) {\n\tvar terms = postfix( expression );\n\n\treturn function( variables ) {\n\t\treturn evaluate( terms, variables );\n\t};\n}\n","/**\n * Validate a namespace string.\n *\n * @param {string} namespace The namespace to validate - should take the form\n * `vendor/plugin/function`.\n *\n * @return {boolean} Whether the namespace is valid.\n */\nfunction validateNamespace(namespace) {\n if ('string' !== typeof namespace || '' === namespace) {\n // eslint-disable-next-line no-console\n console.error('The namespace must be a non-empty string.');\n return false;\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_.\\-\\/]*$/.test(namespace)) {\n // eslint-disable-next-line no-console\n console.error('The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.');\n return false;\n }\n\n return true;\n}\n\nexport default validateNamespace;\n//# sourceMappingURL=validateNamespace.js.map","/**\n * Validate a hookName string.\n *\n * @param {string} hookName The hook name to validate. Should be a non empty string containing\n * only numbers, letters, dashes, periods and underscores. Also,\n * the hook name cannot begin with `__`.\n *\n * @return {boolean} Whether the hook name is valid.\n */\nfunction validateHookName(hookName) {\n if ('string' !== typeof hookName || '' === hookName) {\n // eslint-disable-next-line no-console\n console.error('The hook name must be a non-empty string.');\n return false;\n }\n\n if (/^__/.test(hookName)) {\n // eslint-disable-next-line no-console\n console.error('The hook name cannot begin with `__`.');\n return false;\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)) {\n // eslint-disable-next-line no-console\n console.error('The hook name can only contain numbers, letters, dashes, periods and underscores.');\n return false;\n }\n\n return true;\n}\n\nexport default validateHookName;\n//# sourceMappingURL=validateHookName.js.map","/**\n * Internal dependencies\n */\nimport validateNamespace from './validateNamespace.js';\nimport validateHookName from './validateHookName.js';\n/**\n * @callback AddHook\n *\n * Adds the hook to the appropriate hooks container.\n *\n * @param {string} hookName Name of hook to add\n * @param {string} namespace The unique namespace identifying the callback in the form `vendor/plugin/function`.\n * @param {import('.').Callback} callback Function to call when the hook is run\n * @param {number} [priority=10] Priority of this hook\n */\n\n/**\n * Returns a function which, when invoked, will add a hook.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {AddHook} Function that adds a new hook.\n */\n\nfunction createAddHook(hooks, storeKey) {\n return function addHook(hookName, namespace, callback) {\n var priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10;\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n if (!validateNamespace(namespace)) {\n return;\n }\n\n if ('function' !== typeof callback) {\n // eslint-disable-next-line no-console\n console.error('The hook callback must be a function.');\n return;\n } // Validate numeric priority\n\n\n if ('number' !== typeof priority) {\n // eslint-disable-next-line no-console\n console.error('If specified, the hook priority must be a number.');\n return;\n }\n\n var handler = {\n callback: callback,\n priority: priority,\n namespace: namespace\n };\n\n if (hooksStore[hookName]) {\n // Find the correct insert index of the new hook.\n var handlers = hooksStore[hookName].handlers;\n /** @type {number} */\n\n var i;\n\n for (i = handlers.length; i > 0; i--) {\n if (priority >= handlers[i - 1].priority) {\n break;\n }\n }\n\n if (i === handlers.length) {\n // If append, operate via direct assignment.\n handlers[i] = handler;\n } else {\n // Otherwise, insert before index via splice.\n handlers.splice(i, 0, handler);\n } // We may also be currently executing this hook. If the callback\n // we're adding would come after the current callback, there's no\n // problem; otherwise we need to increase the execution index of\n // any other runs by 1 to account for the added element.\n\n\n hooksStore.__current.forEach(function (hookInfo) {\n if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {\n hookInfo.currentIndex++;\n }\n });\n } else {\n // This is the first hook of its type.\n hooksStore[hookName] = {\n handlers: [handler],\n runs: 0\n };\n }\n\n if (hookName !== 'hookAdded') {\n hooks.doAction('hookAdded', hookName, namespace, callback, priority);\n }\n };\n}\n\nexport default createAddHook;\n//# sourceMappingURL=createAddHook.js.map","/**\n * Internal dependencies\n */\nimport validateNamespace from './validateNamespace.js';\nimport validateHookName from './validateHookName.js';\n/**\n * @callback RemoveHook\n * Removes the specified callback (or all callbacks) from the hook with a given hookName\n * and namespace.\n *\n * @param {string} hookName The name of the hook to modify.\n * @param {string} namespace The unique namespace identifying the callback in the\n * form `vendor/plugin/function`.\n *\n * @return {number | undefined} The number of callbacks removed.\n */\n\n/**\n * Returns a function which, when invoked, will remove a specified hook or all\n * hooks by the given name.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n * @param {boolean} [removeAll=false] Whether to remove all callbacks for a hookName,\n * without regard to namespace. Used to create\n * `removeAll*` functions.\n *\n * @return {RemoveHook} Function that removes hooks.\n */\n\nfunction createRemoveHook(hooks, storeKey) {\n var removeAll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return function removeHook(hookName, namespace) {\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n if (!removeAll && !validateNamespace(namespace)) {\n return;\n } // Bail if no hooks exist by this name\n\n\n if (!hooksStore[hookName]) {\n return 0;\n }\n\n var handlersRemoved = 0;\n\n if (removeAll) {\n handlersRemoved = hooksStore[hookName].handlers.length;\n hooksStore[hookName] = {\n runs: hooksStore[hookName].runs,\n handlers: []\n };\n } else {\n // Try to find the specified callback to remove.\n var handlers = hooksStore[hookName].handlers;\n\n var _loop = function _loop(i) {\n if (handlers[i].namespace === namespace) {\n handlers.splice(i, 1);\n handlersRemoved++; // This callback may also be part of a hook that is\n // currently executing. If the callback we're removing\n // comes after the current callback, there's no problem;\n // otherwise we need to decrease the execution index of any\n // other runs by 1 to account for the removed element.\n\n hooksStore.__current.forEach(function (hookInfo) {\n if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {\n hookInfo.currentIndex--;\n }\n });\n }\n };\n\n for (var i = handlers.length - 1; i >= 0; i--) {\n _loop(i);\n }\n }\n\n if (hookName !== 'hookRemoved') {\n hooks.doAction('hookRemoved', hookName, namespace);\n }\n\n return handlersRemoved;\n };\n}\n\nexport default createRemoveHook;\n//# sourceMappingURL=createRemoveHook.js.map","/**\n * @callback HasHook\n *\n * Returns whether any handlers are attached for the given hookName and optional namespace.\n *\n * @param {string} hookName The name of the hook to check for.\n * @param {string} [namespace] Optional. The unique namespace identifying the callback\n * in the form `vendor/plugin/function`.\n *\n * @return {boolean} Whether there are handlers that are attached to the given hook.\n */\n\n/**\n * Returns a function which, when invoked, will return whether any handlers are\n * attached to a particular hook.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {HasHook} Function that returns whether any handlers are\n * attached to a particular hook and optional namespace.\n */\nfunction createHasHook(hooks, storeKey) {\n return function hasHook(hookName, namespace) {\n var hooksStore = hooks[storeKey]; // Use the namespace if provided.\n\n if ('undefined' !== typeof namespace) {\n return hookName in hooksStore && hooksStore[hookName].handlers.some(function (hook) {\n return hook.namespace === namespace;\n });\n }\n\n return hookName in hooksStore;\n };\n}\n\nexport default createHasHook;\n//# sourceMappingURL=createHasHook.js.map","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\n\n/**\n * Returns a function which, when invoked, will execute all callbacks\n * registered to a hook of the specified type, optionally returning the final\n * value of the call chain.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n * @param {boolean} [returnFirstArg=false] Whether each hook callback is expected to\n * return its first argument.\n *\n * @return {(hookName:string, ...args: unknown[]) => unknown} Function that runs hook callbacks.\n */\nfunction createRunHook(hooks, storeKey) {\n var returnFirstArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return function runHooks(hookName) {\n var hooksStore = hooks[storeKey];\n\n if (!hooksStore[hookName]) {\n hooksStore[hookName] = {\n handlers: [],\n runs: 0\n };\n }\n\n hooksStore[hookName].runs++;\n var handlers = hooksStore[hookName].handlers; // The following code is stripped from production builds.\n\n if ('production' !== process.env.NODE_ENV) {\n // Handle any 'all' hooks registered.\n if ('hookAdded' !== hookName && hooksStore.all) {\n handlers.push.apply(handlers, _toConsumableArray(hooksStore.all.handlers));\n }\n }\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (!handlers || !handlers.length) {\n return returnFirstArg ? args[0] : undefined;\n }\n\n var hookInfo = {\n name: hookName,\n currentIndex: 0\n };\n\n hooksStore.__current.push(hookInfo);\n\n while (hookInfo.currentIndex < handlers.length) {\n var handler = handlers[hookInfo.currentIndex];\n var result = handler.callback.apply(null, args);\n\n if (returnFirstArg) {\n args[0] = result;\n }\n\n hookInfo.currentIndex++;\n }\n\n hooksStore.__current.pop();\n\n if (returnFirstArg) {\n return args[0];\n }\n };\n}\n\nexport default createRunHook;\n//# sourceMappingURL=createRunHook.js.map","/**\n * Returns a function which, when invoked, will return the name of the\n * currently running hook, or `null` if no hook of the given type is currently\n * running.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {() => string | null} Function that returns the current hook name or null.\n */\nfunction createCurrentHook(hooks, storeKey) {\n return function currentHook() {\n var _hooksStore$__current, _hooksStore$__current2;\n\n var hooksStore = hooks[storeKey];\n return (_hooksStore$__current = (_hooksStore$__current2 = hooksStore.__current[hooksStore.__current.length - 1]) === null || _hooksStore$__current2 === void 0 ? void 0 : _hooksStore$__current2.name) !== null && _hooksStore$__current !== void 0 ? _hooksStore$__current : null;\n };\n}\n\nexport default createCurrentHook;\n//# sourceMappingURL=createCurrentHook.js.map","/**\n * @callback DoingHook\n * Returns whether a hook is currently being executed.\n *\n * @param {string} [hookName] The name of the hook to check for. If\n * omitted, will check for any hook being executed.\n *\n * @return {boolean} Whether the hook is being executed.\n */\n\n/**\n * Returns a function which, when invoked, will return whether a hook is\n * currently being executed.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {DoingHook} Function that returns whether a hook is currently\n * being executed.\n */\nfunction createDoingHook(hooks, storeKey) {\n return function doingHook(hookName) {\n var hooksStore = hooks[storeKey]; // If the hookName was not passed, check for any current hook.\n\n if ('undefined' === typeof hookName) {\n return 'undefined' !== typeof hooksStore.__current[0];\n } // Return the __current hook.\n\n\n return hooksStore.__current[0] ? hookName === hooksStore.__current[0].name : false;\n };\n}\n\nexport default createDoingHook;\n//# sourceMappingURL=createDoingHook.js.map","/**\n * Internal dependencies\n */\nimport validateHookName from './validateHookName.js';\n/**\n * @callback DidHook\n *\n * Returns the number of times an action has been fired.\n *\n * @param {string} hookName The hook name to check.\n *\n * @return {number | undefined} The number of times the hook has run.\n */\n\n/**\n * Returns a function which, when invoked, will return the number of times a\n * hook has been called.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {DidHook} Function that returns a hook's call count.\n */\n\nfunction createDidHook(hooks, storeKey) {\n return function didHook(hookName) {\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n return hooksStore[hookName] && hooksStore[hookName].runs ? hooksStore[hookName].runs : 0;\n };\n}\n\nexport default createDidHook;\n//# sourceMappingURL=createDidHook.js.map","/**\n * Internal dependencies\n */\nimport createHooks from './createHooks';\n/** @typedef {(...args: any[])=>any} Callback */\n\n/**\n * @typedef Handler\n * @property {Callback} callback The callback\n * @property {string} namespace The namespace\n * @property {number} priority The namespace\n */\n\n/**\n * @typedef Hook\n * @property {Handler[]} handlers Array of handlers\n * @property {number} runs Run counter\n */\n\n/**\n * @typedef Current\n * @property {string} name Hook name\n * @property {number} currentIndex The index\n */\n\n/**\n * @typedef {Record & {__current: Current[]}} Store\n */\n\n/**\n * @typedef {'actions' | 'filters'} StoreKey\n */\n\n/**\n * @typedef {import('./createHooks').Hooks} Hooks\n */\n\nexport var defaultHooks = createHooks();\nvar addAction = defaultHooks.addAction,\n addFilter = defaultHooks.addFilter,\n removeAction = defaultHooks.removeAction,\n removeFilter = defaultHooks.removeFilter,\n hasAction = defaultHooks.hasAction,\n hasFilter = defaultHooks.hasFilter,\n removeAllActions = defaultHooks.removeAllActions,\n removeAllFilters = defaultHooks.removeAllFilters,\n doAction = defaultHooks.doAction,\n applyFilters = defaultHooks.applyFilters,\n currentAction = defaultHooks.currentAction,\n currentFilter = defaultHooks.currentFilter,\n doingAction = defaultHooks.doingAction,\n doingFilter = defaultHooks.doingFilter,\n didAction = defaultHooks.didAction,\n didFilter = defaultHooks.didFilter,\n actions = defaultHooks.actions,\n filters = defaultHooks.filters;\nexport { createHooks, addAction, addFilter, removeAction, removeFilter, hasAction, hasFilter, removeAllActions, removeAllFilters, doAction, applyFilters, currentAction, currentFilter, doingAction, doingFilter, didAction, didFilter, actions, filters };\n//# sourceMappingURL=index.js.map","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\n\n/**\n * Internal dependencies\n */\nimport createAddHook from './createAddHook';\nimport createRemoveHook from './createRemoveHook';\nimport createHasHook from './createHasHook';\nimport createRunHook from './createRunHook';\nimport createCurrentHook from './createCurrentHook';\nimport createDoingHook from './createDoingHook';\nimport createDidHook from './createDidHook';\n/**\n * Internal class for constructing hooks. Use `createHooks()` function\n *\n * Note, it is necessary to expose this class to make its type public.\n *\n * @private\n */\n\nexport var _Hooks = function _Hooks() {\n _classCallCheck(this, _Hooks);\n\n /** @type {import('.').Store} actions */\n this.actions = Object.create(null);\n this.actions.__current = [];\n /** @type {import('.').Store} filters */\n\n this.filters = Object.create(null);\n this.filters.__current = [];\n this.addAction = createAddHook(this, 'actions');\n this.addFilter = createAddHook(this, 'filters');\n this.removeAction = createRemoveHook(this, 'actions');\n this.removeFilter = createRemoveHook(this, 'filters');\n this.hasAction = createHasHook(this, 'actions');\n this.hasFilter = createHasHook(this, 'filters');\n this.removeAllActions = createRemoveHook(this, 'actions', true);\n this.removeAllFilters = createRemoveHook(this, 'filters', true);\n this.doAction = createRunHook(this, 'actions');\n this.applyFilters = createRunHook(this, 'filters', true);\n this.currentAction = createCurrentHook(this, 'actions');\n this.currentFilter = createCurrentHook(this, 'filters');\n this.doingAction = createDoingHook(this, 'actions');\n this.doingFilter = createDoingHook(this, 'filters');\n this.didAction = createDidHook(this, 'actions');\n this.didFilter = createDidHook(this, 'filters');\n};\n/** @typedef {_Hooks} Hooks */\n\n/**\n * Returns an instance of the hooks object.\n *\n * @return {Hooks} A Hooks instance.\n */\n\nfunction createHooks() {\n return new _Hooks();\n}\n\nexport default createHooks;\n//# sourceMappingURL=createHooks.js.map","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","/**\n * Internal dependencies\n */\nimport { createI18n } from './create-i18n';\n/**\n * WordPress dependencies\n */\n\nimport { defaultHooks } from '@wordpress/hooks';\nvar i18n = createI18n(undefined, undefined, defaultHooks);\n/**\n * Default, singleton instance of `I18n`.\n */\n\nexport default i18n;\n/*\n * Comments in this file are duplicated from ./i18n due to\n * https://github.com/WordPress/gutenberg/pull/20318#issuecomment-590837722\n */\n\n/**\n * @typedef {import('./create-i18n').LocaleData} LocaleData\n * @typedef {import('./create-i18n').SubscribeCallback} SubscribeCallback\n * @typedef {import('./create-i18n').UnsubscribeCallback} UnsubscribeCallback\n */\n\n/**\n * Returns locale data by domain in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {string} [domain] Domain for which to get the data.\n * @return {LocaleData} Locale data.\n */\n\nexport var getLocaleData = i18n.getLocaleData.bind(i18n);\n/**\n * Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {LocaleData} [data] Locale data configuration.\n * @param {string} [domain] Domain for which configuration applies.\n */\n\nexport var setLocaleData = i18n.setLocaleData.bind(i18n);\n/**\n * Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {LocaleData} [data] Locale data configuration.\n * @param {string} [domain] Domain for which configuration applies.\n */\n\nexport var resetLocaleData = i18n.resetLocaleData.bind(i18n);\n/**\n * Subscribes to changes of locale data\n *\n * @param {SubscribeCallback} callback Subscription callback\n * @return {UnsubscribeCallback} Unsubscribe callback\n */\n\nexport var subscribe = i18n.subscribe.bind(i18n);\n/**\n * Retrieve the translation of text.\n *\n * @see https://developer.wordpress.org/reference/functions/__/\n *\n * @param {string} text Text to translate.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} Translated text.\n */\n\nexport var __ = i18n.__.bind(i18n);\n/**\n * Retrieve translated string with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_x/\n *\n * @param {string} text Text to translate.\n * @param {string} context Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} Translated context string without pipe.\n */\n\nexport var _x = i18n._x.bind(i18n);\n/**\n * Translates and retrieves the singular or plural form based on the supplied\n * number.\n *\n * @see https://developer.wordpress.org/reference/functions/_n/\n *\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {number} number The number to compare against to use either the\n * singular or plural form.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} The translated singular or plural form.\n */\n\nexport var _n = i18n._n.bind(i18n);\n/**\n * Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_nx/\n *\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {number} number The number to compare against to use either the\n * singular or plural form.\n * @param {string} context Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} The translated singular or plural form.\n */\n\nexport var _nx = i18n._nx.bind(i18n);\n/**\n * Check if current locale is RTL.\n *\n * **RTL (Right To Left)** is a locale property indicating that text is written from right to left.\n * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common\n * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages,\n * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`).\n *\n * @return {boolean} Whether locale is RTL.\n */\n\nexport var isRTL = i18n.isRTL.bind(i18n);\n/**\n * Check if there is a translation for a given string (in singular form).\n *\n * @param {string} single Singular form of the string to look up.\n * @param {string} [context] Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n * @return {boolean} Whether the translation exists or not.\n */\n\nexport var hasTranslation = i18n.hasTranslation.bind(i18n);\n//# sourceMappingURL=default-i18n.js.map","/**\n * Event keyCode values mapped to a key name.\n */\nconst keyCodes = Object.freeze({\n TAB: 9,\n RETURN: 13,\n ESC: 27,\n SPACE: 32,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n});\n\nexport default keyCodes;\n","/**\n * Collect all interactive child elements.\n *\n * @param {HTMLElement} target The element in which to search for interactive children.\n *\n * @return {Array}\n */\nexport default function interactiveChildren(target) {\n // List of possible active child element selectors\n const selectors = [\n 'a[href]:not([aria-hidden=\"true\"])',\n 'area[href]',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'button:not([disabled])',\n 'iframe',\n 'object',\n 'embed',\n '[contenteditable]',\n '[tabindex]:not([tabindex^=\"-\"])',\n ].join(',');\n\n const interactiveElements = target.querySelectorAll(selectors);\n\n return Array.prototype.slice.call(interactiveElements);\n}\n","import keyCodes from './lib/keyCodes';\nimport interactiveChildren from './lib/interactiveChildren';\n\n/**\n * Sets up a controller-target relationship with appropriate aria-attributes and event handling.\n *\n * @param {Object} config {\n * And object denoting the Popup's controller and target elements\n *\n * @type {HTMLElement} controller The controlling element.\n * @type {HTMLElement} target The target popup element.\n * }\n */\nexport default class Popup {\n /**\n * Start the component\n */\n constructor(config) {\n /**\n * The default string description for this object.\n *\n * @type {string}\n */\n this.stringDescription = 'Popup';\n\n // Save references to the controller and target.\n Object.assign(this, config);\n\n /**\n * The target element's interactive child elements.\n * @type {Array}\n */\n this.interactiveChildElements = interactiveChildren(this.target);\n\n // Collect first and last interactive child elements from target.\n if (0 < this.interactiveChildElements.length) {\n const [firstItem] = this.interactiveChildElements;\n this.firstItem = firstItem;\n this.lastItem = (\n this.interactiveChildElements[this.interactiveChildElements.length - 1]\n );\n }\n\n // Intial state.\n this.state = {\n expanded: false,\n };\n\n // Bind class methods.\n this.setup = this.setup.bind(this);\n this.destroy = this.destroy.bind(this);\n this.manageExpandedState = this.manageExpandedState.bind(this);\n this.setExpandedState = this.setExpandedState.bind(this);\n this.controllerKeyDownHandler = this.controllerKeyDownHandler.bind(this);\n this.targetKeyDownHandler = this.targetKeyDownHandler.bind(this);\n this.closeOnTabOut = this.closeOnTabOut.bind(this);\n this.closeOnOutsideClick = this.closeOnOutsideClick.bind(this);\n\n this.setup();\n }\n\n /**\n * Expand or collapse the popup\n *\n * @param {Boolean} expand The expected `expanded` state.\n */\n setExpandedState(expand) {\n this.controller.setAttribute('aria-expanded', `${expand}`);\n this.target.setAttribute('aria-hidden', `${! expand}`);\n this.interactiveChildElements.forEach((element) => {\n element.setAttribute('tabindex', expand ? '0' : '-1');\n });\n\n this.state.expanded = expand;\n }\n\n /**\n * Get the string description for this object.\n * E.x., Popup.toString() === '[object Popup]'\n *\n * @return {string}\n */\n get [Symbol.toStringTag]() {\n return this.stringDescription;\n }\n\n /**\n * Add initial attributes, establish relationships, and listen for events\n */\n setup() {\n const { expanded } = this.state;\n\n // Add a reference to the class instance\n this.controller.popup = this;\n this.target.popup = this;\n\n // Add controller attributes\n this.controller.setAttribute('aria-haspopup', 'menu');\n this.controller.setAttribute('aria-expanded', `${expanded}`);\n this.controller.setAttribute('aria-controls', this.target.id);\n\n // If the markup is disconnected, establish a relationship.\n if (this.target !== this.controller.nextElementSibling) {\n this.controller.setAttribute('aria-owns', this.target.id);\n }\n\n // Add target attributes\n this.target.setAttribute('aria-hidden', `${! expanded}`);\n this.interactiveChildElements.forEach((element) => {\n element.setAttribute('tabindex', expanded ? '0' : '-1');\n });\n\n // Add event listeners\n this.controller.addEventListener('click', this.manageExpandedState);\n this.controller.addEventListener('keydown', this.controllerKeyDownHandler);\n this.target.addEventListener('keydown', this.targetKeyDownHandler);\n document.body.addEventListener('click', this.closeOnOutsideClick);\n }\n\n /**\n * Remove all ARIA attributes added by this class.\n */\n destroy() {\n // Add a reference to the class instance\n this.controller.popup = null;\n this.target.popup = null;\n\n // Remove controller attributes\n this.controller.removeAttribute('aria-haspopup');\n this.controller.removeAttribute('aria-expanded');\n this.controller.removeAttribute('aria-controls');\n\n if (this.target !== this.controller.nextElementSibling) {\n this.controller.removeAttribute('aria-owns');\n }\n\n // Remove target attributes\n this.target.removeAttribute('aria-hidden');\n\n // Remove event listeners.\n this.controller.removeEventListener('click', this.manageExpandedState);\n this.controller.removeEventListener(\n 'keydown',\n this.controllerKeyDownHandler,\n );\n this.target.removeEventListener('keydown', this.targetKeyDownHandler);\n document.body.removeEventListener('click', this.closeOnOutsideClick);\n\n // Reset initial state.\n this.state = {\n expanded: false,\n };\n }\n\n /**\n * Handle keydown events on the popup controller.\n *\n * @param {Object} event The event object.\n */\n controllerKeyDownHandler(event) {\n const { expanded } = this.state;\n\n if (expanded) {\n const { ESC, TAB } = keyCodes;\n const { keyCode } = event;\n\n if (ESC === keyCode) {\n // Close the popup.\n event.stopPropagation();\n event.preventDefault();\n\n this.setExpandedState(false);\n } else if (TAB === keyCode) {\n // Move to the first interactive child.\n event.preventDefault();\n\n this.firstItem.focus();\n }\n }\n }\n\n /**\n * Handle keydown events on the popup target.\n *\n * @param {Object} event The event object.\n */\n targetKeyDownHandler(event) {\n const { ESC, TAB } = keyCodes;\n const { keyCode } = event;\n const { expanded } = this.state;\n const { activeElement } = document;\n\n if (ESC === keyCode && expanded) {\n // Close the popup.\n event.stopPropagation();\n event.preventDefault();\n\n this.setExpandedState(false);\n this.controller.focus();\n } else if (TAB === keyCode) {\n if (\n event.shiftKey\n && (this.firstItem === activeElement || this.target === activeElement)\n ) {\n // Tab back from the first interactive child to the controller.\n event.preventDefault();\n this.controller.focus();\n } else if (this.lastChild === activeElement) {\n // Close the popup when tabbing from the last child.\n // TODO: Is this correct behavior?\n this.setExpandedState(false);\n }\n }\n }\n\n /**\n * Manage the popup state.\n *\n * @param {Object} event The event object.\n */\n manageExpandedState(event) {\n event.preventDefault();\n\n if (this.state.expanded) {\n this.setExpandedState(false);\n } else {\n this.setExpandedState(true);\n }\n }\n\n /**\n * Tab from the last item and close the menu.\n *\n * @param {Object} event The event object.\n */\n closeOnTabOut(event) {\n const { TAB } = keyCodes;\n\n if (TAB === event.keyCode && ! event.shiftKey && this.state.expanded) {\n this.setExpandedState(false);\n }\n }\n\n /**\n * Close the popup when clicking anywhere outside.\n *\n * @param {Object} event The event object.\n */\n closeOnOutsideClick(event) {\n if (\n this.state.expanded\n && event.target !== this.controller\n && ! this.target.contains(event.target)\n ) {\n this.setExpandedState(false);\n }\n }\n}\n","import keyCodes from './lib/keyCodes';\n\n/**\n * MenuItem class for managing menu items' keyboard interactions.\n *\n * @param {HTMLElement} list The list to manage.\n */\nexport default class MenuItem {\n /**\n * Test for a list as the next sibling element.\n *\n * @param {HTMLElement} element The element for which we're looking for a sibling.\n *\n * @return {HTMLElement|Boolean}\n */\n static nextElementIsUl(element) {\n const next = element.nextElementSibling;\n return (null !== next && 'UL' === next.nodeName) ? next : false;\n }\n\n /**\n * Start the component\n */\n constructor(list) {\n /**\n * The default string description for this object.\n *\n * @type {string}\n */\n this.stringDescription = 'MenuItem';\n\n /**\n * The list to manage\n * @type {HTMLElement}\n */\n this.list = list;\n\n // Save a reference to the MenuItem instance on the list item.\n Object.assign(list, { menuItem: this });\n\n /**\n * The list's child elements.\n * @type {Array}\n */\n this.listItems = Array.prototype.slice.call(list.children);\n\n // Bind class methods\n this.handleListKeydown = this.handleListKeydown.bind(this);\n this.destroy = this.destroy.bind(this);\n\n this.init();\n }\n\n /**\n * Get the string description for this object.\n * E.x., MenuItem.toString() === '[object MenuItem]'\n *\n * @return {string}\n */\n get [Symbol.toStringTag]() {\n return this.stringDescription;\n }\n\n /**\n * Collect menu links and recursively instantiate sublist menu items.\n */\n init() {\n // Collect menu items.\n this.menuItems = this.listItems.reduce((acc, item) => {\n const itemLink = item.firstElementChild;\n\n if (null !== itemLink && 'A' === itemLink.nodeName) {\n return [...acc, itemLink];\n }\n\n return acc;\n }, []);\n\n /**\n * The number of menu items.\n * @type {Number}\n */\n this.menuItemsLength = this.menuItems.length;\n\n // Set menu item link attributes and event listeners.\n this.list.setAttribute('role', 'menu');\n this.menuItems.forEach((link, index) => {\n link.parentElement.setAttribute('role', 'presentation');\n\n // Add size and position attributes.\n link.setAttribute('role', 'menuitem');\n link.setAttribute('aria-setsize', this.menuItemsLength);\n link.setAttribute('aria-posinset', index + 1);\n\n link.addEventListener('keydown', this.handleListKeydown);\n\n const siblingList = this.constructor.nextElementIsUl(link);\n if (siblingList) {\n const subList = new MenuItem(siblingList);\n // Save the list's previous sibling.\n subList.previousSibling = link;\n }\n });\n\n // Save the menu's first and last items.\n [this.firstItem] = this.menuItems;\n this.lastItem = this.menuItems[this.menuItemsLength - 1];\n }\n\n /**\n * Handle keydown events on menu items.\n *\n * @param {Object} event The event object.\n */\n handleListKeydown(event) {\n const { keyCode } = event;\n const {\n UP,\n DOWN,\n LEFT,\n RIGHT,\n } = keyCodes;\n const { activeElement } = document;\n const activeDescendant = (this.list.contains(activeElement)\n ? activeElement\n : this.menuItems[0]);\n const menuLastIndex = this.menuItems.length - 1;\n const activeIndex = this.menuItems.indexOf(activeDescendant);\n\n if ([UP, DOWN].includes(keyCode)) {\n // Move through sibling list items.\n event.stopPropagation();\n event.preventDefault();\n\n // Determine the direction.\n let nextIndex = (keyCode === UP)\n ? activeIndex - 1\n : activeIndex + 1;\n\n // Move to the end if we're moving to the previous child from the first child.\n if (UP === keyCode && 0 > nextIndex) {\n nextIndex = menuLastIndex;\n }\n\n // Move to first child if we're at the end.\n if (DOWN === keyCode && menuLastIndex < nextIndex) {\n nextIndex = 0;\n }\n\n this.menuItems[nextIndex].focus();\n } else if (RIGHT === keyCode) {\n // Drill down into a nested list, if present.\n const siblingElement = this.constructor.nextElementIsUl(activeDescendant);\n\n if (\n siblingElement\n && Object.hasOwnProperty.call(siblingElement, 'menuItem')\n ) {\n event.stopPropagation();\n event.preventDefault();\n\n const { menuItem } = siblingElement;\n menuItem.firstItem.focus();\n }\n } else if (LEFT === keyCode) {\n // Move up to the list's previous sibling, if present.\n if (undefined !== this.previousSibling) {\n event.stopPropagation();\n event.preventDefault();\n\n // Close the popup if it exists and is exapnded.\n if ('[object Popup]' === this.previousSibling?.popup?.toString()) {\n event.stopPropagation();\n event.preventDefault();\n\n const { popup } = this.previousSibling;\n if (popup.state.expanded) {\n popup.setExpandedState(false);\n }\n }\n\n this.previousSibling.focus();\n }\n }\n }\n\n /**\n * Destroy the MenuItem (recursively)\n */\n destroy() {\n if (undefined !== this.list.menuItem) {\n // Set the menuItem property to null\n this.list.menuItem = null;\n\n this.list.removeAttribute('role');\n\n this.menuItems.forEach((link) => {\n link.parentElement.removeAttribute('role');\n\n // Remove size and position attributes.\n link.removeAttribute('role');\n link.removeAttribute('aria-setsize');\n link.removeAttribute('aria-posinset');\n\n link.removeEventListener('keydown', this.handleListKeydown);\n\n // Destroy nested MenuItems.\n const siblingList = this.constructor.nextElementIsUl(link);\n if (\n siblingList\n && undefined !== siblingList.menuItem\n && '[object MenuItem]' === siblingList?.menuItem?.toString()\n ) {\n siblingList.menuItem.destroy();\n }\n });\n }\n }\n}\n","/**\n * Create an array from a value.\n *\n * @param {Mixed} maybeAnArray And HTMLElement, NodeList, or Array of elements.\n */\nfunction toArray(maybeAnArray) {\n if (Array.isArray(maybeAnArray)) {\n return maybeAnArray;\n }\n\n let shouldBeAnArray = [];\n\n if (maybeAnArray instanceof HTMLElement) {\n // Convert element(s) to an Array.\n shouldBeAnArray = new Array(maybeAnArray);\n } else if (maybeAnArray instanceof NodeList) {\n // Array.from(maybeAnArray);\n shouldBeAnArray = Array.prototype.slice.call(maybeAnArray, 0);\n }\n\n return shouldBeAnArray;\n}\n\n/**\n * Remove the tabIndex attribute from all elements.\n *\n * @param {Mixed} items And HTMLElement, NodeList, or Array of elements.\n */\nfunction tabIndexAllow(items) {\n const allowedElements = Array.isArray(items) ? items : toArray(items);\n\n allowedElements.forEach((item) => {\n item.removeAttribute('tabindex');\n });\n}\n\n/**\n * Add a negative tabIndex attribute to all elements.\n *\n * @param {Mixed} items And HTMLElement, NodeList, or Array of elements.\n */\nfunction tabIndexDeny(items) {\n const deniedElements = Array.isArray(items) ? items : toArray(items);\n\n deniedElements.forEach((item) => {\n item.setAttribute('tabindex', '-1');\n });\n}\n\n/**\n * Manage items' tabindex.\n *\n * @param {NodeList|Array} items The items whose tabindex may need updating.\n * @param {HTMLElement|NodeList|Array} allow The item to which we'll allow tabbing.\n */\nfunction rovingTabIndex(items, allow) {\n const allowedElements = Array.isArray(allow) ? allow : toArray(allow);\n const allItems = Array.isArray(items) ? items : toArray(items);\n\n tabIndexAllow(allowedElements);\n\n if (0 < allItems.length) {\n const deniedElements = allItems.filter((item) => (\n ! allowedElements.includes(item)\n ));\n tabIndexDeny(deniedElements);\n }\n}\n\nexport {\n rovingTabIndex,\n tabIndexAllow,\n tabIndexDeny,\n toArray,\n};\n","import { setLocaleData } from '@wordpress/i18n';\nimport Popup from 'a11y/Popup';\nimport MenuItem from 'a11y/MenuItem';\nimport keyCodes from './lib/keyCodes';\nimport { rovingTabIndex } from './lib/rovingTabIndex';\n\n/**\n * Menu class for managing a menu's top-level keyboard interactions.\n *\n * @param {HTMLElement} menu The menu
    \n */\nexport default class Menu {\n /**\n * Start the component\n */\n constructor(menu) {\n /**\n * The default string description for this object.\n *\n * @type {string}\n */\n this.stringDescription = 'Menu';\n\n /**\n * The menu
      \n * @type {HTMLElement}\n */\n this.menu = menu;\n\n /**\n * Will hold menu popups.\n * @type {Array}\n */\n this.popups = [];\n\n // Register text domain\n setLocaleData({ '': {} }, 'sciencenews');\n\n // Bind class methods.\n this.manageState = this.manageState.bind(this);\n this.handleMenuBarKeydown = this.handleMenuBarKeydown.bind(this);\n this.handleMenuBarClick = this.handleMenuBarClick.bind(this);\n this.destroy = this.destroy.bind(this);\n\n this.init();\n }\n\n /**\n * Get the string description for this object.\n * E.x., Menu.toString() === '[object Menu]'\n *\n * @return {string}\n */\n get [Symbol.toStringTag]() {\n return this.stringDescription;\n }\n\n /**\n * Manage menu activeDescendant state.\n *\n * @param {Object} newState The new state.\n */\n manageState(newState) {\n this.state = Object.assign(this.state, newState);\n\n if (Object.prototype.hasOwnProperty.call(newState, 'activeDescendant')) {\n const { activeDescendant } = this.state;\n\n rovingTabIndex(this.menuBarItems, activeDescendant);\n activeDescendant.focus();\n }\n }\n\n /**\n * Collect top-level menu items and set up event handlers.\n */\n init() {\n // Set the menu role.\n this.menu.setAttribute('role', 'menu');\n\n // Adds a circular self-reference for external access.\n this.menu.menu = this;\n\n this.menuItemsCollection = this.menu.children;\n this.menuItemsArray = Array.prototype.slice.call(this.menuItemsCollection);\n\n // Collect menu links.\n this.menuBarItems = this.menuItemsArray.reduce((acc, item) => {\n const itemLink = item.firstElementChild;\n\n if (null !== itemLink && 'A' === itemLink.nodeName) {\n return [...acc, itemLink];\n }\n\n return acc;\n }, []);\n\n /**\n * The number of menu items.\n * @type {Number}\n */\n this.menuLength = this.menuBarItems.length;\n\n // Set menu link attributes and event listeners.\n this.menuBarItems.forEach((link, index) => {\n link.parentElement.setAttribute('role', 'presentation');\n\n // Add size and position attributes.\n link.setAttribute('role', 'menuitem');\n link.setAttribute('aria-setsize', this.menuLength);\n link.setAttribute('aria-posinset', index + 1);\n\n link.addEventListener('keydown', this.handleMenuBarKeydown);\n link.addEventListener('click', this.handleMenuBarClick);\n });\n\n /**\n * The index of the last menubar item\n * @type {Number}\n */\n this.lastIndex = (this.menuLength - 1);\n\n // Save the menu's first and last items.\n [this.firstItem] = this.menuBarItems;\n this.lastItem = this.menuBarItems[this.lastIndex];\n\n /**\n * Set initial state.\n * @type {Object}\n */\n this.state = {\n activeDescendant: this.firstItem,\n };\n\n // Initialize popups for nested lists.\n this.popups = this.menuBarItems.reduce((acc, controller) => {\n const target = controller.nextElementSibling;\n\n if (null !== target && 'UL' === target.nodeName) {\n const popup = new Popup({ controller, target });\n\n target.addEventListener('keydown', this.handleListKeydown);\n const subList = new MenuItem(target);\n // Save the list's previous sibling.\n subList.previousSibling = controller;\n\n return [...acc, popup];\n }\n\n return acc;\n }, []);\n\n // Set up initial tabindex.\n rovingTabIndex(\n this.menuBarItems,\n this.state.activeDescendant,\n );\n }\n\n /**\n * Handle keydown events on the menuList element.\n *\n * @param {Object} event The event object.\n */\n handleMenuBarKeydown(event) {\n const { LEFT, RIGHT, DOWN } = keyCodes;\n const { keyCode } = event;\n const { activeDescendant } = this.state;\n const activeIndex = this.menuBarItems.indexOf(activeDescendant);\n\n if ([LEFT, RIGHT].includes(keyCode)) {\n event.stopPropagation();\n event.preventDefault();\n\n // Determine the direction.\n let nextIndex = (keyCode === LEFT)\n ? activeIndex - 1\n : activeIndex + 1;\n\n // Move to the end if we're moving to the previous child from the first child.\n if (LEFT === keyCode && 0 > nextIndex) {\n nextIndex = this.lastIndex;\n }\n\n // Move to first child if we're at the end.\n if (RIGHT === keyCode && this.lastIndex < nextIndex) {\n nextIndex = 0;\n }\n\n this.manageState({\n activeDescendant: this.menuBarItems[nextIndex],\n });\n } else if (DOWN === keyCode) {\n // Open the popup if it exists and is not expanded.\n if ('[object Popup]' === activeDescendant?.popup?.toString()) {\n event.stopPropagation();\n event.preventDefault();\n\n const { popup } = activeDescendant;\n\n if (! popup.state.expanded) {\n popup.setExpandedState(true);\n }\n\n popup.firstItem.focus();\n }\n }\n }\n\n /**\n * Update the active descendant when the item is clicked.\n *\n * @param {Object} event The event object.\n */\n handleMenuBarClick(event) {\n this.manageState({\n activeDescendant: event.target,\n });\n }\n\n /**\n * Recursively destroy Menu, MenuItems, and Popups.\n */\n destroy() {\n // Remove the menu role.\n this.menu.removeAttribute('role');\n\n this.menuItemsCollection = this.menu.children;\n this.menuItemsArray = Array.prototype.slice.call(this.menuItemsCollection);\n\n this.menuBarItems.forEach((link) => {\n link.parentElement.removeAttribute('role');\n\n // Remove size and position attributes.\n link.removeAttribute('role');\n link.removeAttribute('aria-setsize');\n link.removeAttribute('aria-posinset');\n\n link.removeEventListener('keydown', this.handleMenuBarKeydown);\n link.removeEventListener('click', this.handleMenuBarClick);\n });\n\n // Destroy nested components.\n if (0 < this.popups.length) {\n this.popups.forEach((popup) => {\n if (\n undefined !== popup.target.menuItem\n && '[object MenuItem]' === popup?.target?.menuItem?.toString()\n ) {\n popup.target.menuItem.destroy();\n }\n popup.destroy();\n });\n }\n\n // Allow tabbing to all menubar items\n this.menuBarItems.forEach((menuBarItem) => {\n menuBarItem.removeAttribute('tabindex');\n });\n }\n}\n","/**\n * Network component for handling throttling of events via requestAnimationFrame\n */\nexport default class Throttle {\n /**\n * Create a new instance of Throttle.\n *\n * @param {HTMLElement} element Element on which throttle should be applied.\n * @param {string} event Event on which the throttle should be applied.\n * @param {function} callback Function to debounce (don't forget to bind it!).\n * @param {int} frequency Maximum frequency at which callback should be executed.\n */\n constructor(element, event, callback, frequency = 250) {\n Object.assign(this, {\n callback,\n event,\n element,\n frequency,\n timeout: false,\n });\n\n // Bound events\n this.requestTick = this.requestTick.bind(this);\n this.update = this.update.bind(this);\n\n if (! this.callback) {\n // eslint-disable-next-line no-console\n console.error('Throttle error: you must specify a callback.');\n } else {\n this.element.addEventListener(this.event, this.requestTick);\n }\n }\n\n /**\n * Dispatches the event to the supplied callback\n * @private\n */\n update() {\n this.callback();\n window.clearTimeout(this.timeout);\n this.timeout = false;\n }\n\n /**\n * Ensures events don't get stacked\n * @private\n */\n requestTick() {\n if (! this.timeout) {\n this.timeout = window.setTimeout(() => {\n window.requestAnimationFrame(this.update);\n }, this.frequency);\n }\n }\n\n /**\n * Remove debouncer\n * @private\n */\n destroy() {\n this.element.removeEventListener(this.event, this.requestTick);\n }\n}\n","import config from '../../../config/breakpoints.json';\n\n/**\n * Format global breakpoint values.\n *\n * @return {Object} An object of MediaQueryLists.\n */\nfunction formatBreakpoints() {\n return Object.keys(config).reduce((acc, bp) => {\n const bpMinRems = `${config[bp] / 16}rem`;\n const bpMaxRems = `${(config[bp] - 1) / 16}rem`;\n\n acc[`${bp}Min`] = window.matchMedia(`(min-width: ${bpMinRems})`);\n acc[`${bp}Max`] = window.matchMedia(`(max-width: ${bpMaxRems})`);\n\n return acc;\n }, {});\n}\n\nconst breakpoints = formatBreakpoints();\nexport default breakpoints;\n","/**\n * Create a passably unique `id` attribute.\n *\n * @param {Number} radix An optional base for converting the Number to a String.\n *\n * @returns {String}\n */\nexport default function uniquId(radix = 36) {\n const [, attr] = Math.random().toString(radix).split('.');\n return `id_${attr}`;\n}\n","/**\n * Create the screen reader text element\n *\n * @param {String} id The id for the containing element.\n * @param {String} innerText The text to display to screen readers.\n *\n * @return {HTMLElement}\n */\nexport default function createScreenReaderText(id, innerText) {\n const span = document.createElement('span');\n span.classList.add('screen-reader-text');\n Object.assign(span, { id, innerText });\n\n return span;\n}\n","import { __, setLocaleData } from '@wordpress/i18n';\nimport keyCodes from 'a11y/lib/keyCodes';\nimport uniqueId from 'a11y/lib/uniqueId';\nimport interactiveChildren from 'a11y/lib/interactiveChildren';\nimport createScreenReaderText from 'a11y/lib/createScreenReaderText';\n\n/**\n * Class for adding listbox-like support to Topic MegaMenu article lists.\n *\n * @param {HTMLElement} articles The articles
        \n */\nexport default class GroupWidget {\n /**\n * Get the article item from one of its interative children.\n *\n * @param {HTMLElement} itemChild The lost child.\n *\n * @return {HTMLElement}\n */\n static getItemParent(itemChild) {\n const { childOf } = itemChild.dataset;\n const itemParent = document.getElementById(childOf);\n\n return (null !== itemParent) ? itemParent : false;\n }\n\n /**\n * Start the component\n *\n * @todo can i get a reference to the parent popup?\n */\n constructor(list) {\n this.list = list;\n this.articleItems = Array.prototype.slice.call(list.children);\n\n // Register text domain\n setLocaleData({ '': {} }, 'sciencenews');\n\n // Save a reference to the first list item.\n Object.assign(this, { firstItem: this.articleItems[0] });\n\n /**\n * The index of the last item.\n * @type {Number}\n */\n this.lastIndex = (this.articleItems.length - 1);\n\n /**\n * Track GroupWidget state.\n * @type {Object}\n */\n this.state = {\n activeDescendant: this.firstItem,\n };\n\n // Bind class methods.\n this.prepItems = this.prepItems.bind(this);\n this.updateActiveState = this.updateActiveState.bind(this);\n this.clearActiveState = this.clearActiveState.bind(this);\n this.getParentPopup = this.getParentPopup.bind(this);\n this.handleListBlur = this.handleListBlur.bind(this);\n this.handleListKeydown = this.handleListKeydown.bind(this);\n\n /**\n * The instance the Popup class within which the list resides.\n * @type {Popup}\n */\n this.parentPopup = this.getParentPopup();\n\n this.prepItems();\n\n this.init();\n }\n\n /**\n * Get a reference to the Popup containing the list.\n *\n * @return {Popup} An instance of the Popup class.\n */\n getParentPopup() {\n let parent = this.list.parentElement;\n\n while (('[object Popup]' !== parent?.popup?.toString())) {\n parent = parent.parentElement;\n }\n\n return parent.popup;\n }\n\n /**\n * Ensure each list item and its interactive children have an ID attribute.\n */\n prepItems() {\n this.articleItems.forEach((item) => {\n const children = interactiveChildren(item);\n\n if ('' === item.id) {\n item.setAttribute('id', uniqueId());\n }\n\n children.forEach((child) => {\n child.setAttribute('id', uniqueId());\n child.setAttribute('data-child-of', item.id);\n });\n });\n }\n\n /**\n * Update the active descendant.\n *\n * @param {HTMLElement} newlyActive The descendant to set as active and selected.\n */\n updateActiveState(newlyActive) {\n const { activeDescendant } = this.state;\n activeDescendant.removeAttribute('aria-selected');\n\n this.state.activeDescendant = newlyActive;\n this.list.setAttribute('aria-activedescendant', newlyActive.id);\n newlyActive.setAttribute('aria-selected', 'true');\n }\n\n /**\n * Clear the list attributes and reset state.\n */\n clearActiveState() {\n const { activeDescendant } = this.state;\n\n this.list.removeAttribute('aria-activedescendant');\n activeDescendant.removeAttribute('aria-selected');\n this.state.activeDescendant = this.firstItem;\n\n // Revert to the intial help text.\n this.list.setAttribute(\n 'aria-describedby',\n this.initialListDescribedby,\n );\n }\n\n /**\n * Adds screen reader help text for use in aria-describedby attributes.\n */\n static addHelpText() {\n const helpTextItems = [\n {\n id: 'group-widget-list-help',\n text: __(\n 'Use up and down arrow keys to explore.',\n 'sciencenews',\n ),\n },\n {\n id: 'group-widget-list-enter-help',\n text: __('Use right arrow key to move into the list.', 'sciencenews'),\n },\n {\n id: 'group-widget-move-back-help',\n text: __(\n 'Use left arrow key to move back to the parent list.',\n 'sciencenews',\n ),\n },\n {\n id: 'group-widget-tab-help',\n text: __('Use tab key to enter the current list item.', 'sciencenews'),\n },\n {\n id: 'group-widget-esc-help',\n text: __(\n 'Use escape to exit the menu.',\n 'sciencenews',\n ),\n },\n ];\n\n helpTextItems.forEach(({ id, text }) => {\n if (null === document.body.querySelector(`#${id}`)) {\n const helpSpan = createScreenReaderText(id, text);\n document.body.appendChild(helpSpan);\n }\n });\n }\n\n init() {\n this.list.setAttribute('role', 'group');\n this.list.setAttribute('tabindex', '0');\n\n // eslint-disable-next-line max-len\n this.initialListDescribedby = 'group-widget-list-help group-widget-list-enter-help group-widget-esc-help';\n // eslint-disable-next-line max-len\n this.activeListDescribedby = 'group-widget-list-help group-widget-move-back-help group-widget-tab-help group-widget-esc-help';\n\n // Add the help\n this.constructor.addHelpText();\n\n // Set the initial list help text.\n this.list.setAttribute(\n 'aria-describedby',\n this.initialListDescribedby,\n );\n\n this.list.addEventListener('blur', this.handleListBlur);\n this.list.addEventListener('keydown', this.handleListKeydown);\n }\n\n /**\n * Handle list blur to ensure attributes are not present when the list isn't focused.\n */\n handleListBlur() {\n // Revert `focus` handler setup if the activeElement is not contained within the GroupWidget\n if (! this.list.contains(document.activeElement)) {\n this.clearActiveState();\n }\n }\n\n /**\n * Handle keydown events on the list to ensure the correct element is set as the active descendant.\n *\n * @param {Object} event The event object.\n */\n handleListKeydown(event) {\n const {\n UP,\n DOWN,\n RIGHT,\n LEFT,\n TAB,\n } = keyCodes;\n const { keyCode, shiftKey } = event;\n const { activeDescendant } = this.state;\n const activeIndex = this.articleItems.indexOf(activeDescendant);\n // The list is considered active once the user has taken action to\n // drill down into the list items, currently by pressing the right arrow key.\n const listIsActive = this.list.hasAttribute('aria-activedescendant');\n // Get the interactive children of the current item, or the parent item\n // if we're on one of the child elements.\n const parentItem = this.constructor.getItemParent(activeDescendant);\n\n // Mimic the normal menu items' keybopard handling when the list isn't active.\n if (! listIsActive) {\n if (RIGHT === keyCode) {\n // Move into list.\n event.preventDefault();\n this.updateActiveState(this.firstItem);\n\n // Update the help text to reflect the new state.\n this.list.setAttribute(\n 'aria-describedby',\n this.activeListDescribedby,\n );\n } else if (LEFT === keyCode) {\n // Move back to the popup controller.\n event.preventDefault();\n this.parentPopup.setExpandedState(false);\n this.parentPopup.controller.focus();\n } else if ([UP, DOWN].includes(keyCode)) {\n // Move to the sibling list when the list is not active.\n event.preventDefault();\n this.parentPopup.firstItem.focus();\n }\n }\n\n // Broken out into its own block for readability.\n // Interact with the list items when the list is active.\n if (listIsActive) {\n if (LEFT === keyCode) {\n event.preventDefault();\n\n if (parentItem) {\n // Move from the child of a list item to the list item\n this.updateActiveState(parentItem);\n } else {\n // Move out of list.\n this.clearActiveState();\n }\n } else if ([UP, DOWN].includes(keyCode) && ! parentItem) {\n // Move up/down through the articles list if the list is active and the\n // active descendant is not a grandchild of the list.\n event.preventDefault();\n let nextIndex = (keyCode === UP)\n ? activeIndex - 1\n : activeIndex + 1;\n\n // Move to the end if we're moving to the previous child from the first child.\n if (UP === keyCode && 0 > nextIndex) {\n nextIndex = this.lastIndex;\n }\n\n // Move to first child if we're at the end.\n if (DOWN === keyCode && this.lastIndex < nextIndex) {\n nextIndex = 0;\n }\n\n this.updateActiveState(this.articleItems[nextIndex]);\n } else if (TAB === keyCode) {\n const children = (parentItem)\n ? interactiveChildren(parentItem)\n : interactiveChildren(activeDescendant);\n\n if (0 < children.length) {\n event.preventDefault();\n const activeChildIndex = children.indexOf(activeDescendant);\n const [firstChild] = children;\n\n if (parentItem) {\n // Move up/down through the articles list if the list is active.\n const nextIndex = (shiftKey)\n ? activeChildIndex - 1\n : activeChildIndex + 1;\n\n // Move back from first child to article item.\n // Move from active descendant's last interactive child back to article item.\n const nextElement = (\n 0 > nextIndex || (children.length - 1) < nextIndex\n ) ? parentItem : children[nextIndex];\n\n this.updateActiveState(nextElement);\n } else if (! shiftKey) {\n // Tab from item to the first child element.\n this.updateActiveState(firstChild);\n }\n }\n }\n }\n }\n}\n","import { componentProvider } from 'js-component-framework';\nimport getFormattedClassnames from 'utils/getFormattedClassnames';\nimport TopicsMegaMenu from './topics-megamenu';\nimport './dropdown-all-topics.scss';\nimport './dropdown-single-topic.scss';\n\nconst menuClassnames = sciencenewsClassnames['topics-megamenu'];\nconst menuSelectors = getFormattedClassnames(menuClassnames);\nconst dropdownSingleClassnames = sciencenewsClassnames['dropdown-single-topic'];\n// eslint-disable-next-line max-len\nconst dropdownSingleSelectors = getFormattedClassnames(dropdownSingleClassnames);\n\nconst topicsMegaMenuConfig = {\n name: 'topics-menu',\n component: TopicsMegaMenu,\n querySelector: {\n list: menuSelectors.list,\n },\n querySelectorAll: {\n singleDropdownLists: `${dropdownSingleSelectors.dropdown}`,\n },\n options: {\n selectors: {\n articleList: dropdownSingleSelectors.articleList,\n },\n },\n};\n\ncomponentProvider(topicsMegaMenuConfig);\n","import Menu from 'a11y/Menu';\nimport Popup from 'a11y/Popup';\nimport keyCodes from 'a11y/lib/keyCodes';\nimport Throttle from 'utils/Throttle';\nimport breakpoints from 'utils/breakpoints';\nimport GroupWidget from './GroupWidget';\nimport './topics-megamenu.scss';\n\n/**\n * Component for the Topics Megamenu menu.\n */\nexport default class TopicsMegaMenu {\n /**\n * Handle arrow keys from the parent topic's link to the article list.\n *\n * @param {Object} event The event object.\n * @param {HTMLElement} articleList The article list element.\n */\n static handleTopicLeadKeydown(event, articleList) {\n const { UP, DOWN } = keyCodes;\n const { keyCode } = event;\n\n if ([UP, DOWN].includes(keyCode)) {\n event.preventDefault();\n articleList.focus();\n }\n }\n\n /**\n * Start the component\n */\n constructor({ element, children, options }) {\n this.element = element;\n this.children = children;\n this.options = options;\n\n /**\n * An array of GroupWidget items.\n * @type {Array}\n */\n this.groups = [];\n\n /**\n * Track article list keyboard support setup.\n * @type {Boolean}\n */\n this.articleListSupport = false;\n\n // Bind class methods\n this.setupArticleListSupport = this.setupArticleListSupport.bind(this);\n this.setDropdownPositioning = this.setDropdownPositioning.bind(this);\n this.init = this.init.bind(this);\n\n this.init();\n\n // Run init on breakpoint changes.\n breakpoints.lgMin.addListener(this.init);\n }\n\n /**\n * Set up support for using arrow keys to navigate to the Topic Menu's article lists.\n */\n setupArticleListSupport() {\n this.singlePopups.forEach((popup) => {\n const { selectors: { articleList } } = this.options;\n\n const articles = (\n popup.target.querySelector(articleList)\n );\n\n if (null !== articles) {\n // Instantiate a new GroupWidget.\n const group = new GroupWidget(articles);\n this.groups.push(group);\n }\n\n // Patch in arrow key navigation to article list.\n popup.firstItem.addEventListener('keydown', (event) => {\n const { UP, DOWN } = keyCodes;\n const { keyCode } = event;\n\n if ([UP, DOWN].includes(keyCode)) {\n event.preventDefault();\n articles.focus();\n }\n });\n });\n\n this.articleListSupport = true;\n }\n\n /**\n * Set the menubar dropdown position.\n */\n setDropdownPositioning() {\n this.singlePopups.forEach((popup) => {\n // Clear inline styles.\n popup.target.removeAttribute('style');\n\n if (undefined !== popup.observer) {\n // Stop observing.\n popup.observer.disconnect();\n }\n\n // Close the popup\n popup.setExpandedState(false);\n\n const controllerLeft = popup.controller.offsetLeft;\n const controllerCenter = (popup.controller.offsetWidth / 2);\n const dropdownRight = (\n window.innerWidth - (controllerLeft + controllerCenter)\n );\n\n // Set the dropdown's default `right` value.\n Object.assign(\n popup.target.style,\n { right: `${dropdownRight}px` },\n );\n\n // Create an observer instance to track `aria-hidden` attribute changes.\n popup.observer = new MutationObserver((mutationsList) => { // eslint-disable-line no-param-reassign\n mutationsList.forEach((mutation) => {\n if (\n 'attributes' === mutation.type\n && 'aria-hidden' === mutation.attributeName\n && 'false' === popup.target.getAttribute('aria-hidden')\n ) {\n if ((popup.target.clientWidth / 2) < dropdownRight) {\n // Pull the dropdown to the right to center it with its controller.\n Object.assign(\n popup.target.style,\n { transform: 'translateX(50%)' },\n );\n } else {\n // The dropdown is too far right; fall back to a 30px right offset.\n Object.assign(\n popup.target.style,\n { right: '30px' },\n );\n }\n }\n });\n });\n\n // Start observing the target for `aria-hidden` attribute changes.\n popup.observer.observe(popup.target, { attributes: true });\n });\n }\n\n /**\n * Start the component.\n */\n init() {\n // The Topics Megamenu is desktop-only.\n if (breakpoints.lgMin.matches) {\n if (! (this.topicsMenu instanceof Menu)) {\n // Initialize the Menu class.\n this.topicsMenu = new Menu(this.children.list);\n }\n\n if (undefined === this.singlePopups) {\n const { singleDropdownLists } = this.children;\n\n if (null !== singleDropdownLists) {\n /**\n * Collected single-topic popups.\n * @type {Array}\n */\n this.singlePopups = Array.prototype.reduce.call(\n singleDropdownLists,\n (acc, dropdown) => {\n if (dropdown.popup instanceof Popup) {\n acc.push(dropdown.popup);\n }\n\n return acc;\n }, [],\n );\n }\n }\n\n if (! this.articleListSupport) {\n this.setupArticleListSupport();\n }\n\n this.setDropdownPositioning();\n this.resize = new Throttle(window, 'resize', this.setDropdownPositioning);\n } else if (this.resize instanceof Throttle) {\n this.resize.destroy();\n }\n }\n}\n","import interactiveChildren from './lib/interactiveChildren';\nimport uniqueId from './lib/uniqueId';\n\n/**\n * Sets up a controller-target relationship with appropriate aria-attributes and event handling.\n *\n * @param {Object} config {\n * And object denoting the Disclosure's configuration.\n *\n * @type {HTMLElement} controller The Disclosure's controlling element.\n * @type {HTMLElement} target The Disclosure's target element.\n * @type {Boolean} [loadOpen=false] To load the Disclosure open.\n * @type {Boolean} [allowOutsideClick=true] Keep the Disclosure open on outside clicks.\n * @type {Function} onOpen Function to be run after the Disclosure is opened.\n * @type {Function} onClose Function to be run after the Disclosure is closed.\n * }\n */\nexport default class Disclosure {\n /**\n * Start the component\n */\n constructor(config) {\n /**\n * The default string description for this object.\n *\n * @type {string}\n */\n this.stringDescription = 'Disclosure';\n\n /**\n * Default config options.\n * @type {Object}\n */\n const options = {\n controller: null,\n target: null,\n loadOpen: false,\n allowOutsideClick: true,\n onOpen: () => {},\n onClose: () => {},\n };\n\n // Merge config options with defaults.\n Object.assign(this, options, config);\n\n // Initial state.\n this.state = {\n expanded: this.loadOpen,\n };\n\n /**\n * The target element's interactive child elements.\n * @type {Array}\n */\n this.interactiveChildElements = interactiveChildren(this.target);\n\n // Bind class methods.\n this.setup = this.setup.bind(this);\n this.destroy = this.destroy.bind(this);\n this.toggleExpandedState = this.toggleExpandedState.bind(this);\n this.setExpandedState = this.setExpandedState.bind(this);\n this.rovingTabIndex = this.rovingTabIndex.bind(this);\n this.closeOnOutsideClick = this.closeOnOutsideClick.bind(this);\n\n this.setup();\n this.rovingTabIndex(false);\n }\n\n /**\n * Expand or collapse the disclosure\n *\n * @param {Boolean} expand The expected `expanded` state.\n */\n setExpandedState(expand) {\n this.controller.setAttribute('aria-expanded', `${expand}`);\n this.target.setAttribute('aria-hidden', `${! expand}`);\n\n this.rovingTabIndex(expand);\n\n this.state.expanded = expand;\n\n if (expand) {\n this.onOpen.call(this);\n } else {\n this.onClose.call(this);\n }\n }\n\n /**\n * Get the string description for this object.\n * E.x., Disclosure.toString() === '[object Disclosure]'\n *\n * @return {string}\n */\n get [Symbol.toStringTag]() {\n return this.stringDescription;\n }\n\n /**\n * Add initial attributes, establish relationships, and listen for events\n */\n setup() {\n const { expanded } = this.state;\n\n // Ensure the target and controller each have an ID attribute.\n [this.controller, this.target].forEach((element) => {\n if ('' === element.id) {\n element.setAttribute('id', uniqueId());\n }\n });\n\n // Add a reference to the class instance\n this.controller.disclosure = this;\n this.target.disclosure = this;\n\n // Add controller attributes\n this.controller.setAttribute('aria-expanded', `${expanded}`);\n this.controller.setAttribute('aria-controls', this.target.id);\n\n // If the markup is disconnected, establish a relationship.\n if (this.target !== this.controller.nextElementSibling) {\n this.controller.setAttribute('aria-owns', this.target.id);\n }\n\n // Add target attributes\n this.target.setAttribute('aria-hidden', `${! expanded}`);\n\n // Add event listeners\n this.controller.addEventListener('click', this.toggleExpandedState);\n\n if (! this.allowOutsideClick) {\n document.body.addEventListener('click', this.closeOnOutsideClick);\n }\n }\n\n /**\n * Remove all ARIA attributes added by this class.\n */\n destroy() {\n // Add a reference to the class instance.\n this.controller.disclosure = null;\n this.target.disclosure = null;\n\n // Remove controller attributes.\n this.controller.removeAttribute('aria-expanded');\n this.controller.removeAttribute('aria-controls');\n this.controller.removeAttribute('aria-owns');\n\n // Remove target attributes.\n this.target.removeAttribute('aria-hidden');\n\n // Remove event listeners.\n this.controller.removeEventListener('click', this.toggleExpandedState);\n document.body.removeEventListener('click', this.closeOnOutsideClick);\n\n // Reset initial state.\n this.state = {\n expanded: this.loadOpen,\n };\n }\n\n /**\n * Toggle the expanded state.\n *\n * @param {Object} event The event object.\n */\n toggleExpandedState(event) {\n event.preventDefault();\n\n if (this.state.expanded) {\n this.setExpandedState(false);\n } else {\n this.setExpandedState(true);\n }\n }\n\n /**\n * Close the disclosure when the user clicks outside of the target.\n *\n * @param {Object} event The event object.\n */\n closeOnOutsideClick(event) {\n if (\n this.state.expanded\n && event.target !== this.controller\n && ! this.target.contains(event.target)\n ) {\n this.setExpandedState(false);\n }\n }\n\n /**\n * Prevent focus on interactive elements in the target when the target is hidden.\n *\n * This isn't much of an issue if the element is visually hidden with\n * `display:none`, but becomes an issue if the target is collapsed by\n * other means, like reducing one of its dimensions.\n *\n * @param {Boolean} allow Whether or not to allow focus on children of this.target.\n */\n rovingTabIndex(allow) {\n this.interactiveChildElements.forEach((child) => {\n if (allow) {\n child.removeAttribute('tabindex');\n } else {\n child.setAttribute('tabindex', '-1');\n }\n });\n }\n}\n","import getFormattedClassnames from 'utils/getFormattedClassnames';\nimport camelCaseString from 'utils/camelCaseString';\n\n/**\n * Get a component's hashed classname.\n *\n * @param {String} className The classname to retrieve.\n * @param {String} component The component from which to retrieve the classname.\n *\n * @return {String|Boolean} The classname, or false if not found.\n */\nexport default function getClassnameFromComponent(className, component) {\n // Format the string to match that of the classnames object.\n const camelcasedClassName = camelCaseString(className);\n\n // Get the formatted classname.\n const navBarClassnames = sciencenewsClassnames[component];\n const navBarSelectors = getFormattedClassnames(navBarClassnames);\n\n return (undefined !== navBarSelectors[camelcasedClassName])\n ? navBarSelectors[camelcasedClassName]\n : false;\n}\n","/**\n * CamelCase a string.\n *\n * @param {String} input The string to camelCase.\n *\n * @return {String} The input, camelCased.\n */\nexport default function camelCaseString(input) {\n const camelCase = input.split('-').map((word, i) => {\n if (0 === i) {\n return word;\n }\n return word.charAt(0).toUpperCase() + word.slice(1);\n }).join('');\n\n return camelCase;\n}\n","import getClassnameFromComponent from 'utils/getClassnameFromComponent';\n\n/**\n * Get an element or NodeList from another component.\n *\n * @param {String} className The classname to retrieve.\n * @param {String} component The component from which to retrieve the classname.\n * @param {Boolean} all Return a NodeList\n *\n * @return {HTMLElement|NodeList}\n */\nexport default function getElementFromComponent(className, component, all = false) { // eslint-disable-line max-len\n const componentClassname = getClassnameFromComponent(className, component);\n\n if (! componentClassname) {\n return null;\n }\n\n const element = (all)\n ? document.querySelectorAll(componentClassname)\n : document.querySelector(componentClassname);\n\n return element;\n}\n","import { componentProvider } from 'js-component-framework';\nimport getFormattedClassnames from 'utils/getFormattedClassnames';\nimport HeaderSearch from './header-search';\n\nconst searchClassnames = sciencenewsClassnames['header-search'];\nconst searchSelectors = getFormattedClassnames(searchClassnames);\n\nconst headerSearchConfig = {\n name: 'header-search',\n component: HeaderSearch,\n querySelector: {\n target: searchSelectors.wrapper,\n controller: searchSelectors.toggle,\n openText: searchSelectors.open,\n closeText: searchSelectors.close,\n input: 'input',\n },\n};\n\ncomponentProvider(headerSearchConfig);\n","import { __, setLocaleData } from '@wordpress/i18n';\nimport Disclosure from 'a11y/Disclosure';\nimport createScreenReaderText from 'a11y/lib/createScreenReaderText';\nimport getElementFromComponent from 'utils/getElementFromComponent';\nimport breakpoints from 'utils/breakpoints';\nimport './header-search.scss';\n\n/**\n * Component for the header search form.\n */\nexport default class HeaderSearch {\n /**\n * Start the component\n */\n constructor({ element, children, options }) {\n this.element = element;\n this.children = children;\n this.options = options;\n\n // Register text domain\n setLocaleData({ '': {} }, 'sciencenews');\n\n // Bind class methods.\n this.moveComponent = this.moveComponent.bind(this);\n this.updateControllerText = this.updateControllerText.bind(this);\n\n /**\n * The nav-bar wrapper element.\n * @type {HTMLElement}\n */\n this.navBarWrapper = getElementFromComponent('wrapper', 'nav-bar');\n\n /**\n * The nav-bar element (child of the nav-bar.wrapper)\n * @type {HTMLElement}\n */\n this.navBar = getElementFromComponent('nav-bar', 'nav-bar');\n\n /**\n * The nav-bar 'action list' element.\n * @type {HTMLElement}\n */\n this.actionsList = getElementFromComponent('actions', 'nav-bar');\n\n // Ensure the header-search is positioned correctly for the current screen size.\n this.moveComponent();\n breakpoints.lgMin.addListener(this.moveComponent);\n\n this.init();\n // Update the controller text to ensure it reflects the correct state.\n this.updateControllerText();\n }\n\n /**\n * Conditionally relocate the this component based on the matching breakpoint.\n */\n moveComponent() {\n const { controller } = this.children;\n\n if (\n null !== this.navBarWrapper\n && null !== this.navBar\n && null !== this.actionsList\n ) {\n const controllerParent = controller.parentElement;\n const targetParent = this.element.parentElement;\n\n if (breakpoints.lgMin.matches) {\n // For lgMin breakpoint, the header-search should be a child of nav-bar before the actions list.\n if (controllerParent !== this.navBar && targetParent !== this.navBar) {\n // Move the header-search elements into the nav-bar, directly before the actions list.\n // Target (this.element) first – order matters!\n this.navBar.insertBefore(this.element, this.actionsList);\n }\n } else if (\n controllerParent !== this.navBarWrapper\n && targetParent !== this.navBarWrapper\n ) {\n // For breakpoints < lgMin, the header-search should be the last child of the nav-bar.wrapper.\n // Move the header-search elements into the nav-bar wrapper as the last children.\n // Target (this.element) first – order matters!\n this.navBarWrapper.appendChild(this.element);\n }\n }\n }\n\n /**\n * Initialize the Disclosure class and add the screen reader description.\n */\n init() {\n const { controller, target } = this.children;\n /**\n * The Disclosure instance.\n * @type {Disclosure}\n */\n this.disclosure = new Disclosure({\n controller,\n target,\n onOpen: this.updateControllerText,\n onClose: this.updateControllerText,\n });\n\n // Add an aria-description about tabbing backward to the input\n const helpSpan = createScreenReaderText(\n 'header-search-help',\n // eslint-disable-next-line max-len\n __('Use the Shift key with the Tab key to tab back to the search input.', 'sciencenews'),\n );\n document.body.appendChild(helpSpan);\n\n // Make sure the input is completely hidden;\n target.style.clip = 'rect(0, 0, 0, 0)';\n\n target.addEventListener('transitionend', () => {\n const { expanded } = this.disclosure.state;\n\n if (! expanded) {\n target.style.clip = 'rect(0, 0, 0, 0)';\n }\n });\n }\n\n /**\n * Update button text to reflect the disclosure's state.\n */\n updateControllerText() {\n const {\n controller,\n target,\n openText,\n closeText,\n input,\n } = this.children;\n const { expanded } = this.disclosure.state;\n\n // Show the open label when the disclosure is closed.\n openText.setAttribute('aria-hidden', `${expanded}`);\n // Show the close label when the disclosure is open.\n closeText.setAttribute('aria-hidden', `${! expanded}`);\n\n if (expanded) {\n target.style.clip = 'auto';\n // Moving to the search field is unintuitive due to the markup being out-of-order\n // Add the help text when the disclosure is open\n controller.setAttribute('aria-describedby', 'header-search-help');\n input.focus();\n } else {\n controller.removeAttribute('aria-describedby');\n }\n }\n}\n","/**\n * Component for submitting Form Assembly forms.\n */\nclass FormAssemblySubmit {\n /**\n * Start the component.\n */\n constructor(form) {\n if (null == form || ! (form instanceof HTMLFormElement)) {\n throw new Error('Invalid form element.');\n }\n\n /**\n * The form to act upon.\n *\n * @type {HTMLFormElement}\n */\n this.form = form;\n\n // Bind class methods.\n this.validateEmailInput = this.validateEmailInput.bind(this);\n this.formSubmit = this.formSubmit.bind(this);\n this.checkEmailInput = this.checkEmailInput.bind(this);\n this.updateState = this.updateState.bind(this);\n this.updateReadyState = this.updateReadyState.bind(this);\n\n this.init();\n }\n\n /**\n * Dispatch the `sn.formstatechange` event.\n *\n * @param {String} status The form status.\n */\n updateState(status) {\n const event = new CustomEvent(\n 'sn.formstatechange',\n {\n bubbles: true,\n composed: true,\n detail: {\n status,\n },\n },\n );\n\n this.form.dispatchEvent(event);\n }\n\n /**\n * Update the form ready state and dispatch the `sn.formready` event.\n */\n updateReadyState() {\n Object.defineProperty(\n this.form,\n 'faReadyState',\n { value: 'ready', configurable: true },\n );\n\n const event = new CustomEvent(\n 'sn.formready',\n {\n bubbles: true,\n composed: true,\n detail: {},\n },\n );\n\n this.form.dispatchEvent(event);\n }\n\n /**\n * Initialize the Form Assembly helper.\n */\n init() {\n this.emailInput = this.form.querySelector('[name=\"email\"]');\n this.nonceInput = this.form.querySelector('[name=\"nonce\"]');\n this.submit = this.form.querySelector('[type=\"submit\"]');\n this.honeyPot = this.form.querySelector('[name=\"client_key\"]');\n this.formId = this.form.querySelector('[name=\"form_id\"]');\n this.control = this.form.querySelector('[name=\"control\"]');\n\n if (null != this.emailInput) {\n this.form.addEventListener('submit', this.formSubmit);\n this.emailInput.addEventListener('input', this.checkEmailInput);\n\n // Signal that the form is ready.\n this.updateReadyState();\n }\n }\n\n /**\n * Remove the invalid state when the input value is updated.\n */\n checkEmailInput() {\n if (null !== this.emailInput.getAttribute('aria-invalid')) {\n this.emailInput.removeAttribute('aria-invalid');\n }\n }\n\n /**\n * Ensure the email value is valid according to the input's `pattern` attribute.\n *\n * @returns {Boolean}\n */\n validateEmailInput() {\n const { value, pattern } = this.emailInput;\n\n const patternRegExp = new RegExp(pattern);\n const fieldValue = value.trim();\n\n return (0 < value.trim().length && patternRegExp.test(fieldValue));\n }\n\n /**\n * Form submission.\n *\n * @param {Event} event The event object.\n */\n formSubmit(event) { // eslint-disable-line consistent-return\n event.preventDefault();\n\n if (! this.validateEmailInput()) {\n this.emailInput.setAttribute('aria-invalid', 'true');\n return false;\n }\n\n const { pathname, search } = window.location;\n\n // Get hidden input values.\n const honeyPotValue = (this.honeyPot?.value) ? this.honeyPot.value : '';\n const nonceValue = this.nonceInput.value;\n const formId = this.formId.value;\n const control = this.control.value;\n\n // Email is the only forward-facing input.\n const emailValue = encodeURIComponent(this.emailInput.value);\n\n // Disable and clear error state.\n this.emailInput.removeAttribute('aria-invalid');\n this.updateState('loading');\n\n // Build request string.\n const parts = [\n `client_key=${honeyPotValue}`,\n `control=${control}`,\n `email=${emailValue}`,\n `form_id=${formId}`,\n `page=${pathname}`,\n ];\n const string = `${parts.join('&')}${search}`;\n\n const request = new XMLHttpRequest();\n\n // Make AJAX request.\n request.open('POST', this.form.action, true);\n request.setRequestHeader(\n 'Content-Type',\n 'application/x-www-form-urlencoded; charset=UTF-8',\n );\n request.setRequestHeader('X-WP-Nonce', nonceValue);\n request.send(encodeURI(string));\n\n // On completion.\n request.onreadystatechange = () => {\n if (request.readyState === XMLHttpRequest.DONE) {\n const { status } = request;\n\n if (0 === status || (200 <= status && 400 > status)) {\n this.updateState('success');\n } else {\n this.updateState('error');\n }\n }\n };\n }\n}\n\n/**\n * Update classes to reflect the form state.\n *\n * @param {HTMLElement} element The element upon which state classes should be applied\n * @param {Object} details The event details.\n */\nfunction setFormAssemblyState(element, { status }) {\n const classes = {\n loading: 'login-form--loading',\n success: 'login-form--success',\n error: 'login-form--error',\n };\n\n requestAnimationFrame(() => {\n // Clear state classes.\n if ('loading' === status) {\n element.classList.remove(classes.success, classes.error);\n } else {\n element.classList.remove(classes.loading);\n }\n\n // Add the status class.\n element.classList.add(classes[status]);\n });\n}\n\nexport {\n FormAssemblySubmit,\n setFormAssemblyState,\n};\n","import { componentProvider } from 'js-component-framework';\nimport FormAssembly from './form-assembly';\nimport './form-assembly.scss';\n\nconst formAssemblyConfig = {\n name: 'form-assembly',\n component: FormAssembly,\n};\n\ncomponentProvider(formAssemblyConfig);\n","import { FormAssemblySubmit } from 'js/utils/FormAssemblySubmit';\n\n/**\n * Component for Form Assembly component.\n */\nexport default class FormAssembly {\n /**\n * Start the component.\n */\n constructor({ element, children, options }) {\n this.element = element;\n this.children = children;\n this.options = options;\n\n // Bind class methods.\n this.init = this.init.bind(this);\n\n this.init();\n }\n\n /**\n * Initialize a FormAssemblySubmit instance.\n */\n init() {\n this.formAssemblySubmit = new FormAssemblySubmit(this.element);\n }\n}\n","/**\n * The restricted content cookie name, dependent on the current site.\n */\nexport default `${amScripts.global.sitePrefix}-restricted-content-access`;\n","import { componentProvider } from 'js-component-framework';\nimport LoginForm from './login-form';\n\nconst loginFormConfig = {\n name: 'login-form',\n component: LoginForm,\n};\n\ncomponentProvider(loginFormConfig);\n","import Cookies from 'js-cookie';\nimport { setFormAssemblyState } from 'js/utils/FormAssemblySubmit';\nimport cookieName from '../restrictedContentCookieName';\n\n/**\n * Component for Login Modal.\n */\nexport default class LoginForm {\n /**\n * Start the component.\n */\n constructor({ element, children, options }) {\n this.element = element;\n this.children = children;\n this.options = options;\n\n // Bind class methods.\n this.init = this.init.bind(this);\n this.handleFormState = this.handleFormState.bind(this);\n\n if ('true' !== Cookies.get(cookieName)) {\n this.init();\n }\n }\n\n /**\n * Handle form submission state.\n *\n * @param {Event} event The event object.\n */\n handleFormState(event) {\n const { detail = {} } = event;\n const { status = '' } = detail;\n\n setFormAssemblyState(this.element, detail);\n\n if ('success' === status) {\n Cookies.set(cookieName, true, { expires: 30 });\n\n // Redirect to the homepage.\n const { origin } = window.location;\n window.location.href = origin;\n }\n }\n\n /**\n * Initialize the FormAssemblySubmit instance.\n */\n init() {\n this.element.addEventListener('sn.formstatechange', this.handleFormState);\n }\n}\n","/**\n * Class for facilitating accessible components.\n */\nexport default class AriaComponent {\n /**\n * Create an AriaComponent.\n * @constructor\n */\n constructor() {\n /**\n * Component state.\n *\n * @type {object}\n */\n this.state = {};\n\n /**\n * Save search characters\n *\n * @type {string}\n */\n this.searchString = '';\n\n /**\n * Saved reference elements.\n *\n * @type {Array}\n */\n this.referenceElements = [];\n\n // Bind class methods.\n this.setState = this.setState.bind(this);\n this.getState = this.getState.bind(this);\n this.setSelfReference = this.setSelfReference.bind(this);\n this.warnDeprecated = this.warnDeprecated.bind(this);\n }\n\n /**\n * Set component state.\n *\n * @param {object} newState The new state to merge with existing state.\n */\n setState(newState) {\n Object.assign(this.state, newState);\n\n if ('function' === typeof this.stateWasUpdated) {\n this.stateWasUpdated();\n }\n }\n\n /**\n * Set a reference to the class instance on the element upon which the class\n * is instantiated.\n *\n * @param {array} elements An array of elements upon which to add a reference to `this`.\n */\n setSelfReference(elements) {\n const referenceElements = [...elements].map((element) => {\n Object.defineProperty(\n element,\n this.componentName.toLowerCase(),\n { value: this, configurable: true }\n );\n\n return element;\n });\n\n this.referenceElements = [...this.referenceElements, ...referenceElements];\n }\n\n /**\n * Delete self references from component elements.\n */\n deleteSelfReferences() {\n this.referenceElements.forEach((element) => {\n delete element[this.componentName.toLowerCase()];\n });\n }\n\n /**\n * Return the current component state.\n *\n * @return {object}\n */\n getState() {\n return this.state;\n }\n\n /**\n * Warn about deprecated config properties.\n *\n * @param {string} name The name of the class instance.\n * @param {string} unsupported The deprecated config value.\n * @param {string} supported The newly supported config value, if any.\n */\n warnDeprecated(unsupported, supported = false) {\n const use = supported ? `Use ${supported} instead.` : '';\n // eslint-disable-next-line no-console, max-len\n console.warn(\n `${this.componentName}:`,\n `${unsupported} is deprecated.`,\n `${use}`\n );\n }\n}\n","/**\n * Event keyCode values mapped to a key name.\n */\nconst keyCodes = Object.freeze({\n TAB: 9,\n RETURN: 13,\n ESC: 27,\n SPACE: 32,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n});\n\nexport default keyCodes;\n","/**\n * Create an array from a value.\n *\n * @param {Mixed} maybeAnArray An HTMLElement, NodeList, or Array of elements.\n */\nfunction toArray(maybeAnArray) {\n if (Array.isArray(maybeAnArray)) {\n return maybeAnArray;\n }\n\n let shouldBeAnArray = [];\n\n if (maybeAnArray instanceof HTMLElement) {\n // Convert element(s) to an Array.\n shouldBeAnArray = new Array(maybeAnArray);\n } else if (\n maybeAnArray instanceof NodeList\n || maybeAnArray instanceof HTMLCollection\n ) {\n // Array.from(maybeAnArray);\n shouldBeAnArray = Array.prototype.slice.call(maybeAnArray, 0);\n }\n\n return shouldBeAnArray;\n}\n\n/**\n * Remove the tabIndex attribute from all elements.\n *\n * @param {Mixed} items An HTMLElement, NodeList, or array of elements.\n */\nfunction tabIndexAllow(items) {\n const allowedElements = Array.isArray(items) ? items : toArray(items);\n\n allowedElements.forEach((item) => {\n item.removeAttribute('tabindex');\n });\n}\n\n/**\n * Add a negative tabIndex attribute to all elements.\n *\n * @param {Mixed} items An HTMLElement, NodeList, or Array of elements.\n */\nfunction tabIndexDeny(items) {\n const deniedElements = Array.isArray(items) ? items : toArray(items);\n\n deniedElements.forEach((item) => {\n item.setAttribute('tabindex', '-1');\n });\n}\n\n/**\n * Manage items' tabindex.\n *\n * @param {NodeList|Array} items The items whose tabindex may need updating.\n * @param {HTMLElement|NodeList|Array} allow The item to which we'll allow tabbing.\n */\nfunction rovingTabIndex(items, allow) {\n const allowedElements = Array.isArray(allow) ? allow : toArray(allow);\n const allItems = Array.isArray(items) ? items : toArray(items);\n\n tabIndexAllow(allowedElements);\n\n if (0 < allItems.length) {\n const deniedElements = allItems.filter((item) => (\n ! allowedElements.includes(item)\n ));\n tabIndexDeny(deniedElements);\n }\n}\n\nexport {\n rovingTabIndex,\n tabIndexAllow,\n tabIndexDeny,\n toArray,\n};\n","import { AriaComponent } from 'aria-components';\nimport {\n interactiveChildren,\n keyCodes,\n getFirstAndLastItems,\n tabIndexDeny,\n tabIndexAllow,\n setUniqueId,\n} from 'aria-components/utils';\nimport toArray from 'js/utils/toArray';\n\n/**\n * Class to set up a programmatic Dialog element to be displayed without user interaction.\n */\nexport default class ProgrammaticDialog extends AriaComponent {\n /**\n * Create a Dialog.\n * @constructor\n *\n * @param {object} config The config object.\n */\n constructor(target, config) {\n super(config);\n\n // A target element is required.\n if (null == target) {\n throw new Error('Configuration error: A target element is required.');\n }\n\n /**\n * The dialog element.\n *\n * @type {HTMLElement}\n */\n this.target = target;\n\n /**\n * The component name.\n *\n * @type {string}\n */\n this.componentName = 'ProgrammaticDialog';\n\n /**\n * Options shape.\n *\n * @type {object}\n */\n const options = {\n /**\n * The element(s) to be hidden when the Dialog is visible. The elements\n * wrapping all site content with the sole exception of the dialog element.\n *\n * @type {HTMLElement|NodeList|Array}\n */\n content: [],\n\n /**\n * Callback to run after the component initializes.\n *\n * @callback initCallback\n */\n onInit: () => {},\n\n /**\n * Callback to run after component state is updated.\n *\n * @callback stateChangeCallback\n */\n onStateChange: () => {},\n\n /**\n * Callback to run after the component is destroyed.\n *\n * @callback destroyCallback\n */\n onDestroy: () => {},\n };\n\n // Merge config options with defaults and save all as instance properties.\n Object.assign(this, options, config);\n\n // Bind class methods\n this.init = this.init.bind(this);\n this.handleTargetKeydown = this.handleTargetKeydown.bind(this);\n this.hideOnOutsideClick = this.hideOnOutsideClick.bind(this);\n this.handleKeydownEsc = this.handleKeydownEsc.bind(this);\n this.show = this.show.bind(this);\n this.hide = this.hide.bind(this);\n this.destroy = this.destroy.bind(this);\n this.stateWasUpdated = this.stateWasUpdated.bind(this);\n this.setInteractiveChildren = this.setInteractiveChildren.bind(this);\n this.setDialogController = this.setDialogController.bind(this);\n this.controllerClick = this.controllerClick.bind(this);\n\n /*\n * Initialize the component.\n */\n this.init();\n }\n\n /**\n * Set the Dialog controller.\n *\n * By default, the Dialog will not have a controller; use this method on an\n * instance to add a controller.\n */\n setDialogController(controller) {\n this.controller = controller;\n super.setSelfReference([this.controller]);\n\n /**\n * Check if the controller is a button, but only if it doesn't already have\n * a role attribute, since we'll be adding the role and allowing focus.\n *\n * @type {bool}\n */\n this.controllerIsNotAButton = (\n 'BUTTON' !== this.controller.nodeName\n && null === this.controller.getAttribute('role')\n );\n\n /*\n * Use the button role on non-button elements.\n */\n if (this.controllerIsNotAButton) {\n // https://www.w3.org/TR/wai-aria-1.1/#button\n this.controller.setAttribute('role', 'button');\n this.controller.setAttribute('tabindex', '0');\n }\n\n this.controller.setAttribute('aria-expanded', 'false');\n\n this.controller.addEventListener('click', this.controllerClick);\n this.controller.addEventListener('keydown', this.controllerKeydown);\n }\n\n /**\n * Collect the Dialog's interactive child elements.\n */\n setInteractiveChildren() {\n this.interactiveChildElements = interactiveChildren(this.target);\n\n const [\n firstInteractiveChild,\n lastInteractiveChild,\n ] = getFirstAndLastItems(this.interactiveChildElements);\n\n // Save as instance properties.\n this.firstInteractiveChild = firstInteractiveChild;\n this.lastInteractiveChild = lastInteractiveChild;\n }\n\n /**\n * Set the component's DOM attributes and event listeners.\n */\n init() {\n // Get the content items if none are provided.\n if (0 === this.content.length || null == this.content) {\n this.content = Array.from(document.body.children)\n .filter((child) => ! child.contains(this.target));\n } else {\n this.content = toArray(this.content);\n }\n\n // If no content is found.\n if (0 === this.content.length) {\n // eslint-disable-next-line max-len\n throw new Error('Configuration error: The Dialog target should not be within the main site content.');\n }\n\n /*\n * A reference to the class instance added to the target element to enable\n * external interactions with this instance.\n */\n super.setSelfReference([this.target]);\n\n /*\n * Collect the Dialog's interactive child elements. This is an initial pass\n * to ensure values exists, but the interactive children will be collected\n * each time the dialog opens, in case the dialog's contents change.\n */\n this.setInteractiveChildren();\n\n // Focusable content should initially have tabindex='-1'.\n tabIndexDeny(this.interactiveChildElements);\n\n // Add target attribute.\n setUniqueId(this.target);\n\n /*\n * Set the taget as hidden by default. Using the `aria-hidden` attribute,\n * rather than the `hidden` attribute, means authors must hide the target\n * element via CSS.\n */\n this.target.setAttribute('aria-hidden', 'true');\n this.target.setAttribute('hidden', '');\n\n // Set additional attributes.\n this.target.setAttribute('role', 'dialog');\n this.target.setAttribute('aria-modal', 'true');\n\n // Add event listeners.\n this.target.addEventListener('keydown', this.handleTargetKeydown);\n\n /**\n * Set initial state.\n *\n * @type {object}\n */\n this.state = { expanded: false };\n\n /* Run {initCallback} */\n this.onInit.call(this);\n }\n\n /**\n * Update element attributes and event listeners when the Popup's state changes.\n * @todo Set target attributes and update roving tabindex.\n *\n * @param {Object} state The component state.\n */\n stateWasUpdated() {\n const { expanded } = this.state;\n const contentLength = this.content.length;\n\n this.setInteractiveChildren();\n\n if (expanded) {\n // Allow focus on the target element.\n this.target.setAttribute('tabindex', '0');\n\n // Hide the outside content.\n for (let i = 0; i < contentLength; i += 1) {\n this.content[i].setAttribute('aria-hidden', 'true');\n }\n\n // Update target element.\n this.target.setAttribute('aria-hidden', 'false');\n this.target.removeAttribute('hidden');\n\n if (null != this.controller) {\n this.controller.setAttribute('aria-expanded', 'true');\n }\n\n tabIndexAllow(this.interactiveChildElements);\n\n this.target.focus();\n } else {\n // Disallow focus on the target element.\n this.target.setAttribute('tabindex', '-1');\n\n // Un-hide the outside content.\n for (let i = 0; i < contentLength; i += 1) {\n this.content[i].removeAttribute('aria-hidden');\n }\n\n // Update target element.\n this.target.setAttribute('aria-hidden', 'true');\n this.target.setAttribute('hidden', '');\n\n // Focusable content should have tabindex='-1' or be removed from the DOM.\n tabIndexDeny(this.interactiveChildElements);\n\n if (null != this.controller) {\n this.controller.setAttribute('aria-expanded', 'false');\n this.controller.focus();\n }\n }\n\n /* Run {stateChangeCallback} */\n this.onStateChange.call(this, this.state);\n }\n\n /**\n * Close the dialog on when users click outside of the Dialog element.\n *\n * By default, the Dialog will not close on outside click. This is by design,\n * but can be enabled manually by including an event listener with this method\n * as the callback.\n * document.body.addEventListener('click', dialog.hideOnOutsideClick)\n *\n * @param {Event} event The Event object.\n */\n hideOnOutsideClick(event) {\n const { expanded } = this.state;\n const { target: clicked } = event;\n\n if (\n expanded && ! this.target.contains(clicked)\n && (null != this.controller && ! this.controller.contains(clicked))\n ) {\n this.hide();\n }\n }\n\n /**\n * Close the dialog on ESC key press.\n *\n * By default, the Dialog will not close with the ESC key. This is by design,\n * but can be enabled manually by including an event listener with this method\n * as the callback.\n * document.body.addEventListener('keydown', dialog.handleKeydownEsc)\n *\n * @param {Event} event The Event object.\n */\n handleKeydownEsc(event) {\n const { ESC } = keyCodes;\n const { keyCode } = event;\n\n if (ESC === keyCode) {\n this.hide();\n }\n }\n\n /**\n * Trap key tabs within the dialog.\n *\n * @param {Event} event The Event object.\n */\n handleTargetKeydown(event) {\n const { TAB } = keyCodes;\n const { keyCode, shiftKey } = event;\n const { expanded } = this.state;\n\n if (expanded && keyCode === TAB) {\n const { activeElement } = document;\n\n if (shiftKey && this.firstInteractiveChild === activeElement) {\n event.preventDefault();\n /*\n * Move back from the first interactive child element to the last\n * interactive child element\n */\n this.lastInteractiveChild.focus();\n } else if (! shiftKey && this.lastInteractiveChild === activeElement) {\n event.preventDefault();\n /*\n * Move forward from the last interactive child element to the first\n * interactive child element.\n */\n this.firstInteractiveChild.focus();\n }\n }\n }\n\n /**\n * Handle controller keydown events to patch in button behaviors for\n * non-button elements.\n *\n * @param {Event} event The event object.\n */\n controllerKeydown(event) {\n const {\n SPACE,\n RETURN,\n } = keyCodes;\n const { keyCode } = event;\n\n if ([SPACE, RETURN].includes(keyCode)) {\n event.preventDefault();\n\n /*\n * Treat the Spacebar and Return keys as clicks in case the controller is\n * not a