{"version":3,"file":"themes/bloomberg/assets/js/dist/theme.min.js","sources":["node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","node_modules/@babel/runtime/helpers/esm/slicedToArray.js","node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","node_modules/clipboard/dist/clipboard.js","node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","node_modules/@babel/runtime/helpers/esm/iterableToArray.js","node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","themes/bloomberg/assets/js/src/theme/flag-class.js","themes/bloomberg/assets/js/src/theme/delegate-event.js","themes/bloomberg/assets/js/src/theme/determine-target.js","themes/bloomberg/assets/js/src/theme/is-focusable.js","themes/bloomberg/assets/js/src/theme/toggle-element.js","themes/bloomberg/assets/js/src/theme/get-new-index.js","themes/bloomberg/assets/js/src/theme/focus-trap.js","node_modules/@babel/runtime/helpers/esm/typeof.js","node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","node_modules/@babel/runtime/helpers/esm/toPrimitive.js","node_modules/@babel/runtime/helpers/esm/defineProperty.js","node_modules/@babel/runtime/helpers/esm/classCallCheck.js","node_modules/@babel/runtime/helpers/esm/createClass.js","themes/bloomberg/assets/js/src/theme/history-storage.js","themes/bloomberg/assets/js/src/theme/modals.js","themes/bloomberg/assets/js/src/theme/element-animation.js","themes/bloomberg/assets/js/src/theme/carousels.js","themes/bloomberg/assets/js/src/theme/dropdown.js","themes/bloomberg/assets/js/src/theme/share-button.js","themes/bloomberg/assets/js/src/theme/ajax-directory.js","themes/bloomberg/assets/js/src/theme.js","themes/bloomberg/assets/js/src/theme/get-trigger.js","themes/bloomberg/assets/js/src/theme/tabs.js","themes/bloomberg/assets/js/src/theme/accordions.js"],"sourcesContent":["function _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n  }\n}\nexport { _unsupportedIterableToArray as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n  return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n  if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n  var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (null != t) {\n    var e,\n      n,\n      i,\n      u,\n      a = [],\n      f = !0,\n      o = !1;\n    try {\n      if (i = (t = t.call(r)).next, 0 === l) {\n        if (Object(t) !== t) return;\n        f = !1;\n      } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n    } catch (r) {\n      o = !0, n = r;\n    } finally {\n      try {\n        if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n      } finally {\n        if (o) throw n;\n      }\n    }\n    return a;\n  }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n  \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n  try {\n    return document.execCommand(type);\n  } catch (err) {\n    return false;\n  }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n  var selectedText = select_default()(target);\n  command('cut');\n  return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n  var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n  var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n  fakeElement.style.fontSize = '12pt'; // Reset box model\n\n  fakeElement.style.border = '0';\n  fakeElement.style.padding = '0';\n  fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n  fakeElement.style.position = 'absolute';\n  fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n  var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n  fakeElement.style.top = \"\".concat(yPosition, \"px\");\n  fakeElement.setAttribute('readonly', '');\n  fakeElement.value = value;\n  return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n  var fakeElement = createFakeElement(value);\n  options.container.appendChild(fakeElement);\n  var selectedText = select_default()(fakeElement);\n  command('copy');\n  fakeElement.remove();\n  return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n    container: document.body\n  };\n  var selectedText = '';\n\n  if (typeof target === 'string') {\n    selectedText = fakeCopyAction(target, options);\n  } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n    // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n    selectedText = fakeCopyAction(target.value, options);\n  } else {\n    selectedText = select_default()(target);\n    command('copy');\n  }\n\n  return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  // Defines base properties passed from constructor.\n  var _options$action = options.action,\n      action = _options$action === void 0 ? 'copy' : _options$action,\n      container = options.container,\n      target = options.target,\n      text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n  if (action !== 'copy' && action !== 'cut') {\n    throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n  } // Sets the `target` property using an element that will be have its content copied.\n\n\n  if (target !== undefined) {\n    if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n      if (action === 'copy' && target.hasAttribute('disabled')) {\n        throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n      }\n\n      if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n        throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n      }\n    } else {\n      throw new Error('Invalid \"target\" value, use a valid Element');\n    }\n  } // Define selection strategy based on `text` property.\n\n\n  if (text) {\n    return actions_copy(text, {\n      container: container\n    });\n  } // Defines which selection strategy based on `target` property.\n\n\n  if (target) {\n    return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n      container: container\n    });\n  }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n  var attribute = \"data-clipboard-\".concat(suffix);\n\n  if (!element.hasAttribute(attribute)) {\n    return;\n  }\n\n  return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n  _inherits(Clipboard, _Emitter);\n\n  var _super = _createSuper(Clipboard);\n\n  /**\n   * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n   * @param {Object} options\n   */\n  function Clipboard(trigger, options) {\n    var _this;\n\n    _classCallCheck(this, Clipboard);\n\n    _this = _super.call(this);\n\n    _this.resolveOptions(options);\n\n    _this.listenClick(trigger);\n\n    return _this;\n  }\n  /**\n   * Defines if attributes would be resolved using internal setter functions\n   * or custom functions that were passed in the constructor.\n   * @param {Object} options\n   */\n\n\n  _createClass(Clipboard, [{\n    key: \"resolveOptions\",\n    value: function resolveOptions() {\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n      this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n      this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n      this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n    }\n    /**\n     * Adds a click event listener to the passed trigger.\n     * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n     */\n\n  }, {\n    key: \"listenClick\",\n    value: function listenClick(trigger) {\n      var _this2 = this;\n\n      this.listener = listen_default()(trigger, 'click', function (e) {\n        return _this2.onClick(e);\n      });\n    }\n    /**\n     * Defines a new `ClipboardAction` on each click event.\n     * @param {Event} e\n     */\n\n  }, {\n    key: \"onClick\",\n    value: function onClick(e) {\n      var trigger = e.delegateTarget || e.currentTarget;\n      var action = this.action(trigger) || 'copy';\n      var text = actions_default({\n        action: action,\n        container: this.container,\n        target: this.target(trigger),\n        text: this.text(trigger)\n      }); // Fires an event based on the copy operation result.\n\n      this.emit(text ? 'success' : 'error', {\n        action: action,\n        text: text,\n        trigger: trigger,\n        clearSelection: function clearSelection() {\n          if (trigger) {\n            trigger.focus();\n          }\n\n          window.getSelection().removeAllRanges();\n        }\n      });\n    }\n    /**\n     * Default `action` lookup function.\n     * @param {Element} trigger\n     */\n\n  }, {\n    key: \"defaultAction\",\n    value: function defaultAction(trigger) {\n      return getAttributeValue('action', trigger);\n    }\n    /**\n     * Default `target` lookup function.\n     * @param {Element} trigger\n     */\n\n  }, {\n    key: \"defaultTarget\",\n    value: function defaultTarget(trigger) {\n      var selector = getAttributeValue('target', trigger);\n\n      if (selector) {\n        return document.querySelector(selector);\n      }\n    }\n    /**\n     * Allow fire programmatically a copy action\n     * @param {String|HTMLElement} target\n     * @param {Object} options\n     * @returns Text copied.\n     */\n\n  }, {\n    key: \"defaultText\",\n\n    /**\n     * Default `text` lookup function.\n     * @param {Element} trigger\n     */\n    value: function defaultText(trigger) {\n      return getAttributeValue('text', trigger);\n    }\n    /**\n     * Destroy lifecycle.\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.listener.destroy();\n    }\n  }], [{\n    key: \"copy\",\n    value: function copy(target) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n        container: document.body\n      };\n      return actions_copy(target, options);\n    }\n    /**\n     * Allow fire programmatically a cut action\n     * @param {String|HTMLElement} target\n     * @returns Text cutted.\n     */\n\n  }, {\n    key: \"cut\",\n    value: function cut(target) {\n      return actions_cut(target);\n    }\n    /**\n     * Returns the support of the given action, or all actions if no action is\n     * given.\n     * @param {String} [action]\n     */\n\n  }, {\n    key: \"isSupported\",\n    value: function isSupported() {\n      var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n      var actions = typeof action === 'string' ? [action] : action;\n      var support = !!document.queryCommandSupported;\n      actions.forEach(function (action) {\n        support = support && !!document.queryCommandSupported(action);\n      });\n      return support;\n    }\n  }]);\n\n  return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n    var proto = Element.prototype;\n\n    proto.matches = proto.matchesSelector ||\n                    proto.mozMatchesSelector ||\n                    proto.msMatchesSelector ||\n                    proto.oMatchesSelector ||\n                    proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n    while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n        if (typeof element.matches === 'function' &&\n            element.matches(selector)) {\n          return element;\n        }\n        element = element.parentNode;\n    }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n    var listenerFn = listener.apply(this, arguments);\n\n    element.addEventListener(type, listenerFn, useCapture);\n\n    return {\n        destroy: function() {\n            element.removeEventListener(type, listenerFn, useCapture);\n        }\n    }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n    // Handle the regular Element usage\n    if (typeof elements.addEventListener === 'function') {\n        return _delegate.apply(null, arguments);\n    }\n\n    // Handle Element-less usage, it defaults to global delegation\n    if (typeof type === 'function') {\n        // Use `document` as the first parameter, then apply arguments\n        // This is a short way to .unshift `arguments` without running into deoptimizations\n        return _delegate.bind(null, document).apply(null, arguments);\n    }\n\n    // Handle Selector-based usage\n    if (typeof elements === 'string') {\n        elements = document.querySelectorAll(elements);\n    }\n\n    // Handle Array-like based usage\n    return Array.prototype.map.call(elements, function (element) {\n        return _delegate(element, selector, type, callback, useCapture);\n    });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n    return function(e) {\n        e.delegateTarget = closest(e.target, selector);\n\n        if (e.delegateTarget) {\n            callback.call(element, e);\n        }\n    }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n    return value !== undefined\n        && value instanceof HTMLElement\n        && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n    var type = Object.prototype.toString.call(value);\n\n    return value !== undefined\n        && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n        && ('length' in value)\n        && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n    return typeof value === 'string'\n        || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n    var type = Object.prototype.toString.call(value);\n\n    return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n    if (!target && !type && !callback) {\n        throw new Error('Missing required arguments');\n    }\n\n    if (!is.string(type)) {\n        throw new TypeError('Second argument must be a String');\n    }\n\n    if (!is.fn(callback)) {\n        throw new TypeError('Third argument must be a Function');\n    }\n\n    if (is.node(target)) {\n        return listenNode(target, type, callback);\n    }\n    else if (is.nodeList(target)) {\n        return listenNodeList(target, type, callback);\n    }\n    else if (is.string(target)) {\n        return listenSelector(target, type, callback);\n    }\n    else {\n        throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n    }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n    node.addEventListener(type, callback);\n\n    return {\n        destroy: function() {\n            node.removeEventListener(type, callback);\n        }\n    }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n    Array.prototype.forEach.call(nodeList, function(node) {\n        node.addEventListener(type, callback);\n    });\n\n    return {\n        destroy: function() {\n            Array.prototype.forEach.call(nodeList, function(node) {\n                node.removeEventListener(type, callback);\n            });\n        }\n    }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n    return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n    var selectedText;\n\n    if (element.nodeName === 'SELECT') {\n        element.focus();\n\n        selectedText = element.value;\n    }\n    else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n        var isReadOnly = element.hasAttribute('readonly');\n\n        if (!isReadOnly) {\n            element.setAttribute('readonly', '');\n        }\n\n        element.select();\n        element.setSelectionRange(0, element.value.length);\n\n        if (!isReadOnly) {\n            element.removeAttribute('readonly');\n        }\n\n        selectedText = element.value;\n    }\n    else {\n        if (element.hasAttribute('contenteditable')) {\n            element.focus();\n        }\n\n        var selection = window.getSelection();\n        var range = document.createRange();\n\n        range.selectNodeContents(element);\n        selection.removeAllRanges();\n        selection.addRange(range);\n\n        selectedText = selection.toString();\n    }\n\n    return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n  // Keep this empty so it's easier to inherit from\n  // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n  on: function (name, callback, ctx) {\n    var e = this.e || (this.e = {});\n\n    (e[name] || (e[name] = [])).push({\n      fn: callback,\n      ctx: ctx\n    });\n\n    return this;\n  },\n\n  once: function (name, callback, ctx) {\n    var self = this;\n    function listener () {\n      self.off(name, listener);\n      callback.apply(ctx, arguments);\n    };\n\n    listener._ = callback\n    return this.on(name, listener, ctx);\n  },\n\n  emit: function (name) {\n    var data = [].slice.call(arguments, 1);\n    var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n    var i = 0;\n    var len = evtArr.length;\n\n    for (i; i < len; i++) {\n      evtArr[i].fn.apply(evtArr[i].ctx, data);\n    }\n\n    return this;\n  },\n\n  off: function (name, callback) {\n    var e = this.e || (this.e = {});\n    var evts = e[name];\n    var liveEvents = [];\n\n    if (evts && callback) {\n      for (var i = 0, len = evts.length; i < len; i++) {\n        if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n          liveEvents.push(evts[i]);\n      }\n    }\n\n    // Remove event from queue to prevent memory leak\n    // Suggested by https://github.com/lazd\n    // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n    (liveEvents.length)\n      ? e[name] = liveEvents\n      : delete e[name];\n\n    return this;\n  }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n  return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n  if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n  if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","export function getFlagClass( element, prefix ) {\n\tprefix += '-';\n\tconst classNames = [ ...element.classList ];\n\n\tfor ( const name of classNames ) {\n\t\tif ( name.indexOf( prefix ) === 0 ) {\n\t\t\treturn name.substr( prefix.length );\n\t\t}\n\t}\n\n\treturn null;\n}\n\nexport function setFlagClass( element, prefix, value ) {\n\tprefix += '-';\n\tconst classNames = [ ...element.classList ];\n\n\tclassNames.forEach( className => {\n\t\tif ( className.indexOf( prefix ) === 0 ) {\n\t\t\telement.classList.remove( className );\n\t\t}\n\t} );\n\n\tif ( value ) {\n\t\telement.classList.add( `${ prefix }${ value }` );\n\t}\n}\n","export default function delegateEventListener( eventName, selector, callback ) {\n\tdocument.addEventListener( eventName, event => {\n\t\tlet trigger = event.target;\n\t\tif ( ! trigger.matches( selector ) ) {\n\t\t\ttrigger = trigger.closest( selector );\n\t\t}\n\n\t\tif ( ! trigger ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcallback( event, trigger );\n\t} );\n}\n","export default function determineTarget( element ) {\n\tconst target = element.getAttribute( 'aria-controls' );\n\treturn document.getElementById( target );\n}\n","const computedElementStyles = new WeakMap();\n\nexport const FOCUSABLES_SELECTOR = 'a[href], button, input, select, textarea, details, [tabindex]';\n\nexport function isElementFocusable( element ) {\n\tif ( element.disabled ) {\n\t\treturn false;\n\t}\n\n\tif ( element.tabIndex < 0 ) {\n\t\treturn false;\n\t}\n\n\tif ( element.getAttribute( 'aria-selected' ) === 'false' ) {\n\t\treturn false;\n\t}\n\n\tif ( element.style.display === 'none' ) {\n\t\treturn false;\n\t}\n\n\tif ( element.style.visibility === 'hidden' ) {\n\t\treturn false;\n\t}\n\n\tif ( element.style.position !== 'fixed' && ! element.offsetParent ) {\n\t\treturn false;\n\t}\n\n\t// Last check, visibility\n\tlet computedStyle = computedElementStyles.get( element );\n\tif ( ! computedStyle ) {\n\t\tcomputedStyle = getComputedStyle( element );\n\t\t// Cache the computed style, since it's live and\n\t\t// getComputedStyle returns a new object each time\n\t\tcomputedElementStyles.set( element, computedStyle );\n\t}\n\n\tif ( computedStyle.visibility === 'hidden' ) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n","import { FOCUSABLES_SELECTOR, isElementFocusable } from './is-focusable';\n\nlet modalIndex = 10;\nexport default function toggleElement( elementOrId, show, focus ) {\n\tif ( ! elementOrId ) {\n\t\treturn;\n\t}\n\n\tlet target, targetId;\n\tif ( typeof elementOrId === 'string' ) {\n\t\ttargetId = elementOrId;\n\t\ttarget = document.getElementById( targetId );\n\t} else {\n\t\ttarget = elementOrId;\n\t\ttargetId = target.id;\n\t}\n\n\tif ( ! target ) {\n\t\treturn;\n\t}\n\n\t// Get the controls for this element\n\tconst controls = document.querySelectorAll( `[aria-controls=\"${ targetId }\"]` );\n\n\tif ( typeof show === 'undefined' || show === null ) {\n\t\t// Toggle based on target's hidden status\n\t\tshow = target.getAttribute( 'aria-hidden' ) === 'true' || target.getAttribute( 'aria-hidden' ) !== 'false';\n\t}\n\n\t// Update the controls if applicable\n\tcontrols.forEach( control => {\n\t\tif ( control.hasAttribute( 'aria-expanded' ) ) {\n\t\t\tcontrol.setAttribute( 'aria-expanded', show );\n\t\t}\n\t\tif ( control.hasAttribute( 'aria-selected' ) ) {\n\t\t\tcontrol.tabIndex = show ? null : -1;\n\t\t\tcontrol.setAttribute( 'aria-selected', show );\n\t\t}\n\t} );\n\n\t// Hide/show the target\n\ttarget.setAttribute( 'aria-hidden', ! show );\n\tif ( show && focus ) {\n\t\tif ( target.getAttribute( 'role' ) === 'dialog' ) {\n\t\t\t// If it's a modal, update the z-index to the next level up\n\t\t\ttarget.style.zIndex = ++modalIndex;\n\t\t}\n\n\t\tconst autofocus = [ ...target.querySelectorAll( '[autofocus]' ) ].find( isElementFocusable );\n\n\t\t// If target contains an autofocus element, focus that\n\t\tif ( autofocus ) {\n\t\t\tautofocus.focus();\n\t\t} else if ( target.tabIndex > 0 || target.hasAttribute( 'tabindex' ) ) {\n\t\t\t// If target itself is meant to be focused (is tabble or has explicit tabindex)\n\t\t\ttarget.focus();\n\t\t} else {\n\t\t\t// Find the first focusable element within and focus that\n\t\t\tconst focusable = [ ...target.querySelectorAll( FOCUSABLES_SELECTOR ) ].find( isElementFocusable );\n\t\t\tif ( focusable ) {\n\t\t\t\tfocusable.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\t// Trigger event for target ID\n\tconst event = new CustomEvent( `toggle-${ show ? 'on' : 'off' }` );\n\ttarget.dispatchEvent( event );\n\n\treturn show;\n}\n","export default function getNewIndex( current, total, delta ) {\n\tif ( typeof delta === 'boolean' ) {\n\t\tdelta = delta ? 1 : -1;\n\t}\n\n\tcurrent += delta;\n\tif ( delta > 0 && current > total - 1 ) {\n\t\tcurrent = 0;\n\t}\n\tif ( delta < 0 && current < 0 ) {\n\t\tcurrent = total - 1;\n\t}\n\n\treturn current;\n}\n","import { FOCUSABLES_SELECTOR, isElementFocusable } from './is-focusable';\nimport getNewIndex from './get-new-index';\n\nconst READY_FOCUS_TRAPS = new WeakMap();\n\nexport default function setupFocusTrap(\n\tcontainer,\n\tfocusables = FOCUSABLES_SELECTOR,\n\toptions = {},\n\tcallback = null,\n) {\n\tif ( READY_FOCUS_TRAPS.has( container ) ) {\n\t\treturn;\n\t}\n\n\tif ( typeof focusables === 'boolean' ) {\n\t\toptions = focusables;\n\t\tfocusables = FOCUSABLES_SELECTOR;\n\t}\n\tif ( typeof focusables === 'function' ) {\n\t\tcallback = focusables;\n\t\tfocusables = FOCUSABLES_SELECTOR;\n\t}\n\tif ( typeof options === 'function' ) {\n\t\tcallback = options;\n\t\toptions = false;\n\t}\n\n\tif ( focusables instanceof NodeList ) {\n\t\tfocusables = [ ...focusables ];\n\t}\n\n\tfunction handleFocus( target, event, possibleTargets ) {\n\t\t// Allow trap to be only active sometimes\n\t\tif ( typeof options.ignoreCondition === 'function' &&\n\t\t\toptions.ignoreCondition( event, target, possibleTargets ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst index = possibleTargets.indexOf( target );\n\n\t\tlet newIndex;\n\t\tif ( options.arrowKeys ) {\n\t\t\tswitch ( event.key ) {\n\t\t\t\tcase 'ArrowUp':\n\t\t\t\t\tif ( ! options.leftRightOnly ) {\n\t\t\t\t\t\tnewIndex = getNewIndex( index, possibleTargets.length, -1 );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'ArrowLeft':\n\t\t\t\t\tif ( ! options.upDownOnly ) {\n\t\t\t\t\t\tnewIndex = getNewIndex( index, possibleTargets.length, -1 );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'ArrowDown':\n\t\t\t\t\tif ( ! options.leftRightOnly ) {\n\t\t\t\t\t\tnewIndex = getNewIndex( index, possibleTargets.length, 1 );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'ArrowRight':\n\t\t\t\t\tif ( ! options.upDownOnly ) {\n\t\t\t\t\t\tnewIndex = getNewIndex( index, possibleTargets.length, 1 );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Home':\n\t\t\t\t\tnewIndex = 0;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'End':\n\t\t\t\t\tnewIndex = possibleTargets.length - 1;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t} else if ( event.key === 'Tab' ) {\n\t\t\tnewIndex = getNewIndex( index, possibleTargets.length, ! event.shiftKey );\n\t\t}\n\n\t\tif ( typeof newIndex !== 'undefined' ) {\n\t\t\tevent.preventDefault();\n\t\t\tpossibleTargets[ newIndex ].focus();\n\t\t\tif ( typeof callback === 'function' ) {\n\t\t\t\tcallback( possibleTargets[ newIndex ] );\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( typeof focusables === 'string' ) {\n\t\tcontainer.addEventListener( 'keydown', event => {\n\t\t\t// Check that target is a focusable element within the container\n\t\t\tif ( event.target !== container && event.target.matches( focusables ) ) {\n\t\t\t\tlet elements = [ ...container.querySelectorAll( focusables ) ];\n\t\t\t\tif ( ! options.assumeFocusable ) {\n\t\t\t\t\telements = elements.filter( isElementFocusable );\n\t\t\t\t}\n\n\t\t\t\thandleFocus( event.target, event, elements );\n\t\t\t}\n\t\t} );\n\t} else {\n\t\tfocusables.forEach( element => {\n\t\t\telement.addEventListener( 'keydown', event => {\n\t\t\t\tlet elements = focusables;\n\t\t\t\tif ( ! options.assumeFocusable ) {\n\t\t\t\t\telements = elements.filter( isElementFocusable );\n\t\t\t\t}\n\n\t\t\t\thandleFocus( event.target, event, elements );\n\t\t\t} );\n\t\t} );\n\t}\n\n\tREADY_FOCUS_TRAPS.set( container, focusables );\n}\n","function _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _classCallCheck(a, n) {\n  if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n  for (var t = 0; t < r.length; t++) {\n    var o = r[t];\n    o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n  }\n}\nfunction _createClass(e, r, t) {\n  return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n    writable: !1\n  }), e;\n}\nexport { _createClass as default };","class HistoryStorage {\n\t#state = {}\n\n\tconstructor() {\n\t\tthis.state = history.state || {};\n\t}\n\n\tgetItem( key ) {\n\t\treturn this.state[ key ] ?? null;\n\t}\n\n\tsetItem( key, value ) {\n\t\tthis.state = {\n\t\t\t...history.state,\n\t\t\t[ key ]: value,\n\t\t};\n\n\t\tconst uri = location.href.substring( location.origin.length );\n\n\t\thistory.replaceState( this.state, '', uri );\n\t}\n}\n\nexport default new HistoryStorage();\n","import getTrigger from './get-trigger';\nimport determineTarget from './determine-target';\nimport setupFocusTrap from './focus-trap';\nimport toggleElement from './toggle-element';\n\nconst modalTriggers = new WeakMap();\n\nexport default function setupModals() {\n\t// Initialize all dialog elements\n\tdocument.querySelectorAll( '.js-modal' ).forEach( dialog => {\n\t\t// Set necessary attributes\n\t\tdialog.tabIndex = -1;\n\t\tdialog.setAttribute( 'role', 'dialog' );\n\t\tdialog.setAttribute( 'aria-hidden', true );\n\n\t\t// Trap focus within\n\t\tsetupFocusTrap( dialog );\n\t} );\n\n\t// Handle opening the modal from a button that controls it\n\tdocument.addEventListener( 'click', event => {\n\t\tconst toggle = getTrigger( event.target, '[aria-controls]' );\n\n\t\t// Not a suitable toggle, abort\n\t\tif ( ! toggle ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Skip if the target isn't a dialog\n\t\tconst target = determineTarget( toggle );\n\t\tif ( ! target || ! target.classList.contains( 'js-modal' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\n\t\tlet open = true;\n\t\tif ( toggle.classList.contains( 'js-modal-toggle' ) ) {\n\t\t\topen = target.getAttribute( 'aria-hidden' ) === 'true';\n\t\t}\n\n\t\t// Ensure target has focus trap\n\t\tsetupFocusTrap( target );\n\n\t\t// Open and focus the dialog\n\t\ttoggleElement( target, open, 'focus' );\n\n\t\t// Record the trigger for refocusing later\n\t\tmodalTriggers.set( target, toggle );\n\t} );\n\n\t// Handle closing the modal, by clicking the close button or backdrop\n\tdocument.addEventListener( 'click', ( { target } ) => {\n\t\tif ( ! target.classList.contains( 'js-modal-close' ) && ! target.classList.contains( 'js-modal-backdrop' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Find the parent dialog\n\t\tconst modal = target.closest( '.js-modal' );\n\t\tif ( ! modal ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Close the dialog\n\t\ttoggleElement( modal, false );\n\n\t\t// Refocus the trigger if found\n\t\tif ( modalTriggers.has( modal ) ) {\n\t\t\tmodalTriggers.get( modal ).focus();\n\t\t}\n\t} );\n\n\t// Handle closing the modal via ESC key\n\tdocument.addEventListener( 'keyup', ( { key, target } ) => {\n\t\tif ( key !== 'Escape' ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Find the parent dialog\n\t\tconst modal = target.closest( '.js-modal' );\n\t\tif ( ! modal ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Close the dialog\n\t\ttoggleElement( modal, false );\n\n\t\t// Refocus the trigger if found\n\t\tif ( modalTriggers.has( modal ) ) {\n\t\t\tmodalTriggers.get( modal ).focus();\n\t\t}\n\t} );\n}\n","export default function setupElementAnimation( element, visible, isPrev ) {\n\t// Skip if animation end event not supported\n\tif ( typeof element.onanimationend === 'undefined' ) {\n\t\treturn;\n\t}\n\n\tconst animationClass = `animating-${ visible ? 'in' : 'out' }`;\n\tconst directionClass = `${ animationClass }--${ isPrev ? 'prev' : 'next' }`;\n\n\t// Add classes to dictate animation, remove when complete\n\telement.classList.add( animationClass, directionClass );\n\telement.addEventListener( 'animationend', () => {\n\t\telement.classList.remove( animationClass, directionClass );\n\t}, { once: true } );\n}\n","import setupFocusTrap from './focus-trap';\nimport getNewIndex from './get-new-index';\nimport setupElementAnimation from './element-animation';\nimport historyStorage from './history-storage';\n\nlet carouselCount = 0;\n\nexport function setupCarousel( carousel, options = {} ) {\n\t// Set role description\n\tcarousel.setAttribute( 'role', 'region' );\n\tcarousel.setAttribute( 'aria-roledescription', 'carousel' );\n\n\t// Slides, abort if only 1 item\n\tconst slides = carousel.querySelectorAll( '.js-carousel-slide' );\n\tif ( slides.length < 2 ) {\n\t\tcarousel.classList.add( 'no-controls' );\n\t\treturn;\n\t}\n\n\t// Required elements\n\tconst track = carousel.querySelector( '.js-carousel-track' );\n\n\t// Optional elements\n\tconst prevButton = carousel.querySelector( '.js-carousel-prev' );\n\tconst nextButton = carousel.querySelector( '.js-carousel-next' );\n\tconst pagination = carousel.querySelector( '.js-carousel-pagination' );\n\tconst captionBox = carousel.querySelector( '.js-carousel-caption' );\n\tconst indicator = carousel.querySelector( '.js-carousel-indicator' );\n\tconst currentIndicator = carousel.querySelector( '.js-carousel-current' );\n\tconst totalIndicator = carousel.querySelector( '.js-carousel-total' );\n\tlet paginationButtons, slideCaptions;\n\n\tcarouselCount++;\n\tconst idPrefix = `carousel-${ carouselCount }`;\n\n\tlet currentIndex = historyStorage.getItem( carousel.id ) ?? 0;\n\n\t// Get ID for the track\n\tlet trackId = track.id;\n\tif ( ! trackId ) {\n\t\ttrackId = `${ idPrefix }-track`;\n\t\ttrack.id = trackId;\n\t}\n\n\t// Setup indicator as a progress bar\n\tif ( indicator ) {\n\t\tindicator.setAttribute( 'role', 'progressbar' );\n\t\tindicator.setAttribute( 'aria-label', 'Slide Progress' );\n\t\tindicator.setAttribute( 'aria-valuenow', currentIndex + 1 );\n\t\tindicator.setAttribute( 'aria-valuetext', currentIndex + 1 );\n\t\tindicator.setAttribute( 'aria-valuemax', slides.length );\n\t}\n\tif ( currentIndicator ) {\n\t\tcurrentIndicator.innerText = currentIndex;\n\t}\n\tif ( totalIndicator ) {\n\t\ttotalIndicator.innerText = slides.length;\n\t}\n\n\tslides.forEach( ( slide, index ) => {\n\t\tslide.setAttribute( 'role', 'group' );\n\t\tslide.setAttribute( 'aria-roledescription', 'slide' );\n\t\tslide.setAttribute( 'aria-hidden', true );\n\n\t\tlet slideId = slide.id;\n\t\tif ( ! slideId ) {\n\t\t\tslideId = `${ idPrefix }-slide-${ index + 1 }`;\n\t\t\tslide.id = slideId;\n\t\t}\n\n\t\t// Add pagination dot for slide if applicable\n\t\tif ( pagination ) {\n\t\t\t// Pagination is treated as tabs\n\t\t\tslide.setAttribute( 'role', 'tabpanel' );\n\n\t\t\tconst button = document.createElement( 'button' );\n\t\t\tbutton.type = 'button';\n\t\t\tbutton.tabIndex = -1;\n\t\t\tbutton.setAttribute( 'role', 'tab' );\n\t\t\tbutton.setAttribute( 'aria-controls', slideId );\n\t\t\tbutton.setAttribute( 'aria-selected', false );\n\t\t\tbutton.classList.add( 'js-carousel-pagination-button' );\n\t\t\tbutton.innerText = index + 1;\n\n\t\t\tpagination.append( button );\n\t\t}\n\n\t\t// Add caption entry for slide if applicable\n\t\tconst slideCaption = slide.querySelector( '.js-slide-caption' );\n\t\tif ( captionBox && slideCaption ) {\n\t\t\tlet captionId = slideCaption.id;\n\t\t\tif ( ! captionId ) {\n\t\t\t\tcaptionId = `${ slideId }-caption`;\n\t\t\t\tslideCaption.id = captionId;\n\t\t\t}\n\n\t\t\tslide.setAttribute( 'aria-labelledby', captionId );\n\t\t\tslideCaption.setAttribute( 'aria-hidden', true );\n\t\t\tcaptionBox.append( slideCaption );\n\t\t}\n\t} );\n\n\t// Get pagination buttons\n\tif ( pagination ) {\n\t\ttrack.setAttribute( 'role', 'tablist' );\n\t\tpaginationButtons = pagination.querySelectorAll( '.js-carousel-pagination-button' );\n\t}\n\t// Get captions\n\tif ( captionBox ) {\n\t\tslideCaptions = captionBox.querySelectorAll( '.js-slide-caption' );\n\t}\n\n\tfunction goToSlide( newIndex ) {\n\t\t// Get the new index if just next/prev boolean\n\t\tif ( typeof newIndex !== 'number' ) {\n\t\t\tnewIndex = getNewIndex( currentIndex, slides.length, newIndex );\n\t\t}\n\n\t\t// Determine direction\n\t\tlet backward = newIndex < currentIndex;\n\t\t// last > first = forward\n\t\tif ( newIndex === 0 && currentIndex === slides.length - 1 ) {\n\t\t\tbackward = false;\n\t\t}\n\t\t// first > last = backward\n\t\tif ( newIndex === slides.length - 1 && currentIndex === 0 ) {\n\t\t\tbackward = true;\n\t\t}\n\n\t\t// Update slides\n\t\tconst currentSlide = slides.item( currentIndex );\n\t\tconst newSlide = slides.item( newIndex );\n\t\tif ( options.animate ) {\n\t\t\tsetupElementAnimation( slides.item( newIndex ), true, backward );\n\t\t\tsetupElementAnimation( slides.item( currentIndex ), false, backward );\n\t\t}\n\t\tcurrentSlide.setAttribute( 'aria-hidden', true );\n\t\tnewSlide.setAttribute( 'aria-hidden', false );\n\n\t\t// Update buttons if present\n\t\tif ( paginationButtons ) {\n\t\t\tconst currentTab = paginationButtons.item( currentIndex );\n\t\t\tcurrentTab.tabIndex = -1;\n\t\t\tcurrentTab.setAttribute( 'aria-selected', false );\n\n\t\t\tconst newTab = paginationButtons.item( newIndex );\n\t\t\tnewTab.tabIndex = 0;\n\t\t\tnewTab.setAttribute( 'aria-selected', true );\n\t\t}\n\n\t\t// Update caption if present\n\t\tif ( slideCaptions ) {\n\t\t\tconst currentCaption = slideCaptions.item( currentIndex );\n\t\t\tconst newCaption = slideCaptions.item( newIndex );\n\t\t\tif ( options.animate ) {\n\t\t\t\tsetupElementAnimation( slideCaptions.item( newIndex ), true, backward );\n\t\t\t\tsetupElementAnimation( slideCaptions.item( currentIndex ), false, backward );\n\t\t\t}\n\t\t\tcurrentCaption.setAttribute( 'aria-hidden', true );\n\t\t\tnewCaption.setAttribute( 'aria-hidden', false );\n\t\t}\n\n\t\t// Fire callback if provided\n\t\tif ( typeof options.onSlideChange === 'function' ) {\n\t\t\toptions.onSlideChange( {\n\t\t\t\tcarousel,\n\t\t\t\tslides,\n\t\t\t\ttrack,\n\t\t\t\tprevButton,\n\t\t\t\tnextButton,\n\t\t\t\tpagination,\n\t\t\t\tpaginationButtons,\n\t\t\t\tcaptionBox,\n\t\t\t\tslideCaptions,\n\t\t\t\tindicator,\n\t\t\t\tcurrentIndicator,\n\t\t\t\ttotalIndicator,\n\t\t\t\tcurrentIndex: newIndex,\n\t\t\t\tprevIndex: currentIndex,\n\t\t\t} );\n\t\t}\n\n\t\t// Update current index\n\t\tcurrentIndex = newIndex;\n\n\t\t// Update the indicator\n\t\tif ( indicator ) {\n\t\t\tindicator.setAttribute( 'aria-valuenow', currentIndex + 1 );\n\t\t\tindicator.setAttribute( 'aria-valuetext', currentIndex + 1 );\n\t\t}\n\t\tif ( currentIndicator ) {\n\t\t\tcurrentIndicator.innerText = currentIndex;\n\t\t}\n\n\t\thistoryStorage.setItem( carousel.id, currentIndex );\n\t}\n\n\tlet autoTimeout;\n\tfunction disableTimer() {\n\t\tcarousel.classList.remove( 'automated' );\n\t\tclearInterval( autoTimeout );\n\t}\n\n\t// Timer handling\n\tif ( carousel.dataset.timer ) {\n\t\tconst delay = parseInt( carousel.dataset.timer );\n\t\tcarousel.style.setProperty( '--carousel-timer', `${ delay }ms` );\n\n\t\tfunction autoAdvance() {\n\t\t\tgoToSlide( true );\n\t\t\tautoTimeout = setTimeout( autoAdvance, delay );\n\t\t}\n\n\t\tcarousel.classList.add( 'automated' );\n\t\tautoTimeout = setTimeout( autoAdvance, delay );\n\t}\n\n\t// Next/Prev button functionality\n\tif ( nextButton ) {\n\t\tnextButton.setAttribute( 'aria-controls', trackId );\n\t\tnextButton.addEventListener( 'click', event => {\n\t\t\tevent.preventDefault();\n\t\t\tdisableTimer();\n\t\t\tgoToSlide( true );\n\t\t} );\n\t}\n\tif ( prevButton ) {\n\t\tprevButton.setAttribute( 'aria-controls', trackId );\n\t\tprevButton.addEventListener( 'click', event => {\n\t\t\tevent.preventDefault();\n\t\t\tdisableTimer();\n\t\t\tgoToSlide( false );\n\t\t} );\n\t}\n\n\t// Pagination button functionality\n\tif ( paginationButtons ) {\n\t\tconst buttons = [ ...paginationButtons ];\n\n\t\tpagination.addEventListener( 'click', event => {\n\t\t\tconst index = buttons.indexOf( event.target );\n\t\t\tif ( index >= 0 ) {\n\t\t\t\tgoToSlide( index );\n\t\t\t}\n\t\t} );\n\n\t\t// Allow navigation pagination buttons with arrow keys\n\t\tsetupFocusTrap( pagination, paginationButtons, {\n\t\t\tarrowKeys: true,\n\t\t\tassumeFocusable: true,\n\t\t}, function( button ) {\n\t\t\tgoToSlide( buttons.indexOf( button ) );\n\t\t} );\n\t}\n\n\t// Initialize current slide\n\tslides.item( currentIndex ).setAttribute( 'aria-hidden', false );\n\tif ( paginationButtons ) {\n\t\tpaginationButtons.item( currentIndex ).tabIndex = 0;\n\t\tpaginationButtons.item( currentIndex ).setAttribute( 'aria-selected', true );\n\t}\n\tif ( slideCaptions ) {\n\t\tslideCaptions.item( currentIndex ).setAttribute( 'aria-hidden', false );\n\t}\n\n\t// Fire callback if provided, pass component objects + prev/new indexes\n\tif ( typeof options.onReady === 'function' ) {\n\t\toptions.onReady( {\n\t\t\tcarousel,\n\t\t\tslides,\n\t\t\ttrack,\n\t\t\tprevButton,\n\t\t\tnextButton,\n\t\t\tpagination,\n\t\t\tpaginationButtons,\n\t\t\tcaptionBox,\n\t\t\tslideCaptions,\n\t\t\tindicator,\n\t\t\tcurrentIndicator,\n\t\t\ttotalIndicator,\n\t\t} );\n\t}\n}\n\nexport default function setupCarousels( options ) {\n\tdocument.querySelectorAll( '.js-carousel' ).forEach( carousel => setupCarousel( carousel, options ) );\n}\n","// Derived from https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n\n// Save a list of named combobox actions, for future readability\nconst SelectActions = {\n\tClose: 0,\n\tCloseSelect: 1,\n\tFirst: 2,\n\tLast: 3,\n\tNext: 4,\n\tOpen: 5,\n\tPageDown: 6,\n\tPageUp: 7,\n\tPrevious: 8,\n\tSelect: 9,\n\tType: 10,\n};\n\n/*\n * Helper functions\n */\n\n// filter an array of options against an input string\n// returns an array of options that begin with the filter string, case-independent\nfunction filterOptions( options = [], filter, exclude = [] ) {\n\treturn options.filter( option => {\n\t\tconst matches = option.toLowerCase().indexOf( filter.toLowerCase() ) === 0;\n\t\treturn matches && exclude.indexOf( option ) < 0;\n\t} );\n}\n\n// map a key press to an action\nfunction getActionFromKey( event, menuOpen ) {\n\tconst { key, altKey, ctrlKey, metaKey } = event;\n\tconst openKeys = [ 'ArrowDown', 'ArrowUp', 'Enter', ' ' ]; // all keys that will do the default open action\n\n\t// handle opening when closed\n\tif ( ! menuOpen && openKeys.includes( key ) ) {\n\t\treturn SelectActions.Open;\n\t}\n\n\t// home and end move the selected option when open or closed\n\tif ( key === 'Home' ) {\n\t\treturn SelectActions.First;\n\t}\n\tif ( key === 'End' ) {\n\t\treturn SelectActions.Last;\n\t}\n\n\t// handle typing characters when open or closed\n\tif (\n\t\tkey === 'Backspace' ||\n\t\tkey === 'Clear' ||\n\t\t( key.length === 1 && key !== ' ' && ! altKey && ! ctrlKey && ! metaKey )\n\t) {\n\t\treturn SelectActions.Type;\n\t}\n\n\t// handle keys when open\n\tif ( menuOpen ) {\n\t\tif ( key === 'ArrowUp' && altKey ) {\n\t\t\treturn SelectActions.CloseSelect;\n\t\t} else if ( key === 'ArrowDown' && ! altKey ) {\n\t\t\treturn SelectActions.Next;\n\t\t} else if ( key === 'ArrowUp' ) {\n\t\t\treturn SelectActions.Previous;\n\t\t} else if ( key === 'PageUp' ) {\n\t\t\treturn SelectActions.PageUp;\n\t\t} else if ( key === 'PageDown' ) {\n\t\t\treturn SelectActions.PageDown;\n\t\t} else if ( key === 'Escape' ) {\n\t\t\treturn SelectActions.Close;\n\t\t} else if ( key === 'Enter' || key === ' ' ) {\n\t\t\treturn SelectActions.CloseSelect;\n\t\t}\n\t}\n}\n\n// return the index of an option from an array of options, based on a search string\n// if the filter is multiple iterations of the same letter (e.g \"aaa\"), then cycle through first-letter matches\nfunction getIndexByLetter( options, filter, startIndex = 0 ) {\n\tconst orderedOptions = [\n\t\t...options.slice( startIndex ),\n\t\t...options.slice( 0, startIndex ),\n\t];\n\tconst firstMatch = filterOptions( orderedOptions, filter )[ 0 ];\n\tconst allSameLetter = array => array.every( letter => letter === array[ 0 ] );\n\n\t// first check if there is an exact match for the typed string\n\t// else if the same letter is being repeated, cycle through first-letter matches\n\tif ( firstMatch ) {\n\t\treturn options.indexOf( firstMatch );\n\t} else if ( allSameLetter( filter.split( '' ) ) ) {\n\t\tconst matches = filterOptions( orderedOptions, filter[ 0 ] );\n\t\treturn options.indexOf( matches[ 0 ] );\n\t}\n\n\t// if no matches, return -1\n\treturn -1;\n}\n\n// get an updated option index after performing an action\nfunction getUpdatedIndex( currentIndex, maxIndex, action ) {\n\tconst pageSize = 10; // used for pageup/pagedown\n\n\tswitch ( action ) {\n\t\tcase SelectActions.First:\n\t\t\treturn 0;\n\n\t\tcase SelectActions.Last:\n\t\t\treturn maxIndex;\n\n\t\tcase SelectActions.Previous:\n\t\t\treturn Math.max( 0, currentIndex - 1 );\n\n\t\tcase SelectActions.Next:\n\t\t\treturn Math.min( maxIndex, currentIndex + 1 );\n\n\t\tcase SelectActions.PageUp:\n\t\t\treturn Math.max( 0, currentIndex - pageSize );\n\n\t\tcase SelectActions.PageDown:\n\t\t\treturn Math.min( maxIndex, currentIndex + pageSize );\n\n\t\tdefault:\n\t\t\treturn currentIndex;\n\t}\n}\n\n// check if element is visible in browser view port\nfunction isElementInView( element ) {\n\tconst bounding = element.getBoundingClientRect();\n\n\treturn (\n\t\tbounding.top >= 0 &&\n\t\tbounding.left >= 0 &&\n\t\tbounding.bottom <=\n\t\t\t( window.innerHeight || document.documentElement.clientHeight ) &&\n\t\tbounding.right <=\n\t\t\t( window.innerWidth || document.documentElement.clientWidth )\n\t);\n}\n\n// check if an element is currently scrollable\nfunction isScrollable( element ) {\n\treturn element && element.clientHeight < element.scrollHeight;\n}\n\n// ensure a given child element is within the parent's visible scroll area\n// if the child is not visible, scroll the parent\nfunction maintainScrollVisibility( activeElement, scrollParent ) {\n\tconst { offsetHeight, offsetTop } = activeElement;\n\tconst { offsetHeight: parentOffsetHeight, scrollTop } = scrollParent;\n\n\tconst isAbove = offsetTop < scrollTop;\n\tconst isBelow = offsetTop + offsetHeight > scrollTop + parentOffsetHeight;\n\n\tif ( isAbove ) {\n\t\tscrollParent.scrollTo( 0, offsetTop );\n\t} else if ( isBelow ) {\n\t\tscrollParent.scrollTo( 0, offsetTop - parentOffsetHeight + offsetHeight );\n\t}\n}\n\n/*\n * Select Component\n * Accepts a combobox element and an array of string options\n */\nlet instanceCount = 1;\nclass Combobox {\n\tconstructor( container ) {\n\t\tthis.selectElement = container.querySelector( 'select' );\n\t\tthis.selectElement.setAttribute( 'aria-hidden', this.selectElement.hidden = true );\n\n\t\tconst label = container.querySelector( 'label' );\n\t\tif ( ! label.id ) {\n\t\t\tlabel.id = `combobox${ instanceCount }-label`;\n\t\t}\n\n\t\tconst wrapper = document.createElement( 'div' );\n\t\twrapper.setAttribute( 'class', 'combobox js-select' );\n\t\tthis.wrapperElement = wrapper;\n\n\t\tconst combobox = document.createElement( 'div' );\n\t\tcombobox.setAttribute( 'class', 'combobox__input' );\n\t\tcombobox.setAttribute( 'role', 'combobox' );\n\t\tcombobox.setAttribute( 'id', `combobox${ instanceCount }` );\n\t\tcombobox.setAttribute( 'aria-labelledby', label.id );\n\t\tcombobox.setAttribute( 'aria-haspopup', 'listbox' );\n\t\tcombobox.setAttribute( 'aria-controls', `listbox${ instanceCount }` );\n\t\tcombobox.setAttribute( 'aria-expanded', 'false' );\n\t\tcombobox.setAttribute( 'tabindex', '0' );\n\t\tthis.comboboxElement = combobox;\n\n\t\tconst listbox = document.createElement( 'div' );\n\t\tlistbox.setAttribute( 'class', 'combobox__menu' );\n\t\tlistbox.setAttribute( 'role', 'listbox' );\n\t\tlistbox.setAttribute( 'id', `listbox${ instanceCount }` );\n\t\tlistbox.setAttribute( 'aria-labelledby', label.id );\n\t\tlistbox.setAttribute( 'tabindex', '-1' );\n\t\tthis.listboxElement = listbox;\n\n\t\tlabel.htmlFor = combobox.id;\n\t\twrapper.append( combobox );\n\t\twrapper.append( listbox );\n\t\tthis.selectElement.parentNode.insertBefore( wrapper, this.selectElement );\n\n\t\tthis.optionStrings = [];\n\t\tthis.optionElements = [];\n\t\tthis.selectElement.querySelectorAll( 'option' ).forEach( ( option, index ) => {\n\t\t\tthis.optionStrings.push( option.textContent );\n\n\t\t\tconst optionElement = this.createOption( option, index );\n\t\t\tthis.optionElements.push( optionElement );\n\t\t\tthis.listboxElement.appendChild( optionElement );\n\t\t} );\n\n\t\t// Initialize\n\t\tthis.activeIndex = 0;\n\t\tthis.isOpen = false;\n\t\tthis.searchString = '';\n\t\tthis.searchTimeout = null;\n\t\tthis.ignoreChangeEvent = false;\n\t\tthis.selectOption( this.selectElement.selectedIndex );\n\n\t\t// add event listeners\n\t\tthis.comboboxElement.addEventListener( 'blur', this.onComboboxBlur.bind( this ) );\n\t\tthis.comboboxElement.addEventListener( 'click', this.onComboboxClick.bind( this ) );\n\t\tthis.comboboxElement.addEventListener( 'keydown', this.onComboboxKeyDown.bind( this ) );\n\t\tthis.selectElement.addEventListener( 'change', () => {\n\t\t\tif ( ! this.ignoreChangeEvent ) {\n\t\t\t\tthis.selectOption( this.selectElement.selectedIndex );\n\t\t\t}\n\t\t} );\n\n\t\tinstanceCount++;\n\t}\n\n\tcreateOption( option, index ) {\n\t\tconst optionElement = document.createElement( 'div' );\n\t\toptionElement.setAttribute( 'role', 'option' );\n\t\toptionElement.id = `${ this.listboxElement.id }-option${ index }`;\n\t\toptionElement.className = 'combobox__option';\n\t\toptionElement.innerText = option.innerText;\n\t\toptionElement.dataset.value = option.value;\n\n\t\toptionElement.addEventListener( 'click', event => {\n\t\t\tevent.stopPropagation();\n\t\t\tthis.onOptionClick( index );\n\t\t} );\n\n\t\toptionElement.addEventListener( 'mousedown', this.onOptionMouseDown.bind( this ) );\n\n\t\treturn optionElement;\n\t}\n\n\tgetSearchString( char ) {\n\t\t// reset typing timeout and start new timeout\n\t\t// this allows us to make multiple-letter matches, like a native select\n\t\tif ( typeof this.searchTimeout === 'number' ) {\n\t\t\twindow.clearTimeout( this.searchTimeout );\n\t\t}\n\n\t\tthis.searchTimeout = window.setTimeout( () => {\n\t\t\tthis.searchString = '';\n\t\t}, 500 );\n\n\t\t// add most recent letter to saved search string\n\t\tthis.searchString += char;\n\t\treturn this.searchString;\n\t}\n\n\tonComboboxBlur() {\n\t\t// do not do blur action if ignoreBlur flag has been set\n\t\tif ( this.ignoreBlur ) {\n\t\t\tthis.ignoreBlur = false;\n\t\t\treturn;\n\t\t}\n\n\t\t// select current option and close\n\t\tif ( this.isOpen ) {\n\t\t\tthis.selectOption( this.activeIndex, 'silent' );\n\t\t\tthis.updateMenuState( false, false );\n\t\t}\n\t}\n\n\tonComboboxClick() {\n\t\tthis.updateMenuState( ! this.isOpen, false );\n\t}\n\n\tonComboboxKeyDown( event ) {\n\t\tconst { key } = event;\n\t\tconst max = this.optionElements.length - 1;\n\n\t\tconst action = getActionFromKey( event, this.isOpen );\n\n\t\tswitch ( action ) {\n\t\t\tcase SelectActions.Last:\n\t\t\tcase SelectActions.First:\n\t\t\t\tthis.updateMenuState( true );\n\n\t\t\t// intentional fallthrough\n\t\t\tcase SelectActions.Next:\n\t\t\tcase SelectActions.Previous:\n\t\t\tcase SelectActions.PageUp:\n\t\t\tcase SelectActions.PageDown:\n\t\t\t\tevent.preventDefault();\n\t\t\t\treturn this.onOptionChange(\n\t\t\t\t\tgetUpdatedIndex( this.activeIndex, max, action ),\n\t\t\t\t);\n\n\t\t\tcase SelectActions.CloseSelect:\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis.selectOption( this.activeIndex );\n\n\t\t\t// intentional fallthrough\n\t\t\tcase SelectActions.Close:\n\t\t\t\tevent.preventDefault();\n\t\t\t\treturn this.updateMenuState( false );\n\n\t\t\tcase SelectActions.Type:\n\t\t\t\treturn this.onComboboxType( key );\n\n\t\t\tcase SelectActions.Open:\n\t\t\t\tevent.preventDefault();\n\t\t\t\treturn this.updateMenuState( true );\n\t\t}\n\t}\n\n\tonComboboxType( letter ) {\n\t\t// open the listbox if it is closed\n\t\tthis.updateMenuState( true );\n\n\t\t// find the index of the first matching option\n\t\tconst searchString = this.getSearchString( letter );\n\t\tconst searchIndex = getIndexByLetter(\n\t\t\tthis.optionStrings,\n\t\t\tsearchString,\n\t\t\tthis.activeIndex + 1,\n\t\t);\n\n\t\t// if a match was found, go to it\n\t\t// if no matches, clear the timeout and search string\n\t\tif ( searchIndex >= 0 ) {\n\t\t\tthis.onOptionChange( searchIndex );\n\t\t} else {\n\t\t\twindow.clearTimeout( this.searchTimeout );\n\t\t\tthis.searchString = '';\n\t\t}\n\t}\n\n\tonOptionChange( index ) {\n\t\t// update state\n\t\tthis.activeIndex = index;\n\n\t\t// update current option\n\t\tthis.highlightOption( index );\n\n\t\t// update aria-activedescendant\n\t\tthis.comboboxElement.setAttribute( 'aria-activedescendant', this.optionElements[ index ].id );\n\n\t\t// ensure the new option is visible on screen\n\t\tif ( isScrollable( this.listboxElement ) ) {\n\t\t\tmaintainScrollVisibility( this.optionElements[ index ], this.listboxElement );\n\t\t}\n\n\t\t// ensure the new option is in view\n\t\tif ( ! isElementInView( this.optionElements[ index ] ) ) {\n\t\t\tthis.optionElements[ index ].scrollIntoView( { block: 'nearest' } );\n\t\t}\n\t}\n\n\tonOptionClick( index ) {\n\t\tthis.onOptionChange( index );\n\t\tthis.selectOption( index );\n\t\tthis.updateMenuState( false );\n\t}\n\n\tonOptionMouseDown() {\n\t\t// Clicking an option will cause a blur event,\n\t\t// but we don't want to perform the default keyboard blur action\n\t\tthis.ignoreBlur = true;\n\t}\n\n\thighlightOption( index ) {\n\t\tthis.optionElements.forEach( ( optionElement, i ) => {\n\t\t\tif ( i === index ) {\n\t\t\t\toptionElement.classList.add( 'is-current' );\n\t\t\t} else {\n\t\t\t\toptionElement.classList.remove( 'is-current' );\n\t\t\t}\n\t\t} );\n\t}\n\n\tselectOption( index, silent = false ) {\n\t\t// update state\n\t\tthis.activeIndex = index;\n\n\t\t// update displayed value\n\t\tthis.comboboxElement.textContent = this.optionElements[ index ].textContent;\n\n\t\t// update aria-selected\n\t\tthis.optionElements.forEach( ( optionElement, i ) => {\n\t\t\toptionElement.setAttribute( 'aria-selected', i === index ? 'true' : 'false' );\n\t\t} );\n\n\t\t// ensure option is highlighted\n\t\tthis.highlightOption( index );\n\n\t\t// update the original <select>\n\t\tthis.selectElement.value = this.optionElements[ index ].dataset.value;\n\n\t\tif ( ! silent ) {\n\t\t\t// trigger change event, but ignore internally to avoid infinite loop\n\t\t\tthis.ignoreChangeEvent = true;\n\t\t\tthis.selectElement.dispatchEvent( new Event( 'input', { bubbles: true, composed: true } ) );\n\t\t\tthis.selectElement.dispatchEvent( new Event( 'change', { bubbles: true } ) );\n\t\t\tthis.ignoreChangeEvent = false;\n\t\t}\n\t}\n\n\tupdateMenuState( isOpen, callFocus = true ) {\n\t\tif ( this.isOpen === isOpen ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// update state\n\t\tthis.isOpen = isOpen;\n\n\t\t// update aria-expanded and styles\n\t\tthis.comboboxElement.setAttribute( 'aria-expanded', `${ isOpen }` );\n\n\t\t// update activedescendant\n\t\tconst activeId = this.isOpen ? this.optionElements[ this.activeIndex ].id : '';\n\t\tthis.comboboxElement.setAttribute( 'aria-activedescendant', activeId );\n\n\t\tif ( activeId === '' && ! isElementInView( this.comboboxElement ) ) {\n\t\t\tthis.comboboxElement.scrollIntoView( { block: 'nearest' } );\n\t\t}\n\n\t\t// move focus back to the combobox, if needed\n\t\tif ( callFocus ) {\n\t\t\tthis.comboboxElement.focus();\n\t\t}\n\t}\n}\n\nexport default function setupDropdowns() {\n\tdocument.querySelectorAll( '.js-dropdown' ).forEach( widget => {\n\t\tnew Combobox( widget );\n\t} );\n}\n","const NETWORKS = {\n\tfacebook( url ) {\n\t\tconst params = new URLSearchParams( { u: url } );\n\t\treturn 'https://facebook.com/sharer/sharer.php?' + params.toString();\n\t},\n\tlinkedin( url ) {\n\t\tconst params = new URLSearchParams( { mini: true, url } );\n\t\treturn 'https://www.linkedin.com/shareArticle?' + params.toString();\n\t},\n\ttwitter( url ) {\n\t\tconst params = new URLSearchParams( { url } );\n\t\treturn 'https://twitter.com/intent/tweet/?' + params.toString();\n\t},\n};\n\nexport function share( network, url ) {\n\tconst builder = NETWORKS[ network ];\n\n\tconst width = 800;\n\tconst height = 600;\n\tconst top = ( window.innerHeight - 600 ) / 2;\n\tconst left = ( window.innerWidth - 800 ) / 2;\n\n\twindow.open( builder( url ), 'share', `popup=1,width=${ width },height=${ height },top=${ top },left=${ left }` );\n}\n\nexport default function setupShareButtons() {\n\tdocument.addEventListener( 'click', function( e ) {\n\t\tconst button = e.target.closest( '[data-share]' );\n\t\tif ( button ) {\n\t\t\te.preventDefault();\n\t\t\tconst network = button.dataset.share;\n\t\t\tconst url = button.dataset.url || button.href || window.location.href;\n\n\t\t\tif ( e.pointerType === 'mouse' || ! navigator.share ) {\n\t\t\t\tshare( network, url );\n\t\t\t} else {\n\t\t\t\tnavigator.share( {\n\t\t\t\t\ttitle: document.title,\n\t\t\t\t\turl,\n\t\t\t\t} ).catch( () => {\n\t\t\t\t\tshare( network.url );\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t} );\n}\n","export function setupDirectoryModule( container ) {\n\tconst baseUrl = container.dataset.baseUrl;\n\tconst fetchUrl = container.dataset.fetchUrl;\n\n\tconst forms = container.querySelectorAll( 'form' );\n\n\tconst liveArea = container.querySelector( '[aria-live]' );\n\tconst heading = container.querySelector( '.js-directory-heading' );\n\tconst filterWrappers = container.querySelectorAll( '.js-filter-group' );\n\tconst statsWrapper = container.querySelector( '.js-directory-stats' );\n\tconst sortWrapper = container.querySelector( '.js-directory-sort' );\n\tconst navWrapper = container.querySelector( '.js-directory-nav' );\n\tconst tagsWrapper = container.querySelector( '.js-directory-tags' );\n\tconst resultsWrapper = container.querySelector( '.js-directory-results' );\n\tconst paginationWrappers = container.querySelectorAll( '.js-directory-pagination' );\n\n\tconst format = resultsWrapper.dataset.format;\n\tconst perPage = paginationWrappers[ 0 ]?.dataset.perpage;\n\n\tconst initParams = new URLSearchParams( window.location.search );\n\tif ( paginationWrappers[ 0 ] ) {\n\t\tinitParams.append( 'paged', paginationWrappers[ 0 ].dataset.page );\n\t}\n\n\thistory.replaceState( { query: initParams.toString() }, '' );\n\n\tfunction syncFormsWithParams( params ) {\n\t\t// Reset, but harder (e.g. from loading page with preselected options)\n\t\tcontainer.querySelectorAll( 'input' ).forEach( input => {\n\t\t\tif ( input.type === 'radio' || input.type === 'checkbox' ) {\n\t\t\t\tinput.checked = false;\n\t\t\t} else if ( input.type !== 'hidden' ) {\n\t\t\t\tinput.value = '';\n\t\t\t}\n\t\t} );\n\n\t\tfilterWrappers.forEach( group => group.style.setProperty( '--filter-count', '' ) );\n\n\t\tfor ( const key of params.keys() ) {\n\t\t\tconst selected = params.getAll( key );\n\t\t\tcontainer.querySelectorAll( `[name=\"${ key }\"]` ).forEach( input => {\n\t\t\t\tconst group = input.closest( '.js-filter-group' );\n\t\t\t\tif ( group ) {\n\t\t\t\t\tgroup.style.setProperty( '--filter-count', selected.length ? `'${ selected.length }'` : '' );\n\t\t\t\t}\n\n\t\t\t\tif ( input.type === 'radio' || input.type === 'checkbox' ) {\n\t\t\t\t\tinput.checked = selected.includes( input.value );\n\t\t\t\t} else if ( input.type !== 'hidden' ) {\n\t\t\t\t\tinput.value = selected[ 0 ];\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction fetchResults( params ) {\n\t\tsyncFormsWithParams( params );\n\n\t\tparams.append( 'format', format );\n\n\t\tcontainer.classList.add( 'loading' );\n\n\t\treturn fetch( fetchUrl + '?' + params.toString() )\n\t\t\t.then( response => {\n\t\t\t\tif ( ! response.ok ) {\n\t\t\t\t\tthrow new Error( `Directory Request Status: ${ response.status }` );\n\t\t\t\t}\n\n\t\t\t\treturn response.json();\n\t\t\t} )\n\t\t\t.then( response => {\n\t\t\t\tif ( heading ) {\n\t\t\t\t\theading.hidden = ! response.heading;\n\t\t\t\t\theading.innerHTML = response.heading;\n\t\t\t\t}\n\n\t\t\t\tif ( statsWrapper ) {\n\t\t\t\t\tstatsWrapper.hidden = ! response.stats;\n\t\t\t\t\tstatsWrapper.innerHTML = response.stats;\n\t\t\t\t}\n\n\t\t\t\tif ( sortWrapper ) {\n\t\t\t\t\tsortWrapper.hidden = ! response.sort;\n\t\t\t\t\tsortWrapper.innerHTML = response.sort;\n\t\t\t\t}\n\n\t\t\t\tif ( navWrapper ) {\n\t\t\t\t\tnavWrapper.hidden = ! response.nav;\n\t\t\t\t\tnavWrapper.innerHTML = response.nav;\n\t\t\t\t}\n\n\t\t\t\tif ( tagsWrapper ) {\n\t\t\t\t\ttagsWrapper.hidden = ! response.tags;\n\t\t\t\t\ttagsWrapper.innerHTML = response.tags;\n\t\t\t\t}\n\n\t\t\t\tif ( resultsWrapper ) {\n\t\t\t\t\tlet results = response.results;\n\t\t\t\t\tif ( results instanceof Array ) {\n\t\t\t\t\t\tresults = results.join( '\\n' );\n\t\t\t\t\t}\n\n\t\t\t\t\tresultsWrapper.hidden = ! results;\n\t\t\t\t\tresultsWrapper.innerHTML = results;\n\t\t\t\t}\n\n\t\t\t\tpaginationWrappers.forEach( wrapper => {\n\t\t\t\t\twrapper.hidden = ! response.pagination;\n\t\t\t\t\twrapper.innerHTML = response.pagination;\n\t\t\t\t} );\n\n\t\t\t\tcontainer.classList.remove( 'loading' );\n\t\t\t} )\n\t\t\t.catch( () => {\n\t\t\t\t// do nothing\n\t\t\t} )\n\t\t\t.finally( () => {\n\t\t\t\tliveArea.setAttribute( 'aria-busy', false );\n\t\t\t\tliveArea.focus();\n\n\t\t\t\tif ( window.scrollY > container.offsetTop ) {\n\t\t\t\t\tcontainer.scrollIntoView( true );\n\t\t\t\t}\n\n\t\t\t\t// Move any modals within to body\n\t\t\t\tcontainer.querySelectorAll( '.js-modal' ).forEach( modal => {\n\t\t\t\t\tdocument.body.appendChild( modal );\n\t\t\t\t} );\n\t\t\t} );\n\t}\n\n\tfunction fetchResultsFromForms( page = 1 ) {\n\t\tliveArea.setAttribute( 'aria-busy', true );\n\n\t\tconst params = new URLSearchParams();\n\t\tforms.forEach( form => {\n\t\t\tconst data = new FormData( form );\n\t\t\tfor ( const [ key, value ] of data.entries() ) {\n\t\t\t\tif ( value && value !== 'ALL' ) {\n\t\t\t\t\tparams.append( key, value );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\tif ( page > 1 ) {\n\t\t\tparams.append( 'paged', page );\n\t\t}\n\n\t\tif ( perPage ) {\n\t\t\tparams.append( 'per_page', perPage );\n\t\t}\n\n\t\tconst query = params.toString();\n\t\tif ( baseUrl ) {\n\t\t\thistory.pushState( { query }, '', baseUrl + ( query ? `?${ query }` : '' ) );\n\t\t}\n\n\t\tfetchResults( params );\n\t}\n\n\tforms.forEach( form => {\n\t\tform.addEventListener( 'submit', event => {\n\t\t\tevent.preventDefault();\n\t\t\tfetchResultsFromForms();\n\t\t} );\n\t} );\n\n\tfilterWrappers.forEach( filter => {\n\t\tfilter.addEventListener( 'input', event => {\n\t\t\tconst form = event.target.closest( 'form' );\n\t\t\tif ( typeof form.requestSubmit === 'function' ) {\n\t\t\t\tform.requestSubmit();\n\t\t\t} else {\n\t\t\t\tform.dispatchEvent( new Event( 'submit' ) );\n\t\t\t}\n\t\t} );\n\t} );\n\n\tcontainer.addEventListener( 'click', event => {\n\t\tconst target = event.target.closest( 'a' ) || event.target;\n\n\t\tif ( target.dataset.page ) {\n\t\t\tevent.preventDefault();\n\t\t\tfetchResultsFromForms( target.dataset.page );\n\t\t} else if ( target.dataset.filter ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tconst [ name, value = null ] = target.dataset.filter.split( ':' );\n\t\t\tcontainer.querySelectorAll( `[name=\"${ name }\"]` ).forEach( input => {\n\t\t\t\tinput.checked = input.value === value;\n\t\t\t} );\n\n\t\t\tfetchResultsFromForms();\n\t\t} else if ( target.dataset.clear ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tconst [ name, value = null ] = target.dataset.clear.split( ':' );\n\n\t\t\tlet inputs = container.querySelectorAll( 'input.js-clearable' );\n\t\t\tif ( name !== 'ALL' ) {\n\t\t\t\tinputs = container.querySelectorAll( `[name=\"${ name }\"], [name=\"${ name }[]\"]` );\n\t\t\t}\n\n\t\t\tinputs.forEach( input => {\n\t\t\t\tif ( value === null || input.value === value ) {\n\t\t\t\t\tif ( input.type === 'checkbox' || input.type === 'radio' ) {\n\t\t\t\t\t\tinput.checked = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tinput.value = '';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tfetchResultsFromForms();\n\t\t}\n\t} );\n\n\twindow.addEventListener( 'popstate', event => {\n\t\tif ( event.state?.query ) {\n\t\t\tevent.preventDefault();\n\t\t\tconst params = new URLSearchParams( event.state.query );\n\t\t\tfetchResults( params );\n\t\t}\n\t} );\n}\n\nexport default function setupDirectoryModules() {\n\tdocument.querySelectorAll( '.js-directory' ).forEach( setupDirectoryModule );\n}\n","/* globals jQuery, BLOOMBERG */\n/* eslint-disable @wordpress/no-global-active-element */\n\n/**\n * External dependencies\n */\nimport CliboardJS from 'clipboard';\n\n/**\n * Internal dependencies\n */\nimport { getFlagClass, setFlagClass } from './theme/flag-class';\nimport delegateEventListener from './theme/delegate-event';\nimport determineTarget from './theme/determine-target';\nimport toggleElement from './theme/toggle-element';\nimport setupTabs from './theme/tabs';\nimport setupAccordions from './theme/accordions';\nimport setupModals from './theme/modals';\nimport setupCarousels from './theme/carousels';\nimport setupDropdowns from './theme/dropdown';\nimport setupShareButtons from './theme/share-button';\nimport setupDirectoryModules from './theme/ajax-directory';\n\njQuery( $ => {\n\t// =========================\n\t// ! Flag Interaction Method\n\t// =========================\n\n\tfunction flagMouseUse() {\n\t\tdocument.body.classList.add( 'using-mouse' );\n\t\tdocument.body.classList.remove( 'using-keyboard' );\n\t}\n\tdocument.addEventListener( 'mousemove', flagMouseUse );\n\tdocument.addEventListener( 'touchstart', flagMouseUse );\n\tdocument.addEventListener( 'keydown', event => {\n\t\tif ( event.key === 'Tab' ) {\n\t\t\tdocument.body.classList.remove( 'using-mouse' );\n\t\t\tdocument.body.classList.add( 'using-keyboard' );\n\t\t}\n\t} );\n\n\t// =========================\n\t// ! External Link Mandate\n\t// =========================\n\n\tdocument.querySelectorAll( 'a[href^=\"http\"]' ).forEach( anchor => {\n\t\tif ( ! anchor.target && ( ! anchor.href.startsWith( window.location.origin ) || anchor.href.endsWith( '.pdf' ) ) ) {\n\t\t\tanchor.setAttribute( 'target', '_blank' );\n\t\t\tanchor.setAttribute( 'rel', 'noreferrer noopener' );\n\t\t}\n\t} );\n\n\t// =========================\n\t// ! Basic Toggles\n\t// =========================\n\n\tdelegateEventListener( 'click', '.js-toggle', ( event, trigger ) => {\n\t\tconst target = determineTarget( trigger );\n\t\tif ( target ) {\n\t\t\tevent.preventDefault();\n\t\t\tconst isOpen = toggleElement( target, null, 'focus' );\n\n\t\t\t// For global styling that might be needed\n\t\t\tdocument.body.classList.toggle( `show-${ target.id }`, isOpen );\n\t\t}\n\t} );\n\n\tdelegateEventListener( 'click', '.js-close', ( event, trigger ) => {\n\t\tevent.preventDefault();\n\t\ttoggleElement( trigger.closest( '[aria-hidden=\"false\"]' ), false );\n\t} );\n\n\t// =========================\n\t// ! Menu Toggles\n\t// =========================\n\n\tconst header = document.querySelector( '.bloomberg-header' );\n\tconst navButtons = header.querySelectorAll( '.menu-item-object-supernav_menu > .menu-item-label' );\n\tconst navFlyouts = document.querySelectorAll( '.bloomberg-flyout' );\n\tconst menuToggle = header.querySelector( '.bloomberg-header__menu-toggle' );\n\tconst returnButtons = document.querySelectorAll( '.bloomberg-flyout__return-button ' );\n\n\t// Store initial colorscheme for header\n\tconst headerColor = getFlagClass( header, 'has-colorscheme' );\n\tconst headerMode = getFlagClass( header, 'with-colorscheme' );\n\n\tfunction resetColors() {\n\t\tsetFlagClass( header, 'has-colorscheme', headerColor );\n\t\tsetFlagClass( header, 'with-colorscheme', headerMode );\n\t}\n\n\tnavFlyouts.forEach( flyout => {\n\t\tflyout.setAttribute( 'aria-hidden', true );\n\t} );\n\n\tnavButtons.forEach( button => {\n\t\tbutton.setAttribute( 'aria-selected', false );\n\n\t\tbutton.addEventListener( 'click', () => {\n\t\t\tconst target = determineTarget( button );\n\t\t\tconst isOpen = toggleElement( target, null );\n\n\t\t\tnavFlyouts.forEach( _flyout => {\n\t\t\t\tif ( _flyout.getAttribute( 'aria-hidden' ) === 'false' && _flyout !== target ) {\n\t\t\t\t\ttoggleElement( _flyout, false );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tlet color = headerColor;\n\t\t\tlet mode = headerMode;\n\t\t\tif ( isOpen ) {\n\t\t\t\tcolor = getFlagClass( target, 'has-colorscheme' );\n\t\t\t\tmode = getFlagClass( target, 'with-colorscheme' );\n\t\t\t}\n\n\t\t\tsetFlagClass( header, 'has-colorscheme', color );\n\t\t\tsetFlagClass( header, 'with-colorscheme', mode );\n\t\t} );\n\t} );\n\n\tmenuToggle.addEventListener( 'click', () => {\n\t\tresetColors();\n\t\tnavFlyouts.forEach( flyout => {\n\t\t\ttoggleElement( flyout, false );\n\t\t} );\n\t} );\n\n\treturnButtons.forEach( button => {\n\t\tbutton.addEventListener( 'click', () => {\n\t\t\tresetColors();\n\t\t} );\n\t} );\n\n\t// =========================\n\t// ! Modals\n\t// =========================\n\n\t// Add classes to modals automatically\n\t$( '.bloomberg-modal' ).addClass( 'js-modal' );\n\t$( '.bloomberg-modal__close' ).addClass( 'js-modal-close' );\n\t$( '.bloomberg-modal__frame' ).addClass( 'js-modal-backdrop' );\n\n\t// Move all modals to root of body\n\t$( '.bloomberg-modal' ).appendTo( document.body );\n\n\tsetupModals();\n\n\t// =========================\n\t// ! Mobile Sticky Page Nav Handling\n\t// =========================\n\n\t$( '.has-sticky-pagenav .bloomberg-pagenav__menu button' ).click( function() {\n\t\ttoggleElement( this.closest( '[aria-hidden=\"false\"]' ), false );\n\t\tdocument.body.classList.remove( 'show-pagenav' );\n\t} );\n\n\t// =========================\n\t// ! Tab Set\n\t// =========================\n\n\t// Add classes to tab/tabset blocks automatically\n\t$( '.bloomberg-tab-set' ).addClass( 'js-tab-set' );\n\t$( '.bloomberg-tab-set__nav-item' ).addClass( 'js-tab' );\n\t$( '.bloomberg-tab-panel' ).addClass( 'js-tab-panel' );\n\n\t// Mark first tab as auto-open accordion\n\t$( '.bloomberg-tab-set' ).each( function() {\n\t\t$( this ).find( '.bloomberg-tab-header__toggle' ).first().addClass( 'auto-open' );\n\t} );\n\n\tsetupTabs();\n\n\t// =========================\n\t// ! Accordion\n\t// =========================\n\n\t// Group adjacent accordions\n\t$( '.bloomberg-accordion' ).each( function() {\n\t\tlet $group = $( this ).prev( '.bloomberg-accordion-group' );\n\t\tif ( $group.length === 0 ) {\n\t\t\t$group = $( '<div class=\"bloomberg-accordion-group\"></div>' );\n\t\t\t$group.insertBefore( this );\n\t\t}\n\n\t\t$( this ).appendTo( $group );\n\t} );\n\n\t// Add classes to accordion blocks automatically\n\t$( '.bloomberg-accordion-group' ).addClass( 'js-accordion-group' );\n\t$( '.bloomberg-accordion__toggle' ).addClass( 'js-accordion-toggle' );\n\t$( '.bloomberg-accordion__content' ).addClass( 'js-accordion-content' );\n\n\tsetupAccordions( BLOOMBERG.accordionEndpoints || [] );\n\n\t// =========================\n\t// ! Gallery Carousels\n\t// =========================\n\n\t// Prep carousels for functionality\n\t$( '.bloomberg-carousel' ).each( function() {\n\t\t$( this ).addClass( 'js-carousel' );\n\t\t$( this ).find( '.bloomberg-carousel__slides' ).addClass( 'js-carousel-track' )\n\t\t\t.children().addClass( 'js-carousel-slide' );\n\t\t$( this ).find( '.bloomberg-carousel__pagination' ).addClass( 'js-carousel-pagination' );\n\t} );\n\t$( '.bloomberg-banner-carousel' ).each( function() {\n\t\t$( this ).addClass( 'js-carousel' );\n\t\t$( this ).find( '.bloomberg-banner-carousel__slides' ).addClass( 'js-carousel-track' )\n\t\t\t.children().addClass( 'js-carousel-slide' );\n\t\t$( this ).find( '.bloomberg-banner-carousel__pagination' ).addClass( 'js-carousel-pagination' );\n\t} );\n\n\tsetupCarousels( { animate: true } );\n\n\t// =========================\n\t// ! Scroller Buttons\n\t// =========================\n\n\tfunction makeScrollerButton( type ) {\n\t\tconst button = document.createElement( 'div' );\n\t\tbutton.className = `bloomberg-scroller__button ${ type }`;\n\t\tbutton.setAttribute( 'aria-hidden', true );\n\t\treturn button;\n\t}\n\n\tdocument.querySelectorAll( '.bloomberg-scroller' ).forEach( scroller => {\n\t\tconst inner = scroller.querySelector( '.bloomberg-scroller__inner' );\n\t\tconst scrollerHeader = scroller.querySelector( '.bloomberg-scroller__header' );\n\t\tconst nav = document.createElement( 'div' );\n\t\tnav.classList.add( 'bloomberg-scroller__nav' );\n\t\tscrollerHeader.append( nav );\n\n\t\tconst nextButton = makeScrollerButton( 'next' );\n\t\tconst prevButton = makeScrollerButton( 'prev' );\n\t\tconst buttons = [ nextButton, prevButton ];\n\n\t\tnav.append( nextButton, prevButton );\n\n\t\tprevButton.hidden = true;\n\t\tinner.addEventListener( 'scroll', () => {\n\t\t\tnextButton.hidden = inner.scrollLeft + inner.offsetWidth >= inner.scrollWidth;\n\t\t\tprevButton.hidden = inner.scrollLeft === 0;\n\t\t} );\n\n\t\tbuttons.forEach( button => {\n\t\t\tbutton.addEventListener( 'click', () => {\n\t\t\t\tif ( button.classList.contains( 'next' ) ) {\n\t\t\t\t\tinner.scrollBy( {\n\t\t\t\t\t\tleft: scrollerHeader.offsetWidth,\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\tinner.scrollBy( {\n\t\t\t\t\t\tleft: -1 * scrollerHeader.offsetWidth,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t} );\n\n\tdocument.addEventListener( 'keyup', event => {\n\t\tif ( event.key === 'Tab' ) {\n\t\t\tconst scroller = document.activeElement?.closest( '.bloomberg-scroller__inner' );\n\t\t\tif ( scroller ) {\n\t\t\t\tdocument.activeElement.scrollIntoView( {\n\t\t\t\t\tblock: 'nearest',\n\t\t\t\t\tinline: 'nearest',\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t} );\n\n\tif ( typeof ResizeObserver !== 'undefined' ) {\n\t\tfunction checkScrollability( container ) {\n\t\t\tconst parent = container.closest( '.bloomberg-scroller' );\n\t\t\t$( parent ).toggleClass( 'is-scrollable', container.scrollWidth > parent.offsetWidth );\n\t\t}\n\n\t\tconst scrollerOberver = new ResizeObserver( entries => {\n\t\t\tentries.forEach( ( { target } ) => {\n\t\t\t\tcheckScrollability( target );\n\t\t\t} );\n\t\t} );\n\n\t\t$( '.bloomberg-scroller__inner' ).each( function() {\n\t\t\tcheckScrollability( this );\n\t\t\tscrollerOberver.observe( this );\n\t\t} );\n\t}\n\n\t// =========================\n\t// ! Toplinks\n\t// =========================\n\n\tif ( typeof IntersectionObserver !== 'undefined' ) {\n\t\tconst toplinksByTarget = new WeakMap();\n\n\t\tconst navObserver = new IntersectionObserver( ( [ entry ] ) => {\n\t\t\tconst toplink = toplinksByTarget.get( entry.target );\n\t\t\tif ( toplink ) {\n\t\t\t\ttoplink.classList.toggle( 'show', ! entry.isIntersecting );\n\t\t\t}\n\t\t}, {\n\t\t\trootMargin: '-70px 0% 0% 0%',\n\t\t} );\n\n\t\t$( '.bloomberg-toplink' ).each( function() {\n\t\t\tconst link = this.querySelector( 'a' );\n\t\t\tlet target = link.getAttribute( 'href' );\n\t\t\tif ( target.length <= 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttarget = document.querySelector( target );\n\t\t\tif ( ! target ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttoplinksByTarget.set( target, this );\n\t\t\tnavObserver.observe( target );\n\t\t} );\n\t}\n\n\t// =========================\n\t// ! Dropdown\n\t// =========================\n\n\t$( '.gfield:has(.ginput_container_select)' ).addClass( 'js-dropdown' );\n\n\tsetupDropdowns();\n\n\t// =========================\n\t// ! Excerpt Handling\n\t// =========================\n\n\t$( document ).on( 'click', '.js-expand', function() {\n\t\tconst expanded = $( this ).closest( '.is-expandable' ).toggleClass( 'is-expanded' ).hasClass( 'is-expanded' );\n\n\t\t// Swap the text with the cached label\n\t\tconst label = $( this ).data( 'label' ) || ( expanded ? 'Show less' : 'Show more' );\n\t\t$( this ).data( 'label', $( this ).text() );\n\t\t$( this ).text( label );\n\t} );\n\n\t// =========================\n\t// ! Hidden Target Handling\n\t// =========================\n\n\tfunction handleHiddenTarget( event ) {\n\t\t// Get the target element\n\t\tconst target = document.getElementById( window.location.hash.substring( 1 ) );\n\t\tif ( ! target ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If it's an accordion, open it\n\t\tif ( target.classList.contains( 'bloomberg-accordion' ) ) {\n\t\t\ttoggleElement( target.querySelector( '.js-accordion-content' ) );\n\t\t\treturn;\n\t\t}\n\n\t\t// See if it's within a hidden container\n\t\tconst container = target.closest( '[id][aria-hidden=\"true\"]' );\n\t\tif ( ! container ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Find the control for the container\n\t\tconst control = document.querySelector( `[aria-controls=${ container.id }]` );\n\t\tif ( ! control ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Prevent automatic scolling\n\t\tif ( event ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\t// Open the container and focus\n\t\tcontrol.click();\n\t\ttarget.scrollIntoView();\n\t}\n\n\twindow.addEventListener( 'hashchange', handleHiddenTarget );\n\thandleHiddenTarget();\n\n\t// =========================\n\t// ! Bookmark/Share Links\n\t// =========================\n\n\tsetupShareButtons();\n\n\t$( 'a.js-clipboard' ).on( 'click', e => e.preventDefault() );\n\n\tconst hrefClipboard = new CliboardJS( 'a.js-clipboard', {\n\t\ttext( trigger ) {\n\t\t\treturn trigger.getAttribute( 'href' );\n\t\t},\n\t} );\n\n\tconst clipboardTooltipTimeouts = new WeakMap();\n\threfClipboard.on( 'success', e => {\n\t\tclearTimeout( clipboardTooltipTimeouts.get( e.trigger ) );\n\t\t$( e.trigger ).addClass( 'js-copied' ).attr( 'aria-label', 'Link copied!' );\n\t\tconst timeout = setTimeout( () => $( e.trigger ).removeClass( 'js-copied' ), 5000 );\n\t\tclipboardTooltipTimeouts.set( e.trigger, timeout );\n\t} );\n\n\t// =========================\n\t// ! Directory Module\n\t// =========================\n\n\tsetupDirectoryModules();\n\n\t// =========================\n\t// ! Search Flyout\n\t// =========================\n\n\t$( '.js-search' ).each( function() {\n\t\tconst searchUrl = this.dataset.searchUrl;\n\t\tconst $container = $( this );\n\t\tconst $results = $container.find( '.js-search-results' );\n\n\t\tif ( $results.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst $form = $container.find( '.js-search-form' );\n\t\tconst $input = $container.find( '.js-search-input' );\n\t\tconst $suggestions = $container.find( '.js-search-suggestion' );\n\t\tconst $more = $container.find( '.js-search-more' );\n\t\tconst $query = $container.find( '.js-search-query' );\n\t\tconst $noResults = $container.find( '.js-search-no-results' );\n\n\t\t$suggestions.on( 'click', function() {\n\t\t\t$input.val( this.value );\n\t\t\t$form.submit();\n\t\t} );\n\n\t\t$form.on( 'submit', function( e ) {\n\t\t\te.preventDefault();\n\t\t\t$container.addClass( 'loading' );\n\n\t\t\t$noResults.attr( 'aria-hidden', true );\n\t\t\t$query.text( $input.val() );\n\n\t\t\t$.ajax( {\n\t\t\t\turl: searchUrl,\n\t\t\t\tdata: { search: $input.val() },\n\t\t\t\tsuccess( { url, results } ) {\n\t\t\t\t\t$container.addClass( 'has-results' );\n\t\t\t\t\t$more.attr( 'href', url );\n\n\t\t\t\t\t$results.empty().append( results );\n\t\t\t\t\t$noResults.attr( 'aria-hidden', results.length > 0 );\n\t\t\t\t},\n\t\t\t\terror() {\n\t\t\t\t\t$more.attr( 'href', null );\n\n\t\t\t\t\t$results.empty();\n\t\t\t\t\t$noResults.attr( 'aria-hidden', false );\n\t\t\t\t},\n\t\t\t\tcomplete() {\n\t\t\t\t\t$container.removeClass( 'loading' );\n\t\t\t\t\t$results.fadeIn();\n\t\t\t\t},\n\t\t\t} );\n\t\t} );\n\t} );\n\n\t// =========================\n\t// ! Excerpt Handling\n\t// =========================\n\n\t$( document ).on( 'click', '.bloomberg-excerpt__toggle', function() {\n\t\t$( this ).parents( '.bloomberg-excerpt' ).toggleClass( 'show-details' );\n\t} );\n} );\n","export default function getTrigger( eventTarget, selector ) {\n\tif ( eventTarget.matches( selector ) ) {\n\t\treturn eventTarget;\n\t}\n\n\treturn eventTarget.closest( selector );\n}\n","import determineTarget from './determine-target';\nimport toggleElement from './toggle-element';\nimport setupFocusTrap from './focus-trap';\n\nexport default function setupTabs() {\n\tdocument.querySelectorAll( '.js-tab-set' ).forEach( tabSet => {\n\t\tconst tabs = tabSet.querySelectorAll( '.js-tab[aria-controls], .js-tab[data-target]' );\n\t\tconst panels = tabSet.querySelectorAll( '.js-tab-panel' );\n\n\t\t// Mark all panels as hidden to start\n\t\tpanels.forEach( panel => {\n\t\t\tpanel.setAttribute( 'aria-hidden', true );\n\t\t} );\n\n\t\tfunction switchToTab( tab, focus ) {\n\t\t\tconst panel = determineTarget( tab );\n\n\t\t\ttoggleElement( panel, true, focus );\n\n\t\t\tpanels.forEach( _panel => {\n\t\t\t\tif ( _panel.getAttribute( 'aria-hidden' ) === 'false' && _panel !== panel ) {\n\t\t\t\t\ttoggleElement( _panel, false );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\treturn panel;\n\t\t}\n\n\t\ttabs.forEach( tab => {\n\t\t\ttab.addEventListener( 'click', event => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst panel = switchToTab( tab, 'focus' );\n\t\t\t\thistory.replaceState( {}, '', `#${ panel.id }` );\n\t\t\t} );\n\t\t} );\n\n\t\tsetupFocusTrap( tabSet, tabs, {\n\t\t\tarrowKeys: true,\n\t\t\tassumeFocusable: true,\n\t\t}, switchToTab );\n\n\t\tconst currentId = location.hash.replace( '#', '' );\n\t\tconst currentTab = [ ...tabs ].find( tab => tab.getAttribute( 'aria-controls' ) === currentId ) || tabs[ 0 ];\n\n\t\tswitchToTab( currentTab );\n\t} );\n}\n","import determineTarget from './determine-target';\nimport toggleElement from './toggle-element';\nimport historyStorage from './history-storage';\n\nexport default function setupAccordion( endpoints ) {\n\tfunction setupAccordionReset( name, value ) {\n\t\tconst mediaQuery = window.matchMedia( value );\n\n\t\tfunction resetAccordions() {\n\t\t\tconst toggles = document.querySelectorAll( `.js-${ name }-toggle` );\n\t\t\tconst contents = document.querySelectorAll( `.js-${ name }-accordion` );\n\n\t\t\tif ( mediaQuery.matches ) {\n\t\t\t\ttoggles.forEach( toggle => toggle.setAttribute( 'aria-expanded', true ) );\n\t\t\t\tcontents.forEach( content => content.setAttribute( 'aria-hidden', false ) );\n\t\t\t} else {\n\t\t\t\ttoggles.forEach( toggle => toggle.setAttribute( 'aria-expanded', false ) );\n\t\t\t\tcontents.forEach( content => content.setAttribute( 'aria-hidden', true ) );\n\t\t\t}\n\t\t}\n\n\t\tresetAccordions();\n\t\tif ( typeof mediaQuery.addEventListener === 'undefined' ) {\n\t\t\tmediaQuery.addListener( resetAccordions );\n\t\t} else {\n\t\t\tmediaQuery.addEventListener( 'change', resetAccordions );\n\t\t}\n\n\t\treturn mediaQuery;\n\t}\n\n\tconst accordionEndpoints = endpoints.map( ( { name, value } ) => {\n\t\treturn {\n\t\t\tname,\n\t\t\tmediaQuery: setupAccordionReset( name, value ),\n\t\t};\n\t} );\n\n\tdocument.addEventListener( 'click', event => {\n\t\tlet toggle = event.target;\n\n\t\t// If not the literal toggle, check if it's a decendent of one\n\t\tif ( ! toggle.classList.contains( 'js-accordion-toggle' ) ) {\n\t\t\ttoggle = toggle.closest( '.js-accordion-toggle' );\n\t\t}\n\n\t\t// No match, ignore event\n\t\tif ( ! toggle ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Check breakpoints\n\t\tconst endpointMatch = accordionEndpoints.find( ( { name, mediaQuery } ) => {\n\t\t\treturn toggle.classList.contains( `js-${ name }-toggle` ) && mediaQuery.matches;\n\t\t} );\n\t\tif ( endpointMatch ) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\n\t\t// Get target, abort if not found\n\t\tconst content = determineTarget( toggle );\n\t\tif ( ! content ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Toggle status\n\t\tconst show = toggle.getAttribute( 'aria-expanded' ) === 'false';\n\n\t\t// Toggle status\n\t\tif ( show ) {\n\t\t\t// Animate to \"auto\" height\n\t\t\tcontent.style.setProperty( '--open-height', `${ content.scrollHeight }px` );\n\n\t\t\t// If it's within a group, close all others\n\t\t\tconst group = toggle.closest( content.classList.contains( 'js-tab-panel' ) ? '.js-accordion-group.js-tab-set' : '.js-accordion-group:not(.js-tab-set)' );\n\t\t\tif ( group ) {\n\t\t\t\tgroup.querySelectorAll( '.js-accordion-toggle[aria-expanded=\"true\"]' )\n\t\t\t\t\t.forEach( otherToggle => {\n\t\t\t\t\t\t// Don't change the current toggle\n\t\t\t\t\t\tif ( otherToggle === toggle ) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Get target content, animate from current height\n\t\t\t\t\t\tconst otherContent = determineTarget( otherToggle );\n\t\t\t\t\t\totherContent.style.setProperty( '--open-height', `${ otherContent.clientHeight }px` );\n\n\t\t\t\t\t\t// Mark as closed\n\t\t\t\t\t\ttoggleElement( otherContent, false );\n\t\t\t\t\t} );\n\t\t\t}\n\t\t} else {\n\t\t\t// Animate from current height\n\t\t\tcontent.style.setProperty( '--open-height', `${ content.clientHeight }px` );\n\t\t}\n\n\t\t// Mark as open/close\n\t\ttoggleElement( content, show );\n\t\thistoryStorage.setItem( content.id, show );\n\t} );\n\n\t// Initialize accordion expanded states\n\tdocument.querySelectorAll( '.js-accordion-toggle' )\n\t\t.forEach( toggle => {\n\t\t\t// Check breakpoints\n\t\t\tconst endpointMatch = accordionEndpoints.find( ( { name, mediaQuery } ) => {\n\t\t\t\treturn toggle.classList.contains( `js-${ name }-toggle` ) && mediaQuery.matches;\n\t\t\t} );\n\t\t\tif ( endpointMatch ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst content = determineTarget( toggle );\n\t\t\tlet open = historyStorage.getItem( content.id );\n\t\t\tif ( open === null ) {\n\t\t\t\t// Mark as open/closed based on auto-open class\n\t\t\t\topen = toggle.classList.contains( 'auto-open' );\n\t\t\t}\n\t\t\ttoggleElement( content, open );\n\t\t} );\n}\n"],"names":["_arrayLikeToArray","r","a","length","e","n","Array","_unsupportedIterableToArray","arrayLikeToArray","t","toString","call","slice","constructor","name","from","test","_slicedToArray","isArray","arrayWithHoles","l","Symbol","iterator","i","u","f","o","next","Object","done","push","value","iterableToArrayLimit","unsupportedIterableToArray","TypeError","nonIterableRest","factory","__webpack_modules__","__unused_webpack_module","__webpack_exports__","__webpack_require__","d","default","clipboard","tiny_emitter","tiny_emitter_default","listen","listen_default","src_select","select_default","command","type","document","execCommand","err","actions_cut","target","selectedText","fakeCopyAction","options","fakeElement","isRTL","documentElement","getAttribute","createElement","style","fontSize","border","padding","margin","position","yPosition","window","pageYOffset","scrollTop","top","concat","setAttribute","createFakeElement","container","appendChild","remove","actions_copy","arguments","undefined","body","HTMLInputElement","includes","_typeof","obj","prototype","actions_default","_options$action","action","text","Error","nodeType","hasAttribute","clipboard_typeof","_defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","key","_setPrototypeOf","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","_isNativeReflectConstruct","result","Super","_getPrototypeOf","NewTarget","this","apply","self","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","getPrototypeOf","getAttributeValue","suffix","element","attribute","Clipboard","_Emitter","subClass","superClass","create","_inherits","Constructor","protoProps","staticProps","_super","trigger","_this","instance","_classCallCheck","resolveOptions","listenClick","defaultAction","defaultTarget","defaultText","_this2","listener","onClick","delegateTarget","currentTarget","emit","clearSelection","focus","getSelection","removeAllRanges","selector","querySelector","destroy","actions","support","queryCommandSupported","forEach","module","Element","matches","proto","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","exports","parentNode","__unused_webpack_exports","closest","_delegate","callback","useCapture","listenerFn","addEventListener","removeEventListener","elements","bind","querySelectorAll","map","node","HTMLElement","nodeList","string","String","fn","is","delegate","listenNode","listenNodeList","listenSelector","nodeName","isReadOnly","select","setSelectionRange","removeAttribute","selection","range","createRange","selectNodeContents","addRange","E","on","ctx","once","off","_","data","evtArr","len","evts","liveEvents","TinyEmitter","__webpack_module_cache__","moduleId","getter","__esModule","definition","get","prop","hasOwnProperty","_toConsumableArray","arrayWithoutHoles","iterableToArray","nonIterableSpread","getFlagClass","prefix","_step","_iterator","_createForOfIteratorHelper","classList","s","indexOf","substr","setFlagClass","className","add","delegateEventListener","eventName","event","determineTarget","getElementById","computedElementStyles","WeakMap","FOCUSABLES_SELECTOR","isElementFocusable","disabled","tabIndex","display","visibility","offsetParent","computedStyle","getComputedStyle","set","modalIndex","toggleElement","elementOrId","show","targetId","id","controls","control","zIndex","autofocus","find","focusable","CustomEvent","dispatchEvent","getNewIndex","current","total","delta","READY_FOCUS_TRAPS","setupFocusTrap","focusables","handleFocus","possibleTargets","ignoreCondition","newIndex","index","arrowKeys","leftRightOnly","upDownOnly","shiftKey","preventDefault","has","NodeList","assumeFocusable","filter","toPropertyKey","toPrimitive","Number","_defineProperty","_createClass","historyStorage","HistoryStorage","_classPrivateFieldInitSpec","_state","state","history","_this$state$key","_objectSpread","uri","location","href","substring","origin","replaceState","modalTriggers","setupElementAnimation","visible","isPrev","onanimationend","animationClass","directionClass","carouselCount","setupCarousels","carousel","_historyStorage$getIt","slides","paginationButtons","slideCaptions","track","prevButton","nextButton","pagination","captionBox","indicator","currentIndicator","totalIndicator","autoTimeout","idPrefix","currentIndex","getItem","trackId","innerText","slide","slideId","button","append","slideCaption","captionId","dataset","timer","delay","parseInt","autoAdvance","goToSlide","setTimeout","setProperty","disableTimer","buttons","item","onReady","backward","currentSlide","newSlide","animate","currentTab","newTab","currentCaption","newCaption","onSlideChange","prevIndex","setItem","clearInterval","setupCarousel","SelectActions","filterOptions","exclude","option","toLowerCase","isElementInView","bounding","getBoundingClientRect","left","bottom","innerHeight","clientHeight","right","innerWidth","clientWidth","instanceCount","Combobox","selectElement","hidden","label","wrapper","wrapperElement","combobox","comboboxElement","listbox","listboxElement","htmlFor","insertBefore","optionStrings","optionElements","textContent","optionElement","createOption","activeIndex","isOpen","searchString","searchTimeout","ignoreChangeEvent","selectOption","selectedIndex","onComboboxBlur","onComboboxClick","onComboboxKeyDown","stopPropagation","onOptionClick","onOptionMouseDown","char","_this3","clearTimeout","ignoreBlur","updateMenuState","max","menuOpen","altKey","ctrlKey","metaKey","getActionFromKey","onOptionChange","maxIndex","Math","min","getUpdatedIndex","onComboboxType","letter","getSearchString","searchIndex","array","startIndex","orderedOptions","firstMatch","split","every","getIndexByLetter","activeElement","scrollParent","offsetHeight","offsetTop","parentOffsetHeight","isBelow","highlightOption","scrollHeight","scrollTo","scrollIntoView","block","silent","Event","bubbles","composed","callFocus","activeId","NETWORKS","facebook","url","URLSearchParams","linkedin","mini","twitter","share","network","builder","open","setupDirectoryModule","_paginationWrappers$","baseUrl","fetchUrl","forms","liveArea","heading","filterWrappers","statsWrapper","sortWrapper","navWrapper","tagsWrapper","resultsWrapper","paginationWrappers","format","perPage","perpage","initParams","search","fetchResults","params","input","checked","group","keys","_loop","selected","getAll","syncFormsWithParams","fetch","then","response","ok","status","json","innerHTML","stats","sort","nav","tags","results","join","catch","finally","scrollY","modal","fetchResultsFromForms","page","form","_step2","_iterator2","FormData","entries","_step2$value","query","pushState","requestSubmit","_target$dataset$filte2","_target$dataset$filte3","clear","_target$dataset$clear2","_target$dataset$clear3","inputs","_event$state","jQuery","$","flagMouseUse","anchor","startsWith","endsWith","toggle","header","navButtons","navFlyouts","menuToggle","returnButtons","headerColor","headerMode","resetColors","makeScrollerButton","flyout","_flyout","color","mode","addClass","appendTo","dialog","eventTarget","contains","_ref","_ref2","click","each","first","tabSet","tabs","panels","switchToTab","tab","panel","_panel","currentId","hash","replace","$group","prev","endpoints","setupAccordionReset","mediaQuery","matchMedia","resetAccordions","toggles","contents","content","addListener","accordionEndpoints","otherToggle","otherContent","_ref3","setupAccordions","BLOOMBERG","children","scroller","inner","scrollerHeader","scrollLeft","offsetWidth","scrollWidth","scrollBy","_document$activeEleme","inline","ResizeObserver","checkScrollability","parent","toggleClass","scrollerOberver","observe","IntersectionObserver","toplinksByTarget","navObserver","entry","toplink","isIntersecting","rootMargin","handleHiddenTarget","widget","expanded","hasClass","pointerType","navigator","title","hrefClipboard","CliboardJS","clipboardTooltipTimeouts","attr","timeout","removeClass","searchUrl","$container","$results","$form","$input","$suggestions","$more","$query","$noResults","val","submit","ajax","success","_ref4","empty","error","complete","fadeIn","parents"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,18,19,20,21,22,23]}