{"version":3,"file":"all.bundle.mjs","sources":["../../src/digitalmarketplace/common/digitalmarketplace-frontend-version.ts","../../src/digitalmarketplace/scripts/analytics/tag-manager.ts","../../../../node_modules/js-cookie/dist/js.cookie.mjs","../../src/digitalmarketplace/scripts/analytics/data-layer.types.ts","../../src/digitalmarketplace/scripts/analytics/data-layer.ts","../../src/digitalmarketplace/scripts/cookies/manage.ts","../../src/digitalmarketplace/scripts/analytics/init-google-analytics.ts","../../../../node_modules/govuk-frontend/dist/govuk/common/index.mjs","../../../../node_modules/govuk-frontend/dist/govuk/errors/index.mjs","../../../../node_modules/govuk-frontend/dist/govuk/component.mjs","../../../../node_modules/govuk-frontend/dist/govuk/common/configuration.mjs","../../../../node_modules/govuk-frontend/dist/govuk/i18n.mjs","../../../../node_modules/govuk-frontend/dist/govuk/common/closest-attribute-value.mjs","../../../../node_modules/govuk-frontend/dist/govuk/components/file-upload/file-upload.mjs","../../src/digitalmarketplace/components/compliance-communication-attachments/compliance-communication-attachments.ts","../../src/digitalmarketplace/components/cookie-banner/cookie-banner.ts","../../src/digitalmarketplace/scripts/cookies/settings.ts","../../src/digitalmarketplace/components/list-input/list-input.ts","../../src/digitalmarketplace/components/question/question.ts","../../src/digitalmarketplace/components/question-checkbox-tree/question-checkbox-tree.ts","../../src/digitalmarketplace/components/question-list/question-list.ts","../../src/digitalmarketplace/components/question-list-multiquestion-client-side/question-list-multiquestion-client-side.ts","../../src/digitalmarketplace/components/option-select/option-select.ts","../../src/digitalmarketplace/components/search-box/search-box.ts","../../../../node_modules/accessible-autocomplete/dist/accessible-autocomplete.min.js","../../src/digitalmarketplace/components/select-country-from-form/select-country-from-form.ts","../../src/digitalmarketplace/init.ts"],"sourcesContent":["/*\n * This variable is automatically overwritten during builds and releases.\n * It doesn't need to be updated manually.\n */\n\n/**\n * Digital Marketplace Frontend release version\n *\n * {@link https://github.com/Crown-Commercial-Service/ccs-digitalmarketplace-govuk-frontend/releases}\n */\nexport const version = 'development'\n","const GOOGLE_TAG_MANAGER_ID = 'GTM-WCGFX3GW'\n\nconst googleTagManagerInit = (w: Window, d: Document, s: 'script', l: 'dataLayer', i: string) => {\n  w[l] = w[l] || []\n  w[l].push({\n    'gtm.start': new Date().getTime(),\n    event: 'gtm.js'\n  })\n  const f = d.getElementsByTagName(s)[0]\n  const j = d.createElement(s)\n  const dl = l != 'dataLayer' ? '&l=' + l : ''\n  j.async = true\n  j.src ='https://www.googletagmanager.com/gtm.js?id=' + i + dl;\n  (f.parentNode as ParentNode).insertBefore(j, f)\n}\n\nconst loadGoogleTagManager = () => googleTagManagerInit(window, document, 'script', 'dataLayer', GOOGLE_TAG_MANAGER_ID)\n\nexport { loadGoogleTagManager }\n","/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n    for (var key in source) {\n      target[key] = source[key];\n    }\n  }\n  return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n  read: function (value) {\n    if (value[0] === '\"') {\n      value = value.slice(1, -1);\n    }\n    return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n  },\n  write: function (value) {\n    return encodeURIComponent(value).replace(\n      /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n      decodeURIComponent\n    )\n  }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n  function set (name, value, attributes) {\n    if (typeof document === 'undefined') {\n      return\n    }\n\n    attributes = assign({}, defaultAttributes, attributes);\n\n    if (typeof attributes.expires === 'number') {\n      attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n    }\n    if (attributes.expires) {\n      attributes.expires = attributes.expires.toUTCString();\n    }\n\n    name = encodeURIComponent(name)\n      .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n      .replace(/[()]/g, escape);\n\n    var stringifiedAttributes = '';\n    for (var attributeName in attributes) {\n      if (!attributes[attributeName]) {\n        continue\n      }\n\n      stringifiedAttributes += '; ' + attributeName;\n\n      if (attributes[attributeName] === true) {\n        continue\n      }\n\n      // Considers RFC 6265 section 5.2:\n      // ...\n      // 3.  If the remaining unparsed-attributes contains a %x3B (\";\")\n      //     character:\n      // Consume the characters of the unparsed-attributes up to,\n      // not including, the first %x3B (\";\") character.\n      // ...\n      stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n    }\n\n    return (document.cookie =\n      name + '=' + converter.write(value, name) + stringifiedAttributes)\n  }\n\n  function get (name) {\n    if (typeof document === 'undefined' || (arguments.length && !name)) {\n      return\n    }\n\n    // To prevent the for loop in the first place assign an empty array\n    // in case there are no cookies at all.\n    var cookies = document.cookie ? document.cookie.split('; ') : [];\n    var jar = {};\n    for (var i = 0; i < cookies.length; i++) {\n      var parts = cookies[i].split('=');\n      var value = parts.slice(1).join('=');\n\n      try {\n        var found = decodeURIComponent(parts[0]);\n        jar[found] = converter.read(value, found);\n\n        if (name === found) {\n          break\n        }\n      } catch (e) {}\n    }\n\n    return name ? jar[name] : jar\n  }\n\n  return Object.create(\n    {\n      set,\n      get,\n      remove: function (name, attributes) {\n        set(\n          name,\n          '',\n          assign({}, attributes, {\n            expires: -1\n          })\n        );\n      },\n      withAttributes: function (attributes) {\n        return init(this.converter, assign({}, this.attributes, attributes))\n      },\n      withConverter: function (converter) {\n        return init(assign({}, this.converter, converter), this.attributes)\n      }\n    },\n    {\n      attributes: { value: Object.freeze(defaultAttributes) },\n      converter: { value: Object.freeze(converter) }\n    }\n  )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","\nenum GrantType {\n  GRANTED = 'granted',\n  NOT_GRANTED = 'not granted'\n}\n\nexport { GrantType }","import { CookiePreferences } from '../cookies/manage.types'\nimport { GrantType } from './data-layer.types'\n\nconst getGrantedText = (state: boolean) => state ? GrantType.GRANTED : GrantType.NOT_GRANTED\n\nconst updateDataLayer = (cookiePreferences: CookiePreferences) => {\n  window.dataLayer.push({\n    event: 'gtm_consent_update',\n    usage_consent: getGrantedText(cookiePreferences.usage),\n    glassbox_consent: getGrantedText(cookiePreferences.glassbox),\n    marketing_consent: GrantType.NOT_GRANTED\n  })\n}\n\nexport { updateDataLayer }","import Cookies from 'js-cookie'\nimport { CookiePreferences, CookieUpdateOption } from './manage.types'\nimport { updateDataLayer } from '../analytics/data-layer'\n\nconst cookieUpdateOptions: CookieUpdateOption[] = [\n  {\n    cookieName: 'usage',\n    cookiePrefixes: ['_ga', '_gi']\n  },\n  {\n    cookieName: 'glassbox',\n    cookiePrefixes: ['_cls']\n  }\n]\n\nconst DOMAINS = [\n  '.marketplace.team',\n  '.digitalmarketplace.service.gov.uk',\n  'www.applytosupply.digitalmarketplace.service.gov.uk'\n]\n\n// When not in production we want to delete cookies in localhost too\nconst getDomains = () => {\n  if (window.location.hostname === 'localhost') {\n    return DOMAINS.concat(['localhost'])\n  }\n\n  return DOMAINS\n}\n\nconst getCookiePreferences = (): CookiePreferences => {\n  const defaultCookieSettings = '{\"usage\":false,\"glassbox\":false}'\n\n  return JSON.parse(Cookies.get('cookie_preferences_dmp') ?? defaultCookieSettings)\n}\n\nconst setCookiePreferences = (usage: boolean) => {\n  const cookiePreferences: CookiePreferences = getCookiePreferences()\n\n  cookiePreferences.usage = usage\n  cookiePreferences.settings_viewed = true\n\n  Cookies.set('cookie_preferences_dmp', JSON.stringify(cookiePreferences), { expires: 365 })\n\n  updateDataLayer(cookiePreferences)\n  removeUnwantedCookies()\n}\n\nconst removeUnwantedCookies = (): void => {\n  const cookieList: string[] = Object.keys(Cookies.get())\n  const cookiesToRemove: string[] = ['digitalmarketplace_cookie_settings_viewed', 'digitalmarketplace_google_analytics_enabled', 'digitalmarketplace_cookie_options_v1', 'dm_cookies_policy']\n  const cookiePreferences: CookiePreferences = getCookiePreferences()\n  const cookiePrefixes: string[] = []\n\n  cookieUpdateOptions.forEach((cookieUpdateOption) => {\n    if (!cookiePreferences[cookieUpdateOption.cookieName]) cookiePrefixes.push(...cookieUpdateOption.cookiePrefixes)\n  })\n\n  for (let i = 0; i < cookieList.length; i++) {\n    const cookieName = cookieList[i]\n\n    if (cookiePrefixes.some((cookiePrefix) => cookieName.startsWith(cookiePrefix))) cookiesToRemove.push(cookieName)\n  }\n\n  getDomains().forEach((domain) => {\n    cookiesToRemove.forEach((cookieName) => { Cookies.remove(cookieName, { path: '/', domain: domain }) })\n  })\n}\n\nexport {\n  getCookiePreferences,\n  setCookiePreferences,\n  removeUnwantedCookies\n}","import { loadGoogleTagManager } from './tag-manager'\nimport { removeUnwantedCookies } from '../cookies/manage'\n\nconst initGoogleAnalytics = () => {\n  loadGoogleTagManager()\n\n  removeUnwantedCookies()\n}\n\nexport { initGoogleAnalytics }\n","function getFragmentFromUrl(url) {\n  if (!url.includes('#')) {\n    return undefined;\n  }\n  return url.split('#').pop();\n}\nfunction getBreakpoint(name) {\n  const property = `--govuk-frontend-breakpoint-${name}`;\n  const value = window.getComputedStyle(document.documentElement).getPropertyValue(property);\n  return {\n    property,\n    value: value || undefined\n  };\n}\nfunction setFocus($element, options = {}) {\n  var _options$onBeforeFocu;\n  const isFocusable = $element.getAttribute('tabindex');\n  if (!isFocusable) {\n    $element.setAttribute('tabindex', '-1');\n  }\n  function onFocus() {\n    $element.addEventListener('blur', onBlur, {\n      once: true\n    });\n  }\n  function onBlur() {\n    var _options$onBlur;\n    (_options$onBlur = options.onBlur) == null || _options$onBlur.call($element);\n    if (!isFocusable) {\n      $element.removeAttribute('tabindex');\n    }\n  }\n  $element.addEventListener('focus', onFocus, {\n    once: true\n  });\n  (_options$onBeforeFocu = options.onBeforeFocus) == null || _options$onBeforeFocu.call($element);\n  $element.focus();\n}\nfunction isInitialised($root, moduleName) {\n  return $root instanceof HTMLElement && $root.hasAttribute(`data-${moduleName}-init`);\n}\n\n/**\n * Checks if GOV.UK Frontend is supported on this page\n *\n * Some browsers will load and run our JavaScript but GOV.UK Frontend\n * won't be supported.\n *\n * @param {HTMLElement | null} [$scope] - (internal) `<body>` HTML element checked for browser support\n * @returns {boolean} Whether GOV.UK Frontend is supported on this page\n */\nfunction isSupported($scope = document.body) {\n  if (!$scope) {\n    return false;\n  }\n  return $scope.classList.contains('govuk-frontend-supported');\n}\nfunction isArray(option) {\n  return Array.isArray(option);\n}\nfunction isObject(option) {\n  return !!option && typeof option === 'object' && !isArray(option);\n}\nfunction formatErrorMessage(Component, message) {\n  return `${Component.moduleName}: ${message}`;\n}\n/**\n * @typedef ComponentWithModuleName\n * @property {string} moduleName - Name of the component\n */\n/**\n * @import { ObjectNested } from './configuration.mjs'\n */\n\nexport { formatErrorMessage, getBreakpoint, getFragmentFromUrl, isInitialised, isObject, isSupported, setFocus };\n//# sourceMappingURL=index.mjs.map\n","import { formatErrorMessage } from '../common/index.mjs';\n\nclass GOVUKFrontendError extends Error {\n  constructor(...args) {\n    super(...args);\n    this.name = 'GOVUKFrontendError';\n  }\n}\nclass SupportError extends GOVUKFrontendError {\n  /**\n   * Checks if GOV.UK Frontend is supported on this page\n   *\n   * @param {HTMLElement | null} [$scope] - HTML element `<body>` checked for browser support\n   */\n  constructor($scope = document.body) {\n    const supportMessage = 'noModule' in HTMLScriptElement.prototype ? 'GOV.UK Frontend initialised without `<body class=\"govuk-frontend-supported\">` from template `<script>` snippet' : 'GOV.UK Frontend is not supported in this browser';\n    super($scope ? supportMessage : 'GOV.UK Frontend initialised without `<script type=\"module\">`');\n    this.name = 'SupportError';\n  }\n}\nclass ConfigError extends GOVUKFrontendError {\n  constructor(...args) {\n    super(...args);\n    this.name = 'ConfigError';\n  }\n}\nclass ElementError extends GOVUKFrontendError {\n  constructor(messageOrOptions) {\n    let message = typeof messageOrOptions === 'string' ? messageOrOptions : '';\n    if (typeof messageOrOptions === 'object') {\n      const {\n        component,\n        identifier,\n        element,\n        expectedType\n      } = messageOrOptions;\n      message = identifier;\n      message += element ? ` is not of type ${expectedType != null ? expectedType : 'HTMLElement'}` : ' not found';\n      message = formatErrorMessage(component, message);\n    }\n    super(message);\n    this.name = 'ElementError';\n  }\n}\nclass InitError extends GOVUKFrontendError {\n  constructor(componentOrMessage) {\n    const message = typeof componentOrMessage === 'string' ? componentOrMessage : formatErrorMessage(componentOrMessage, `Root element (\\`$root\\`) already initialised`);\n    super(message);\n    this.name = 'InitError';\n  }\n}\n/**\n * @import { ComponentWithModuleName } from '../common/index.mjs'\n */\n\nexport { ConfigError, ElementError, GOVUKFrontendError, InitError, SupportError };\n//# sourceMappingURL=index.mjs.map\n","import { isInitialised, isSupported } from './common/index.mjs';\nimport { InitError, ElementError, SupportError } from './errors/index.mjs';\n\nclass Component {\n  /**\n   * Returns the root element of the component\n   *\n   * @protected\n   * @returns {RootElementType} - the root element of component\n   */\n  get $root() {\n    return this._$root;\n  }\n  constructor($root) {\n    this._$root = void 0;\n    const childConstructor = this.constructor;\n    if (typeof childConstructor.moduleName !== 'string') {\n      throw new InitError(`\\`moduleName\\` not defined in component`);\n    }\n    if (!($root instanceof childConstructor.elementType)) {\n      throw new ElementError({\n        element: $root,\n        component: childConstructor,\n        identifier: 'Root element (`$root`)',\n        expectedType: childConstructor.elementType.name\n      });\n    } else {\n      this._$root = $root;\n    }\n    childConstructor.checkSupport();\n    this.checkInitialised();\n    const moduleName = childConstructor.moduleName;\n    this.$root.setAttribute(`data-${moduleName}-init`, '');\n  }\n  checkInitialised() {\n    const constructor = this.constructor;\n    const moduleName = constructor.moduleName;\n    if (moduleName && isInitialised(this.$root, moduleName)) {\n      throw new InitError(constructor);\n    }\n  }\n  static checkSupport() {\n    if (!isSupported()) {\n      throw new SupportError();\n    }\n  }\n}\n\n/**\n * @typedef ChildClass\n * @property {string} moduleName - The module name that'll be looked for in the DOM when initialising the component\n */\n\n/**\n * @typedef {typeof Component & ChildClass} ChildClassConstructor\n */\nComponent.elementType = HTMLElement;\n\nexport { Component };\n//# sourceMappingURL=component.mjs.map\n","import { Component } from '../component.mjs';\nimport { ConfigError } from '../errors/index.mjs';\nimport { isObject, formatErrorMessage } from './index.mjs';\n\nconst configOverride = Symbol.for('configOverride');\nclass ConfigurableComponent extends Component {\n  [configOverride](param) {\n    return {};\n  }\n\n  /**\n   * Returns the root element of the component\n   *\n   * @protected\n   * @returns {ConfigurationType} - the root element of component\n   */\n  get config() {\n    return this._config;\n  }\n  constructor($root, config) {\n    super($root);\n    this._config = void 0;\n    const childConstructor = this.constructor;\n    if (!isObject(childConstructor.defaults)) {\n      throw new ConfigError(formatErrorMessage(childConstructor, 'Config passed as parameter into constructor but no defaults defined'));\n    }\n    const datasetConfig = normaliseDataset(childConstructor, this._$root.dataset);\n    this._config = mergeConfigs(childConstructor.defaults, config != null ? config : {}, this[configOverride](datasetConfig), datasetConfig);\n  }\n}\nfunction normaliseString(value, property) {\n  const trimmedValue = value ? value.trim() : '';\n  let output;\n  let outputType = property == null ? void 0 : property.type;\n  if (!outputType) {\n    if (['true', 'false'].includes(trimmedValue)) {\n      outputType = 'boolean';\n    }\n    if (trimmedValue.length > 0 && isFinite(Number(trimmedValue))) {\n      outputType = 'number';\n    }\n  }\n  switch (outputType) {\n    case 'boolean':\n      output = trimmedValue === 'true';\n      break;\n    case 'number':\n      output = Number(trimmedValue);\n      break;\n    default:\n      output = value;\n  }\n  return output;\n}\nfunction normaliseDataset(Component, dataset) {\n  if (!isObject(Component.schema)) {\n    throw new ConfigError(formatErrorMessage(Component, 'Config passed as parameter into constructor but no schema defined'));\n  }\n  const out = {};\n  const entries = Object.entries(Component.schema.properties);\n  for (const entry of entries) {\n    const [namespace, property] = entry;\n    const field = namespace.toString();\n    if (field in dataset) {\n      out[field] = normaliseString(dataset[field], property);\n    }\n    if ((property == null ? void 0 : property.type) === 'object') {\n      out[field] = extractConfigByNamespace(Component.schema, dataset, namespace);\n    }\n  }\n  return out;\n}\nfunction mergeConfigs(...configObjects) {\n  const formattedConfigObject = {};\n  for (const configObject of configObjects) {\n    for (const key of Object.keys(configObject)) {\n      const option = formattedConfigObject[key];\n      const override = configObject[key];\n      if (isObject(option) && isObject(override)) {\n        formattedConfigObject[key] = mergeConfigs(option, override);\n      } else {\n        formattedConfigObject[key] = override;\n      }\n    }\n  }\n  return formattedConfigObject;\n}\nfunction validateConfig(schema, config) {\n  const validationErrors = [];\n  for (const [name, conditions] of Object.entries(schema)) {\n    const errors = [];\n    if (Array.isArray(conditions)) {\n      for (const {\n        required,\n        errorMessage\n      } of conditions) {\n        if (!required.every(key => !!config[key])) {\n          errors.push(errorMessage);\n        }\n      }\n      if (name === 'anyOf' && !(conditions.length - errors.length >= 1)) {\n        validationErrors.push(...errors);\n      }\n    }\n  }\n  return validationErrors;\n}\nfunction extractConfigByNamespace(schema, dataset, namespace) {\n  const property = schema.properties[namespace];\n  if ((property == null ? void 0 : property.type) !== 'object') {\n    return;\n  }\n  const newObject = {\n    [namespace]: {}\n  };\n  for (const [key, value] of Object.entries(dataset)) {\n    let current = newObject;\n    const keyParts = key.split('.');\n    for (const [index, name] of keyParts.entries()) {\n      if (isObject(current)) {\n        if (index < keyParts.length - 1) {\n          if (!isObject(current[name])) {\n            current[name] = {};\n          }\n          current = current[name];\n        } else if (key !== namespace) {\n          current[name] = normaliseString(value);\n        }\n      }\n    }\n  }\n  return newObject[namespace];\n}\n/**\n * Schema for component config\n *\n * @template {Partial<Record<keyof ConfigurationType, unknown>>} ConfigurationType\n * @typedef {object} Schema\n * @property {Record<keyof ConfigurationType, SchemaProperty | undefined>} properties - Schema properties\n * @property {SchemaCondition<ConfigurationType>[]} [anyOf] - List of schema conditions\n */\n/**\n * Schema property for component config\n *\n * @typedef {object} SchemaProperty\n * @property {'string' | 'boolean' | 'number' | 'object'} type - Property type\n */\n/**\n * Schema condition for component config\n *\n * @template {Partial<Record<keyof ConfigurationType, unknown>>} ConfigurationType\n * @typedef {object} SchemaCondition\n * @property {(keyof ConfigurationType)[]} required - List of required config fields\n * @property {string} errorMessage - Error message when required config fields not provided\n */\n/**\n * @template {Partial<Record<keyof ConfigurationType, unknown>>} [ConfigurationType=ObjectNested]\n * @typedef ChildClass\n * @property {string} moduleName - The module name that'll be looked for in the DOM when initialising the component\n * @property {Schema<ConfigurationType>} [schema] - The schema of the component configuration\n * @property {ConfigurationType} [defaults] - The default values of the configuration of the component\n */\n/**\n * @template {Partial<Record<keyof ConfigurationType, unknown>>} [ConfigurationType=ObjectNested]\n * @typedef {typeof Component & ChildClass<ConfigurationType>} ChildClassConstructor<ConfigurationType>\n */\n\nexport { ConfigurableComponent, configOverride, extractConfigByNamespace, mergeConfigs, normaliseDataset, normaliseString, validateConfig };\n//# sourceMappingURL=configuration.mjs.map\n","class I18n {\n  constructor(translations = {}, config = {}) {\n    var _config$locale;\n    this.translations = void 0;\n    this.locale = void 0;\n    this.translations = translations;\n    this.locale = (_config$locale = config.locale) != null ? _config$locale : document.documentElement.lang || 'en';\n  }\n  t(lookupKey, options) {\n    if (!lookupKey) {\n      throw new Error('i18n: lookup key missing');\n    }\n    let translation = this.translations[lookupKey];\n    if (typeof (options == null ? void 0 : options.count) === 'number' && typeof translation === 'object') {\n      const translationPluralForm = translation[this.getPluralSuffix(lookupKey, options.count)];\n      if (translationPluralForm) {\n        translation = translationPluralForm;\n      }\n    }\n    if (typeof translation === 'string') {\n      if (translation.match(/%{(.\\S+)}/)) {\n        if (!options) {\n          throw new Error('i18n: cannot replace placeholders in string if no option data provided');\n        }\n        return this.replacePlaceholders(translation, options);\n      }\n      return translation;\n    }\n    return lookupKey;\n  }\n  replacePlaceholders(translationString, options) {\n    const formatter = Intl.NumberFormat.supportedLocalesOf(this.locale).length ? new Intl.NumberFormat(this.locale) : undefined;\n    return translationString.replace(/%{(.\\S+)}/g, function (placeholderWithBraces, placeholderKey) {\n      if (Object.prototype.hasOwnProperty.call(options, placeholderKey)) {\n        const placeholderValue = options[placeholderKey];\n        if (placeholderValue === false || typeof placeholderValue !== 'number' && typeof placeholderValue !== 'string') {\n          return '';\n        }\n        if (typeof placeholderValue === 'number') {\n          return formatter ? formatter.format(placeholderValue) : `${placeholderValue}`;\n        }\n        return placeholderValue;\n      }\n      throw new Error(`i18n: no data found to replace ${placeholderWithBraces} placeholder in string`);\n    });\n  }\n  hasIntlPluralRulesSupport() {\n    return Boolean('PluralRules' in window.Intl && Intl.PluralRules.supportedLocalesOf(this.locale).length);\n  }\n  getPluralSuffix(lookupKey, count) {\n    count = Number(count);\n    if (!isFinite(count)) {\n      return 'other';\n    }\n    const translation = this.translations[lookupKey];\n    const preferredForm = this.hasIntlPluralRulesSupport() ? new Intl.PluralRules(this.locale).select(count) : this.selectPluralFormUsingFallbackRules(count);\n    if (typeof translation === 'object') {\n      if (preferredForm in translation) {\n        return preferredForm;\n      } else if ('other' in translation) {\n        console.warn(`i18n: Missing plural form \".${preferredForm}\" for \"${this.locale}\" locale. Falling back to \".other\".`);\n        return 'other';\n      }\n    }\n    throw new Error(`i18n: Plural form \".other\" is required for \"${this.locale}\" locale`);\n  }\n  selectPluralFormUsingFallbackRules(count) {\n    count = Math.abs(Math.floor(count));\n    const ruleset = this.getPluralRulesForLocale();\n    if (ruleset) {\n      return I18n.pluralRules[ruleset](count);\n    }\n    return 'other';\n  }\n  getPluralRulesForLocale() {\n    const localeShort = this.locale.split('-')[0];\n    for (const pluralRule in I18n.pluralRulesMap) {\n      const languages = I18n.pluralRulesMap[pluralRule];\n      if (languages.includes(this.locale) || languages.includes(localeShort)) {\n        return pluralRule;\n      }\n    }\n  }\n}\nI18n.pluralRulesMap = {\n  arabic: ['ar'],\n  chinese: ['my', 'zh', 'id', 'ja', 'jv', 'ko', 'ms', 'th', 'vi'],\n  french: ['hy', 'bn', 'fr', 'gu', 'hi', 'fa', 'pa', 'zu'],\n  german: ['af', 'sq', 'az', 'eu', 'bg', 'ca', 'da', 'nl', 'en', 'et', 'fi', 'ka', 'de', 'el', 'hu', 'lb', 'no', 'so', 'sw', 'sv', 'ta', 'te', 'tr', 'ur'],\n  irish: ['ga'],\n  russian: ['ru', 'uk'],\n  scottish: ['gd'],\n  spanish: ['pt-PT', 'it', 'es'],\n  welsh: ['cy']\n};\nI18n.pluralRules = {\n  arabic(n) {\n    if (n === 0) {\n      return 'zero';\n    }\n    if (n === 1) {\n      return 'one';\n    }\n    if (n === 2) {\n      return 'two';\n    }\n    if (n % 100 >= 3 && n % 100 <= 10) {\n      return 'few';\n    }\n    if (n % 100 >= 11 && n % 100 <= 99) {\n      return 'many';\n    }\n    return 'other';\n  },\n  chinese() {\n    return 'other';\n  },\n  french(n) {\n    return n === 0 || n === 1 ? 'one' : 'other';\n  },\n  german(n) {\n    return n === 1 ? 'one' : 'other';\n  },\n  irish(n) {\n    if (n === 1) {\n      return 'one';\n    }\n    if (n === 2) {\n      return 'two';\n    }\n    if (n >= 3 && n <= 6) {\n      return 'few';\n    }\n    if (n >= 7 && n <= 10) {\n      return 'many';\n    }\n    return 'other';\n  },\n  russian(n) {\n    const lastTwo = n % 100;\n    const last = lastTwo % 10;\n    if (last === 1 && lastTwo !== 11) {\n      return 'one';\n    }\n    if (last >= 2 && last <= 4 && !(lastTwo >= 12 && lastTwo <= 14)) {\n      return 'few';\n    }\n    if (last === 0 || last >= 5 && last <= 9 || lastTwo >= 11 && lastTwo <= 14) {\n      return 'many';\n    }\n    return 'other';\n  },\n  scottish(n) {\n    if (n === 1 || n === 11) {\n      return 'one';\n    }\n    if (n === 2 || n === 12) {\n      return 'two';\n    }\n    if (n >= 3 && n <= 10 || n >= 13 && n <= 19) {\n      return 'few';\n    }\n    return 'other';\n  },\n  spanish(n) {\n    if (n === 1) {\n      return 'one';\n    }\n    if (n % 1000000 === 0 && n !== 0) {\n      return 'many';\n    }\n    return 'other';\n  },\n  welsh(n) {\n    if (n === 0) {\n      return 'zero';\n    }\n    if (n === 1) {\n      return 'one';\n    }\n    if (n === 2) {\n      return 'two';\n    }\n    if (n === 3) {\n      return 'few';\n    }\n    if (n === 6) {\n      return 'many';\n    }\n    return 'other';\n  }\n};\n\nexport { I18n };\n//# sourceMappingURL=i18n.mjs.map\n","function closestAttributeValue($element, attributeName) {\n  const $closestElementWithAttribute = $element.closest(`[${attributeName}]`);\n  return $closestElementWithAttribute ? $closestElementWithAttribute.getAttribute(attributeName) : null;\n}\n\nexport { closestAttributeValue };\n//# sourceMappingURL=closest-attribute-value.mjs.map\n","import { closestAttributeValue } from '../../common/closest-attribute-value.mjs';\nimport { ConfigurableComponent } from '../../common/configuration.mjs';\nimport { formatErrorMessage } from '../../common/index.mjs';\nimport { ElementError } from '../../errors/index.mjs';\nimport { I18n } from '../../i18n.mjs';\n\n/**\n * File upload component\n *\n * @preserve\n * @augments ConfigurableComponent<FileUploadConfig>\n */\nclass FileUpload extends ConfigurableComponent {\n  /**\n   * @param {Element | null} $root - File input element\n   * @param {FileUploadConfig} [config] - File Upload config\n   */\n  constructor($root, config = {}) {\n    super($root, config);\n    this.$input = void 0;\n    this.$button = void 0;\n    this.$status = void 0;\n    this.i18n = void 0;\n    this.id = void 0;\n    this.$announcements = void 0;\n    this.enteredAnotherElement = void 0;\n    const $input = this.$root.querySelector('input');\n    if ($input === null) {\n      throw new ElementError({\n        component: FileUpload,\n        identifier: 'File inputs (`<input type=\"file\">`)'\n      });\n    }\n    if ($input.type !== 'file') {\n      throw new ElementError(formatErrorMessage(FileUpload, 'File input (`<input type=\"file\">`) attribute (`type`) is not `file`'));\n    }\n    this.$input = $input;\n    this.$input.setAttribute('hidden', 'true');\n    if (!this.$input.id) {\n      throw new ElementError({\n        component: FileUpload,\n        identifier: 'File input (`<input type=\"file\">`) attribute (`id`)'\n      });\n    }\n    this.id = this.$input.id;\n    this.i18n = new I18n(this.config.i18n, {\n      locale: closestAttributeValue(this.$root, 'lang')\n    });\n    const $label = this.findLabel();\n    if (!$label.id) {\n      $label.id = `${this.id}-label`;\n    }\n    this.$input.id = `${this.id}-input`;\n    const $button = document.createElement('button');\n    $button.classList.add('govuk-file-upload-button');\n    $button.type = 'button';\n    $button.id = this.id;\n    $button.classList.add('govuk-file-upload-button--empty');\n    const ariaDescribedBy = this.$input.getAttribute('aria-describedby');\n    if (ariaDescribedBy) {\n      $button.setAttribute('aria-describedby', ariaDescribedBy);\n    }\n    const $status = document.createElement('span');\n    $status.className = 'govuk-body govuk-file-upload-button__status';\n    $status.setAttribute('aria-live', 'polite');\n    $status.innerText = this.i18n.t('noFileChosen');\n    $button.appendChild($status);\n    const commaSpan = document.createElement('span');\n    commaSpan.className = 'govuk-visually-hidden';\n    commaSpan.innerText = ', ';\n    commaSpan.id = `${this.id}-comma`;\n    $button.appendChild(commaSpan);\n    const containerSpan = document.createElement('span');\n    containerSpan.className = 'govuk-file-upload-button__pseudo-button-container';\n    const buttonSpan = document.createElement('span');\n    buttonSpan.className = 'govuk-button govuk-button--secondary govuk-file-upload-button__pseudo-button';\n    buttonSpan.innerText = this.i18n.t('chooseFilesButton');\n    containerSpan.appendChild(buttonSpan);\n    containerSpan.insertAdjacentText('beforeend', ' ');\n    const instructionSpan = document.createElement('span');\n    instructionSpan.className = 'govuk-body govuk-file-upload-button__instruction';\n    instructionSpan.innerText = this.i18n.t('dropInstruction');\n    containerSpan.appendChild(instructionSpan);\n    $button.appendChild(containerSpan);\n    $button.setAttribute('aria-labelledby', `${$label.id} ${commaSpan.id} ${$button.id}`);\n    $button.addEventListener('click', this.onClick.bind(this));\n    $button.addEventListener('dragover', event => {\n      event.preventDefault();\n    });\n    this.$root.insertAdjacentElement('afterbegin', $button);\n    this.$input.setAttribute('tabindex', '-1');\n    this.$input.setAttribute('aria-hidden', 'true');\n    this.$button = $button;\n    this.$status = $status;\n    this.$input.addEventListener('change', this.onChange.bind(this));\n    this.updateDisabledState();\n    this.observeDisabledState();\n    this.$announcements = document.createElement('span');\n    this.$announcements.classList.add('govuk-file-upload-announcements');\n    this.$announcements.classList.add('govuk-visually-hidden');\n    this.$announcements.setAttribute('aria-live', 'assertive');\n    this.$root.insertAdjacentElement('afterend', this.$announcements);\n    this.$button.addEventListener('drop', this.onDrop.bind(this));\n    document.addEventListener('dragenter', this.updateDropzoneVisibility.bind(this));\n    document.addEventListener('dragenter', () => {\n      this.enteredAnotherElement = true;\n    });\n    document.addEventListener('dragleave', () => {\n      if (!this.enteredAnotherElement && !this.$button.disabled) {\n        this.hideDraggingState();\n        this.$announcements.innerText = this.i18n.t('leftDropZone');\n      }\n      this.enteredAnotherElement = false;\n    });\n  }\n  updateDropzoneVisibility(event) {\n    if (this.$button.disabled) return;\n    if (event.target instanceof Node) {\n      if (this.$root.contains(event.target)) {\n        if (event.dataTransfer && isContainingFiles(event.dataTransfer)) {\n          if (!this.$button.classList.contains('govuk-file-upload-button--dragging')) {\n            this.showDraggingState();\n            this.$announcements.innerText = this.i18n.t('enteredDropZone');\n          }\n        }\n      } else {\n        if (this.$button.classList.contains('govuk-file-upload-button--dragging')) {\n          this.hideDraggingState();\n          this.$announcements.innerText = this.i18n.t('leftDropZone');\n        }\n      }\n    }\n  }\n  showDraggingState() {\n    this.$button.classList.add('govuk-file-upload-button--dragging');\n  }\n  hideDraggingState() {\n    this.$button.classList.remove('govuk-file-upload-button--dragging');\n  }\n  onDrop(event) {\n    event.preventDefault();\n    if (event.dataTransfer && isContainingFiles(event.dataTransfer)) {\n      this.$input.files = event.dataTransfer.files;\n      this.$input.dispatchEvent(new CustomEvent('change'));\n      this.hideDraggingState();\n    }\n  }\n  onChange() {\n    const fileCount = this.$input.files.length;\n    if (fileCount === 0) {\n      this.$status.innerText = this.i18n.t('noFileChosen');\n      this.$button.classList.add('govuk-file-upload-button--empty');\n    } else {\n      if (fileCount === 1) {\n        this.$status.innerText = this.$input.files[0].name;\n      } else {\n        this.$status.innerText = this.i18n.t('multipleFilesChosen', {\n          count: fileCount\n        });\n      }\n      this.$button.classList.remove('govuk-file-upload-button--empty');\n    }\n  }\n  findLabel() {\n    const $label = document.querySelector(`label[for=\"${this.$input.id}\"]`);\n    if (!$label) {\n      throw new ElementError({\n        component: FileUpload,\n        identifier: `Field label (\\`<label for=${this.$input.id}>\\`)`\n      });\n    }\n    return $label;\n  }\n  onClick() {\n    this.$input.click();\n  }\n  observeDisabledState() {\n    const observer = new MutationObserver(mutationList => {\n      for (const mutation of mutationList) {\n        if (mutation.type === 'attributes' && mutation.attributeName === 'disabled') {\n          this.updateDisabledState();\n        }\n      }\n    });\n    observer.observe(this.$input, {\n      attributes: true\n    });\n  }\n  updateDisabledState() {\n    this.$button.disabled = this.$input.disabled;\n    this.$root.classList.toggle('govuk-drop-zone--disabled', this.$button.disabled);\n  }\n}\nFileUpload.moduleName = 'govuk-file-upload';\nFileUpload.defaults = Object.freeze({\n  i18n: {\n    chooseFilesButton: 'Choose file',\n    dropInstruction: 'or drop file',\n    noFileChosen: 'No file chosen',\n    multipleFilesChosen: {\n      one: '%{count} file chosen',\n      other: '%{count} files chosen'\n    },\n    enteredDropZone: 'Entered drop zone',\n    leftDropZone: 'Left drop zone'\n  }\n});\nFileUpload.schema = Object.freeze({\n  properties: {\n    i18n: {\n      type: 'object'\n    }\n  }\n});\nfunction isContainingFiles(dataTransfer) {\n  const hasNoTypesInfo = dataTransfer.types.length === 0;\n  const isDraggingFiles = dataTransfer.types.some(type => type === 'Files');\n  return hasNoTypesInfo || isDraggingFiles;\n}\n\n/**\n * @typedef {HTMLInputElement & {files: FileList}} HTMLFileInputElement\n */\n\n/**\n * File upload config\n *\n * @see {@link FileUpload.defaults}\n * @typedef {object} FileUploadConfig\n * @property {FileUploadTranslations} [i18n=FileUpload.defaults.i18n] - File upload translations\n */\n\n/**\n * File upload translations\n *\n * @see {@link FileUpload.defaults.i18n}\n * @typedef {object} FileUploadTranslations\n *\n * Messages used by the component\n * @property {string} [chooseFile] - The text of the button that opens the file picker\n * @property {string} [dropInstruction] - The text informing users they can drop files\n * @property {TranslationPluralForms} [multipleFilesChosen] - The text displayed when multiple files\n *   have been chosen by the user\n * @property {string} [noFileChosen] - The text to displayed when no file has been chosen by the user\n * @property {string} [enteredDropZone] - The text announced by assistive technology\n *   when user drags files and enters the drop zone\n * @property {string} [leftDropZone] - The text announced by assistive technology\n *   when user drags files and leaves the drop zone without dropping\n */\n\n/**\n * @import { Schema } from '../../common/configuration.mjs'\n * @import { TranslationPluralForms } from '../../i18n.mjs'\n */\n\nexport { FileUpload };\n//# sourceMappingURL=file-upload.mjs.map\n","import { DigitalMarketplaceFrontendComponent } from '../../digitalmarketplace-frontend-component'\nimport { FileUpload } from 'govuk-frontend/dist/govuk/all.mjs'\n\n\nclass ComplianceCommunicationAttachmentListRowFileInput {\n  $dropZone: JQuery<HTMLElement>\n  $input: JQuery<HTMLInputElement>\n  $label: JQuery<HTMLLabelElement>\n  $hint: JQuery<HTMLElement>\n  $button: JQuery<HTMLButtonElement>\n  $comma: JQuery<HTMLElement>\n  $announcements: JQuery<HTMLElement>\n\n  constructor ($row: JQuery<HTMLElement>, column: number) {\n    const $column = $row.find(`.govuk-grid-column-one-half:nth-of-type(${column})`)\n\n    this.$dropZone = $column.find('.govuk-drop-zone')\n    this.$input = $column.find('input')\n    this.$label = $column.find<HTMLLabelElement>('.govuk-label')\n    this.$hint = $column.find('div.govuk-hint')\n    this.$button = $column.find('button')\n    this.$comma = $column.find('button > span.govuk-visually-hidden')\n    this.$announcements = $column.find('span.govuk-file-upload-announcements')\n  }\n\n  updateIndex (newIndex: number) {\n    const newName = (this.$input.attr('name') as string).replace(/\\d+/, newIndex.toString())\n    const newId = `input-${newName}`\n\n    if (this.$button.length) {\n      this.$label.attr('for', newId)\n      this.$label.attr('id', `${newId}-label`)\n  \n      this.$hint.attr('id', `${newId}-hint`)\n  \n      this.$input.attr('id', `${newId}-input`)\n      this.$input.attr('name', newName)\n      this.$input.attr('aria-describedby', `${newId}-hint`)\n  \n      this.$button.attr('id', newId)\n      this.$button.attr('aria-describedby', `${newId}-hint`)\n      this.$button.attr('aria-labelledby', `${newId}-label ${newId}-comma ${newId}`)\n  \n      this.$comma.attr('id', `${newId}-comma`)\n    } else {\n      this.$label.attr('for', newId)\n      this.$hint.attr('id', `${newId}-hint`)\n  \n      this.$input.attr('id', newId)\n      this.$input.attr('name', newName)\n      this.$input.attr('aria-describedby', `${newId}-hint`)\n    }\n  }\n\n  makeInteractable () {\n    if (!this.$button.length) {\n      return new FileUpload(this.$dropZone.get(0))\n    }\n  }\n\n  resetHtml () {\n    this.$label.removeAttr('id')\n    \n    this.$dropZone.removeAttr('data-govuk-file-upload-init')\n    \n    this.$button.remove()\n    \n    const id = this.$input.attr('id') as string\n\n    this.$input.removeAttr('hidden')\n    this.$input.removeAttr('aria-hidden')\n    this.$input.attr('id', id.substring(0, id.length - 6))\n\n    this.$announcements.remove()\n  }\n}\n\nclass ComplianceCommunicationAttachmentListRequiredInput {\n  $requiredSection: JQuery<HTMLElement>\n  $input: JQuery<HTMLInputElement>\n  $label: JQuery<HTMLLabelElement>\n\n  constructor ($row: JQuery<HTMLElement>) {\n    this.$requiredSection = $row.find('.dm-compliance-communication__attachments-item-required')\n    this.$input = this.$requiredSection.find<HTMLInputElement>('.govuk-checkboxes__item > input')\n    this.$label = this.$requiredSection.find<HTMLLabelElement>('.govuk-checkboxes__item > .govuk-label')\n  }\n\n  isChecked () {\n    return this.$input.is(':checked')\n  }\n\n  updateIndex (newIndex: number) {\n    const newName = (this.$input.attr('name') as string).replace(/\\d+/, newIndex.toString())\n    const newId = `input-${newName}`\n\n    this.$label.attr('for', newId)\n\n    this.$input.attr('id', newId)\n    this.$input.attr('name', newName)\n  }\n\n  checkRow () {\n    this.$requiredSection.toggleClass('govuk-visually-hidden', true)\n    this.$input.prop('checked', true)\n    this.$input.attr('tabindex', -1)\n    this.$input.attr('tabindex', -1)\n  }\n}\n\nclass ComplianceCommunicationAttachmentListRowRemoveButton {\n  attachmentListRow: ComplianceCommunicationAttachmentListRow\n  $button: JQuery<HTMLElement>\n  $removeButtonCounter: JQuery<HTMLElement>\n\n  constructor (attachmentListRow: ComplianceCommunicationAttachmentListRow, $row: JQuery<HTMLElement>) {\n    this.attachmentListRow = attachmentListRow\n    this.$button = $row.find('.dm-compliance-communication__attachments-item-remove')\n    this.$removeButtonCounter = this.$button.find('.dm-compliance-communication__attachments-item-remove-counter')\n  }\n\n  init () {\n    this.toggleVisibility(true)\n\n    this.$button.on('click', () => {\n      this.attachmentListRow.removeRow()\n    })\n  }\n\n  toggleVisibility (isShown: boolean) {\n    this.$button.toggleClass('govuk-visually-hidden', !isShown)\n\n    if (isShown) {\n      this.$button.removeAttr('tabindex')\n    } else {\n      this.$button.attr('tabindex', -1)\n    }\n  }\n\n  updateIndex (newIndex: number) {\n    this.$removeButtonCounter.text(newIndex + 1)\n  }\n}\n\nclass ComplianceCommunicationAttachmentListRow {\n  $row: JQuery<HTMLElement>\n  attachmentList: ComplianceCommunicationAttachments\n  index: number\n  $legendCounter: JQuery<HTMLElement>\n  attachmentListRowFileInput: ComplianceCommunicationAttachmentListRowFileInput\n  attachmentListRowRequiredInput: ComplianceCommunicationAttachmentListRequiredInput\n  attachmentListRowRemoveButton: ComplianceCommunicationAttachmentListRowRemoveButton\n\n  constructor (attachmentList: ComplianceCommunicationAttachments, index: number, $row: JQuery<HTMLElement>) {\n    this.$row = $row\n    this.attachmentList = attachmentList\n    this.index = index\n    this.$legendCounter = this.$row.find('.dm-compliance-communication__attachments-item-legend-counter')\n    this.attachmentListRowFileInput = new ComplianceCommunicationAttachmentListRowFileInput($row, 1)\n    this.attachmentListRowRequiredInput = new ComplianceCommunicationAttachmentListRequiredInput($row)\n    this.attachmentListRowRemoveButton = new ComplianceCommunicationAttachmentListRowRemoveButton(this, $row)\n  }\n\n  init () {\n    this.attachmentListRowRemoveButton.init()\n    this.attachmentListRowFileInput.makeInteractable()\n    this.attachmentListRowRequiredInput.checkRow()\n  }\n\n  updateIndex (newIndex: number) {\n    this.index = newIndex\n    this.attachmentListRowFileInput.updateIndex(newIndex)\n    this.attachmentListRowRequiredInput.updateIndex(newIndex)\n    this.attachmentListRowRemoveButton.updateIndex(newIndex)\n    this.$legendCounter.text(newIndex + 1)\n  }\n\n  removeRow () {\n    this.attachmentList.removeRow(this.index)\n    this.deleteRow()\n  }\n\n  deleteRow () {\n    this.$row.remove()\n  }\n\n  toggleRemoveButtonVisibility (isShown: boolean) {\n    this.attachmentListRowRemoveButton.toggleVisibility(isShown)\n  }\n\n  isRowChecked () {\n    return this.attachmentListRowRequiredInput.isChecked()\n  }\n}\n\nclass ComplianceCommunicationAttachmentListAddButton {\n  attachmentList: ComplianceCommunicationAttachments\n  $button: JQuery<HTMLButtonElement>\n  $buttonCounter: JQuery<HTMLElement>\n\n  constructor (attachmentList: ComplianceCommunicationAttachments, $button: JQuery<HTMLButtonElement>) {\n    this.attachmentList = attachmentList\n    this.$button = $button\n    this.$buttonCounter = $button.find('.dm-compliance-communication__attachments__js-remaining-counter')\n  }\n\n  init (numberOfRows: number) {\n    this.$button.on('click', () => {\n      this.attachmentList.addRow()\n    })\n\n    this.updateButtonText(this.attachmentList.maxNumberOfAttachments - numberOfRows)\n  }\n\n  updateButtonText (numberRemaining: number) {\n    this.$buttonCounter.text(numberRemaining)\n  }\n\n  toggleVisibility (isShown: boolean) {\n    this.$button.toggleClass('govuk-visually-hidden', !isShown)\n\n    if (isShown) {\n      this.$button.removeAttr('tabindex')\n    } else {\n      this.$button.attr('tabindex', -1)\n    }\n  }\n}\n\nclass ComplianceCommunicationAttachments implements DigitalMarketplaceFrontendComponent {\n  static moduleName = 'dm-compliance-communication-attachments'\n  $attachmentList: JQuery<HTMLElement>\n  $attachmentListItems: JQuery<HTMLElement>\n  attachmentListRows: ComplianceCommunicationAttachmentListRow[]\n  attachmentListTemplateRow: ComplianceCommunicationAttachmentListRow\n  attachmentListAddButton: ComplianceCommunicationAttachmentListAddButton\n  maxNumberOfAttachments: number\n\n  constructor ($attachmentList: JQuery<HTMLElement>) {\n    this.$attachmentList = $attachmentList\n    this.$attachmentListItems = this.$attachmentList.find('.dm-compliance-communication__attachments-items')\n    this.attachmentListRows = this.$attachmentListItems.find('.dm-compliance-communication__attachments-item').get().map((row, index) => new ComplianceCommunicationAttachmentListRow(this, index, $(row)))\n    this.attachmentListTemplateRow = new ComplianceCommunicationAttachmentListRow(this, 99, this.$attachmentList.find('.dm-compliance-communication__attachments-item-template > .dm-compliance-communication__attachments-item'))\n    this.attachmentListAddButton = new ComplianceCommunicationAttachmentListAddButton(this, this.$attachmentList.find<HTMLButtonElement>('.dm-compliance-communication__attachments-add'))\n    this.maxNumberOfAttachments = this.$attachmentList.data('maxNumberOfAttachments')\n  }\n\n  init () {\n    const rowsChecked = this.attachmentListRows.map((attachmentListRow) => attachmentListRow.isRowChecked())\n    let indexToDeleteFrom\n\n    if (rowsChecked.every((rowChecked) => !rowChecked)) {\n      indexToDeleteFrom = 0\n    } else {\n      indexToDeleteFrom = rowsChecked.indexOf(false)\n    }\n\n    if (indexToDeleteFrom >= 0) {\n      this.attachmentListRows.slice(indexToDeleteFrom).forEach((attachmentListRow) => attachmentListRow.deleteRow())\n      this.attachmentListRows.splice(indexToDeleteFrom)\n    }\n\n    this.attachmentListAddButton.init(this.attachmentListRows.length)\n    this.attachmentListRows.forEach((attachmentListRow) => attachmentListRow.init())\n\n    this.attachmentListTemplateRow.attachmentListRowFileInput.resetHtml()\n\n    this.updateIfMinRows()\n    this.updateAttachmentButton()\n  }\n\n  removeRow (indexToRemove: number) {\n    this.attachmentListRows.splice(indexToRemove, 1)\n\n    this.attachmentListRows.slice(indexToRemove).forEach((attachmentListRow, index) => {\n      attachmentListRow.updateIndex(indexToRemove + index)\n    })\n\n    this.updateIfMinRows()\n    this.updateAttachmentButton()\n\n    if (indexToRemove > 0) {\n      this.focusOnRow(indexToRemove)\n    } else {\n      this.attachmentListAddButton.$button.focus()\n    }\n  }\n\n  addRow () {\n    const numberOfRows = this.attachmentListRows.length\n\n    if (numberOfRows < this.maxNumberOfAttachments) {\n      const $newRow = this.attachmentListTemplateRow.$row.clone()\n      const attachmentListRow = new ComplianceCommunicationAttachmentListRow(this, numberOfRows, $newRow)\n\n      attachmentListRow.updateIndex(numberOfRows)\n\n      this.attachmentListRows.push(attachmentListRow)\n      this.$attachmentListItems.append($newRow)\n      this.attachmentListRows[numberOfRows].init()\n\n      this.updateIfMinRows()\n      this.updateAttachmentButton()\n      this.focusOnRow(numberOfRows)\n    }\n  }\n\n  updateIfMinRows () {\n    if (this.attachmentListRows.length !== 0) {\n      this.attachmentListRows[0].toggleRemoveButtonVisibility(true)\n    }\n  }\n\n  updateAttachmentButton () {\n    if (this.attachmentListRows.length === this.maxNumberOfAttachments) {\n      this.attachmentListAddButton.toggleVisibility(false)\n    } else {\n      this.attachmentListAddButton.toggleVisibility(true)\n      this.attachmentListAddButton.updateButtonText(this.maxNumberOfAttachments - this.attachmentListRows.length)\n    }\n  }\n\n  focusOnRow (targetIndexToFocus: number) {\n    const numberOfRows = this.attachmentListRows.length\n    let indexToFocus = targetIndexToFocus\n\n    if (targetIndexToFocus >= numberOfRows) {\n      indexToFocus = numberOfRows - 1\n    }\n\n    this.attachmentListRows[indexToFocus].attachmentListRowFileInput.$button.focus()\n  }\n}\n\nexport { ComplianceCommunicationAttachments }\n","import { DigitalMarketplaceFrontendComponent } from '../../digitalmarketplace-frontend-component'\nimport { getCookiePreferences, setCookiePreferences } from '../../scripts/cookies/manage'\n\nclass CookieBanner implements DigitalMarketplaceFrontendComponent {\n  static moduleName = 'dm-cookie-banner'\n\n  $module: JQuery<HTMLElement>\n  $cookieBannerMainContent: JQuery<HTMLElement>\n  $cookieBannerConfirmationContent: JQuery<HTMLElement>\n  $cookieBannerConfirmationMessage: JQuery<HTMLElement>\n  $hideLink: JQuery<HTMLElement>\n  $acceptCookiesLink: JQuery<HTMLElement>\n  $rejectCookiesLink: JQuery<HTMLElement>\n\n  constructor ($module: JQuery<HTMLElement>) {\n    this.$module = $module\n    this.$cookieBannerMainContent = this.$module.find('.dm-cookie-banner__button--main')\n    this.$cookieBannerConfirmationContent = this.$module.find('.dm-cookie-banner--selection-made')\n    this.$cookieBannerConfirmationMessage = this.$module.find('.dm-cookie-banner__confirmation-message')\n    this.$hideLink = this.$module.find('button[data-hide-cookie-banner]')\n    this.$acceptCookiesLink = this.$module.find('button[data-accept-cookies=true]')\n    this.$rejectCookiesLink = this.$module.find('button[data-accept-cookies=false]')\n  }\n\n  init () {\n    this.$hideLink.on('click', (event) => {\n      this.hideCookieMessage(event)\n    })\n\n    this.$acceptCookiesLink.on('click', () => {\n      this.setCookieConsent(true)\n    })\n\n    this.$rejectCookiesLink.on('click', () => {\n      this.setCookieConsent(false)\n    })\n\n    this.showCookieMessage()\n  }\n\n  setCookieConsent (analyticsConsent: boolean) {\n    setCookiePreferences(analyticsConsent)\n\n    this.showConfirmationMessage(analyticsConsent)\n    this.$cookieBannerConfirmationContent.trigger('focus')\n  }\n\n  showCookieMessage () {\n    // Show the cookie banner if policy cookie not set\n    const cookiePreferences = getCookiePreferences()\n  \n    if (this.$module && !cookiePreferences.settings_viewed) {\n      this.$module.css('display', 'block')\n    }\n  }\n  \n  hideCookieMessage (event: JQuery.ClickEvent) {\n    this.$module.css('display', 'none')\n  \n    if (event.target) {\n      event.preventDefault()\n    }\n  }\n\n  showConfirmationMessage (analyticsConsent: boolean) {\n    const messagePrefix = analyticsConsent ? 'You’ve accepted analytics cookies.' : 'You told us not to use analytics cookies.'\n\n    this.$cookieBannerMainContent.attr('hidden', 'hidden')\n\n    this.$cookieBannerConfirmationMessage.prepend(messagePrefix)\n    this.$cookieBannerConfirmationContent.removeAttr('hidden')\n  }\n}\n\nexport { CookieBanner }\n","import { DigitalMarketplaceFrontendComponent } from '../../digitalmarketplace-frontend-component'\nimport { getCookiePreferences, setCookiePreferences } from './manage'\n\nclass CookieSettings implements DigitalMarketplaceFrontendComponent {\n  static moduleName = 'dm-cookie-settings'\n  $moudle: JQuery<HTMLElement>\n  $radioButtonAnalyticsYes: JQuery<HTMLInputElement>\n  $radioButtonAnalyticsNo: JQuery<HTMLInputElement>\n  $confirmationMessage: JQuery<HTMLElement>\n  $previousPageLink: JQuery<HTMLElement>\n  $errorSummary: JQuery<HTMLElement>\n  $formGroup: JQuery<HTMLElement>\n  $warningMessage: JQuery<HTMLElement>\n  $cookieBanner: JQuery<HTMLElement>\n\n  constructor ($module: JQuery<HTMLElement>) {\n    this.$moudle = $module\n    this.$radioButtonAnalyticsYes = this.$moudle.find<HTMLInputElement>('input[name=cookies-analytics][value=On]')\n    this.$radioButtonAnalyticsNo = this.$moudle.find<HTMLInputElement>('input[name=cookies-analytics][value=Off]')\n    this.$confirmationMessage = $('#dm-cookie-settings-confirmation')\n    this.$previousPageLink = $('.dm-cookie-settings__prev-page')\n    this.$errorSummary = $('#dm-cookie-settings-error')\n    this.$formGroup = this.$moudle.find('.govuk-form-group')\n    this.$warningMessage = $('#dm-cookie-settings-warning')\n    this.$cookieBanner = $('.dm-cookie-banner')\n  }\n\n  init () {\n    this.$moudle.on('submit', (event) => {\n      this.submitSettingsForm(event)\n    })\n\n    // Ensure there aren't two forms for setting cookie preferences on the same page\n    this.hideCookieBanner()\n\n    this.setInitialFormValues()\n  }\n\n  setInitialFormValues () {\n    const currentCookiePreferences = getCookiePreferences()\n\n    if (!currentCookiePreferences.settings_viewed) return\n\n    this.hideWarningMessage()\n\n    // Populate the form with the existing choice\n    let $radioButton: JQuery<HTMLInputElement>\n\n    if (currentCookiePreferences.usage) {\n      $radioButton = this.$radioButtonAnalyticsYes\n    } else {\n      $radioButton = this.$radioButtonAnalyticsNo\n    }\n\n    $radioButton.prop('checked', true)\n  }\n\n  submitSettingsForm (event: JQuery.SubmitEvent) {\n    event.preventDefault()\n\n    let usage\n\n    for (const formDataItem of this.$moudle.serializeArray()) {\n      if (formDataItem.name === 'cookies-analytics') {\n        usage = formDataItem.value === 'On'\n\n        break\n      }\n    }\n\n    // the cookie choice must be set when form is submitted\n    if (usage === undefined) {\n      this.showError()\n      return\n    }\n\n    // Set the analytics cookie preferences\n    // If 'Off' option not checked, this function will also delete any existing Google Analytics cookies\n    setCookiePreferences(usage)\n\n    this.hideWarningMessage()\n    this.hideError()\n    this.showConfirmationMessage()\n  }\n\n  showConfirmationMessage () {\n    const referrer = CookieSettings.getReferrerLink()\n\n    document.body.scrollTop = document.documentElement.scrollTop = 0\n\n    if (referrer && referrer !== document.location.pathname) {\n      this.$previousPageLink.attr('href', referrer)\n      this.$previousPageLink.css('display', 'block')\n    } else {\n      this.$previousPageLink.css('display', 'none')\n    }\n\n    this.$confirmationMessage.css('display', 'block')\n  }\n\n  showError () {\n    if (this.$errorSummary.length) {\n      this.$errorSummary.css('display', 'block')\n      document.body.scrollTop = document.documentElement.scrollTop = 0\n    }\n    this.showErrorMessage()\n  }\n\n  showErrorMessage () {\n    this.$formGroup.addClass('govuk-form-group--error')\n\n    const $errorMessageSpan = $(document.createElement('p'))\n    $errorMessageSpan.attr('id', 'dm-cookie-settings-error-message')\n    $errorMessageSpan.addClass('govuk-error-message')\n    $errorMessageSpan.html('<span class=\"govuk-visually-hidden\">Error:</span> Select yes to accept analytics cookies')\n\n    $errorMessageSpan.insertBefore('#cookie-settings-1, .govuk-radios--inline')\n  }\n\n  hideError () {\n    this.$errorSummary.css('display', 'none')\n    this.hideErrorMessage()\n  }\n\n  hideErrorMessage () {\n    const $errorMessage = this.$moudle.find('#dm-cookie-settings-error-message')\n    \n    $errorMessage.css('display', 'none')\n    this.$formGroup.removeClass('govuk-form-group--error')\n  }\n\n  hideWarningMessage () {\n    this.$warningMessage.css('display', 'none')\n  }\n\n  hideCookieBanner () {\n    this.$cookieBanner.css('display', 'none')\n  }\n\n  static getReferrerLink () {\n    return document.referrer ? new URL(document.referrer).pathname : false\n  }\n}\n\nexport { CookieSettings }\n","import { DigitalMarketplaceFrontendComponent } from '../../digitalmarketplace-frontend-component'\n\nclass ListInput implements DigitalMarketplaceFrontendComponent {\n  static moduleName = 'dm-list-input'\n\n  static itemContainerClass = 'dm-list-input__item-container'\n  static hiddenItemClass = 'dm-list-input__item--hidden'\n  static visibleItemClass = 'dm-list-input__item--visible'\n  static itemInputClass = 'dm-list-input__item-input'\n  static itemErrorClass = 'dm-list-input__item--error'\n  static itemErrorMsgClass = 'dm-list-input-error-message'\n  static itemCounterClass = 'dm-list-input__counter'\n  static inputErrorClass = 'govuk-input--error'\n  static removeButtonClass = 'dm-list-input__item-remove'\n  static hiddenRemoveButtonClass = 'dm-list-input__item-remove--hidden'\n  static formGroupErrorClass = 'govuk-form-group--error'\n  static hiddenAddButtonClass = 'dm-list-input__item-add--hidden'\n  static addButtonRemainingClass = 'dm-list-input__js-remaining-counter'\n\n  $module: JQuery<HTMLElement>\n  $allVisibleItems: JQuery<HTMLElement>\n  $addAnotherButton: JQuery<HTMLButtonElement>\n  $allItems: JQuery<HTMLElement>\n\n  constructor ($module: JQuery<HTMLElement>) {\n    this.$module = $module\n    this.$allVisibleItems = this.findVisibleItems()\n    this.$addAnotherButton = this.$module.find<HTMLButtonElement>('.dm-list-input__item-add')\n    this.$allItems = this.$module.find('.dm-list-input__item')\n  }\n\n  init () {\n    this.hideEmptyItems()\n    this.updateAllCounters()\n    this.addRemoveClickEvent()\n    this.toggleAddAnotherButton()\n    this.addAddClickEvent()\n  }\n\n  findVisibleItems () {\n    return this.$module.find('.dm-list-input__item--visible')\n  }\n\n  // Hide all items that do not have a value (except for the first one, or the first two if no items have a value)\n  hideEmptyItems () {\n    let numberOfVisibleEmptyItems = 0\n    let numberOfFilledInItems = 0\n\n    this.$allItems.each((_index, item) => {\n      const $item = $(item)\n      const $input = $item.find('.' + ListInput.itemInputClass)\n      const $removeButton = $item.find('.' + ListInput.removeButtonClass)\n\n      if (!$input.attr('value')) {\n        if (numberOfVisibleEmptyItems === 0) {\n          $removeButton.removeClass(ListInput.hiddenRemoveButtonClass)\n        } else if (numberOfVisibleEmptyItems === 1 && numberOfFilledInItems === 0) {\n          $removeButton.removeClass(ListInput.hiddenRemoveButtonClass)\n        } else {\n          $item.addClass(ListInput.hiddenItemClass)\n          $item.removeClass(ListInput.visibleItemClass)\n          $removeButton.addClass(ListInput.hiddenRemoveButtonClass)\n          $input.attr('disabled', 'true')\n        }\n        numberOfVisibleEmptyItems += 1\n      } else {\n        $item.removeClass(ListInput.hiddenItemClass)\n        $item.addClass(ListInput.visibleItemClass)\n        $removeButton.removeClass(ListInput.hiddenRemoveButtonClass)\n        numberOfFilledInItems += 1\n      }\n    })\n    this.$allVisibleItems = this.findVisibleItems()\n  }\n\n  // Adds an event listener to module to listen for any\n  // click events fired by the items \"Remove\" button\n  addRemoveClickEvent () {\n    this.$allItems.each((_index, item) => {\n      const $item = $(item)\n      const $input = $item.find('.' + ListInput.itemInputClass)\n      const $removeButton = $item.find('.' + ListInput.removeButtonClass)\n\n      $removeButton.on('click', () =>{\n        $input.val('')\n        $input.removeAttr('value')\n        $input.attr('disabled', 'true')\n        $removeButton.addClass(ListInput.hiddenRemoveButtonClass)\n        $item.addClass(ListInput.hiddenItemClass)\n        $item.removeClass(ListInput.visibleItemClass)\n        this.$allVisibleItems = this.findVisibleItems()\n\n        if ($item.hasClass(ListInput.itemErrorClass)) {\n          $item.removeClass(ListInput.itemErrorClass)\n          const $errorFormGroup = $item.find('.' + ListInput.formGroupErrorClass)\n          $errorFormGroup.removeClass(ListInput.formGroupErrorClass)\n          $errorFormGroup.remove('.' + ListInput.itemErrorMsgClass)\n          const $errorInput = $errorFormGroup.find('.' + ListInput.inputErrorClass)\n          const inputId = $errorInput.attr('id') as string\n          const inputDescribedBy = $errorInput.attr('aria-describedby') as string\n          $errorInput.attr('aria-describedby', inputDescribedBy.replace(inputId + '-error', ''))\n          $errorInput.removeClass(ListInput.inputErrorClass)\n        }\n\n        // Hide Remove buttons if there is only one item left\n        if (this.$allVisibleItems.length === 1) {\n          const $removeButtons = this.$module.find('.' + ListInput.removeButtonClass)\n          $removeButtons.each((_index, button) => {\n            $(button).addClass(ListInput.hiddenRemoveButtonClass)\n          })\n          $(this.$allVisibleItems.get(0) as HTMLElement).find('input').trigger('focus')\n        } else {\n          // Set focus to the next input\n          const $nextVisibleItem = ListInput.getSibling('next', $item, '.' + ListInput.visibleItemClass)\n\n          if ($nextVisibleItem) {\n            $nextVisibleItem.find('input').trigger('focus')\n          } else {\n            const $previousVisibleItem = ListInput.getSibling('previous', $item, '.' + ListInput.visibleItemClass) as JQuery<HTMLElement>\n            $previousVisibleItem.find('input').trigger('focus')\n          }\n        }\n\n        this.updateAllCounters()\n        this.toggleAddAnotherButton()\n      })\n    })\n  }\n\n  // Used to update each item's label and remove button hidden text\n  updateCounters () {\n    this.$allVisibleItems.each((index, item) => {\n      $(item).find('.' + ListInput.itemCounterClass).each((_index, counter) => {\n        $(counter).text(index + 1)\n      })\n    })\n  }\n\n  // Used to update \"Add another\" buttons \"Remaining\" counter\n  // and sets focus to the new additional input\n  updateRemainingCounter () {\n    const $visibleItems = this.$allVisibleItems\n    const totalItems = this.$allItems.length\n\n    this.$module.find('.' + ListInput.addButtonRemainingClass).text(totalItems - $visibleItems.length)\n  }\n\n  addAddClickEvent () {\n    this.$addAnotherButton.on('click', () => {\n      const $firstHiddenItem = this.$module.find('.' + ListInput.hiddenItemClass).first()\n      const $firstHiddenInput = $firstHiddenItem.find('.' + ListInput.itemInputClass)\n\n      if ($firstHiddenItem.length) {\n        $firstHiddenInput.removeAttr('disabled')\n        this.$module.find('.' + ListInput.itemContainerClass).append($firstHiddenItem)\n        $firstHiddenItem.removeClass(ListInput.hiddenItemClass)\n        $firstHiddenItem.addClass(ListInput.visibleItemClass)\n        this.$allVisibleItems = this.findVisibleItems()\n        this.updateAllCounters()\n        $firstHiddenItem.find('.' + ListInput.removeButtonClass).removeClass(ListInput.hiddenRemoveButtonClass)\n        $firstHiddenInput.trigger('focus')\n        this.toggleAddAnotherButton()\n\n        // Show Remove buttons if there is more one item\n        if (this.$allVisibleItems.length > 1) {\n          this.$module.find('.' + ListInput.removeButtonClass).each((_index, button) => {\n            $(button).removeClass(ListInput.hiddenRemoveButtonClass)\n          })\n        }\n      }\n    })\n  }\n\n  toggleAddAnotherButton () {\n    const $firstHiddenItem = this.$module.find('.' + ListInput.hiddenItemClass)\n\n    if ($firstHiddenItem.length) {\n      this.$addAnotherButton.removeClass(ListInput.hiddenAddButtonClass)\n    } else {\n      this.$addAnotherButton.addClass(ListInput.hiddenAddButtonClass)\n    }\n  }\n\n  updateAllCounters () {\n    this.updateCounters()\n    this.updateRemainingCounter()\n  }\n\n  static getSibling (direction: string, elem: JQuery<HTMLElement>, selector: string) {\n    // Get the next sibling element\n    let sibling = (direction === 'next') ? elem.next() : elem.prev()\n\n    // If there's no selector, return the first sibling\n    if (!selector) return sibling\n\n    // If the sibling matches our selector, use it\n    // If not, jump to the next sibling and continue the loop\n\n    while (sibling.length) {\n      if (sibling.is(selector)) return sibling\n      sibling = (direction === 'next') ? sibling.next() : sibling.prev()\n    }\n  }\n}\n\nexport { ListInput }\n","import { DigitalMarketplaceFrontendComponent } from '../../digitalmarketplace-frontend-component'\n\nenum QuestionType {\n  CONTROLLER,\n  CONTROLLER_AND_TARGET,\n  TARGET\n}\n\nclass QuestionInput {\n  question: QuestionQuestion\n  $input: JQuery<HTMLInputElement>\n  targets: string[]\n\n  constructor (question: QuestionQuestion, $input: JQuery<HTMLInputElement>) {\n    this.question = question\n    this.$input = $input\n\n    const targets = this.$input.attr('data-target')\n    this.targets = targets ? targets.split(' ') : []\n  }\n\n  setEventListener () {\n    this.$input.on('click', () => {\n      this.question.updateTargetQuestionsVisibility()\n    })\n  }\n\n  isChecked () {\n    return this.$input.is(':checked')\n  }\n}\n\nclass QuestionQuestion {\n  questionWatcher: Question\n  $question: JQuery<HTMLElement>\n  id: string\n  questionType: QuestionType\n  questionInputs?: QuestionInput[]\n  possibleTargetIds?: Set<string>\n  targetOf?: string[]\n\n  constructor (questionWatcher: Question, $question: JQuery<HTMLElement>, questionType: QuestionType) {\n    this.questionWatcher = questionWatcher\n    this.$question = $question\n    this.id = this.$question.attr('id') as string\n    this.questionType = questionType\n\n    if (this.questionType === QuestionType.CONTROLLER) {\n      this.enableControllerQuestionMethods()\n    } else {\n      this.enableTargetQuestionMethods()\n    }\n  }\n\n  enableControllerQuestionMethods () {\n    this.questionInputs = this.$question.find('input').get().map((inputElement) => new QuestionInput(this, $(inputElement)))\n\n    this.possibleTargetIds = new Set(this.questionInputs.map((questionInput) => questionInput.targets).flat())\n  }\n\n  enableTargetQuestionMethods () {\n    this.targetOf = []\n  }\n\n  isVisible () {\n    return !this.$question.hasClass('govuk-visually-hidden')\n  }\n\n  currentTargetIds () {\n    let targets: string[]\n\n    if (this.isVisible() && this.questionInputs) {\n      targets = this.questionInputs.filter((questionInput) => questionInput.isChecked()).map((questionInput) => questionInput.targets).flat()\n    } else {\n      targets = []\n    }\n\n    return new Set(targets)\n  }\n\n  updateTargetQuestionsVisibility () {\n    this.questionWatcher.updateTargetQuestionsVisibility(this.possibleTargetIds)\n  }\n\n  appendTargetOf (questionId: string) {\n    if (this.targetOf !== undefined) {\n      this.targetOf.push(questionId)\n    }\n  }\n\n  toggleVisibility (isShown: boolean) {\n    this.$question.toggleClass('govuk-visually-hidden', !isShown)\n    this.$question.attr('aria-hidden', (!isShown).toString())\n    if (isShown) {\n      this.$question.removeAttr('hidden')\n    } else {\n      this.$question.attr('hidden', '')\n    }\n  }\n}\n\nclass Question implements DigitalMarketplaceFrontendComponent {\n  static moduleName = 'dm-question'\n  questions: Record<string, QuestionQuestion>\n\n  constructor () {\n    this.questions = {}\n\n    $(`[data-module=\"${Question.moduleName}\"]`).each((_index, question) => {\n      this.push(new QuestionQuestion(this, $(question), QuestionType.CONTROLLER))\n    })\n\n    for (const [questionId, question] of Object.entries(this.questions)) {\n      for (const questionTargetId of question.possibleTargetIds || []) {\n        if (questionTargetId in this.questions) {\n          if (this.questions[questionTargetId].questionType === QuestionType.CONTROLLER) {\n            this.questions[questionTargetId].questionType = QuestionType.CONTROLLER_AND_TARGET\n            this.questions[questionTargetId].enableTargetQuestionMethods()\n          }\n        } else {\n          this.push(new QuestionQuestion(this, $(`#${questionTargetId}`), QuestionType.TARGET))\n        }\n\n        this.questions[questionTargetId].appendTargetOf(questionId)\n      }\n    }\n  }\n\n  init () {\n    for (const question of Object.values(this.questions)) {\n      if (question.questionType < QuestionType.TARGET) {\n        for (const questionInput of question.questionInputs || []) {\n          questionInput.setEventListener()\n        }\n        if (question.questionType === QuestionType.CONTROLLER) {\n          this.updateTargetQuestionsVisibility(question.possibleTargetIds)\n        }\n      }\n    }\n  }\n\n  push (question: QuestionQuestion) {\n    this.questions[question.id] = question\n  }\n\n  updateTargetQuestionsVisibility (possibleTargetIds?: Set<string>, isShown?: boolean) {\n    for (const possibleTargetId of possibleTargetIds || []) {\n      const targetQuestion = this.questions[possibleTargetId]\n      let questionIsShown\n\n      if (isShown === undefined) {\n        const controllerQuestions = targetQuestion.targetOf?.map((questionId) => this.questions[questionId])\n\n        const targetsToShow = new Set(controllerQuestions?.map((controllerQuestion) => Array.from(controllerQuestion.currentTargetIds())).flat())\n\n        questionIsShown = targetsToShow.has(possibleTargetId)\n      } else {\n        questionIsShown = isShown\n      }\n\n      targetQuestion.toggleVisibility(questionIsShown)\n\n      if (targetQuestion.questionType === QuestionType.CONTROLLER_AND_TARGET) {\n        if (questionIsShown) {\n          this.updateTargetQuestionsVisibility(targetQuestion.possibleTargetIds)\n        } else {\n          this.updateTargetQuestionsVisibility(targetQuestion.possibleTargetIds, false)\n        }\n      }\n    }\n  }\n}\n\nexport { Question }\n","import { DigitalMarketplaceFrontendComponent } from '../../digitalmarketplace-frontend-component'\n\nclass QuestionCheckboxTreeSummary {\n  $totalSelected: JQuery<HTMLElement>\n  $totalSelectedText: JQuery<HTMLElement>\n  itemNameSingular: string\n  itemNamePlural: string\n\n  constructor ($summary: JQuery<HTMLElement>, itemNameSingular: string, itemNamePlural: string) {\n    this.$totalSelected = $summary.find('.dm-checkbox-tree__summary-total-selected')\n    this.$totalSelectedText = $summary.find('.dm-checkbox-tree__summary-total-selected-text')\n    this.itemNameSingular = itemNameSingular\n    this.itemNamePlural = itemNamePlural\n  }\n\n  updateSelectedCount (numberSelected: number) {\n    this.$totalSelected.text(numberSelected)\n\n    if (numberSelected === 1) {\n      this.$totalSelectedText.text(`${this.itemNameSingular} selected.`)\n    } else {\n      this.$totalSelectedText.text(`${this.itemNamePlural} selected.`)\n    }\n  }\n}\n\nclass QuestionCheckboxTreeSection {\n  checkboxTree: QuestionCheckboxTree\n  $section: JQuery<HTMLElement>\n  $accordionButton: JQuery<HTMLButtonElement>\n  checkboxes: JQuery<HTMLInputElement>[]\n  $summary: JQuery<HTMLElement>\n\n  constructor (checkboxTree: QuestionCheckboxTree, $section: JQuery<HTMLElement>) {\n    this.checkboxTree = checkboxTree\n    this.$section = $section\n    this.$accordionButton = this.$section.find<HTMLButtonElement>('button.govuk-accordion__section-button')\n    this.checkboxes = this.$section.find<HTMLInputElement>('.govuk-checkboxes__input').get().map((element) => $(element))\n    this.$summary = this.$section.find('.dm-checkbox-tree__options-number-selected')\n  }\n\n  init () {\n    this.openSectionIfSelected()\n\n    this.checkboxes.forEach(($checkbox) => {\n      $checkbox.on('click', () => {\n        this.checkboxTree.updateTotals($checkbox.val(), $checkbox.is(':checked'))\n      })\n    })\n  }\n\n  private selectedItems () {\n    return this.checkboxes.filter(($checkbox) => $checkbox.is(':checked'))\n  }\n\n  private countSelected () {\n    return this.selectedItems().length\n  }\n\n  private openSectionIfSelected () {\n    if (this.$accordionButton.length && this.countSelected() > 0 && this.$accordionButton.attr('aria-expanded') === 'false') {\n      this.$accordionButton.trigger('click')\n    }\n  }\n\n  slectedItemValues () {\n    return this.selectedItems().map(($checkbox) => $checkbox.val())\n  }\n\n  updateSelectedCount () {\n    if (this.$summary.length) {\n      const numberSelected = this.countSelected()\n\n      if (numberSelected > 0) {\n        this.$summary.text(`, ${numberSelected} selected`)\n      } else {\n        this.$summary.text('')\n      }\n    }\n  }\n\n  toggleCheckbox (value: string | undefined, isChecked: boolean) {\n    this.checkboxes.forEach(($checkbox) => {\n      if ($checkbox.val() === value) {\n        $checkbox.prop('checked', isChecked)\n      }\n    })\n  }\n}\n\nclass QuestionCheckboxTree implements DigitalMarketplaceFrontendComponent {\n  static moduleName = 'dm-question-checkbox-tree'\n  $checkboxTree: JQuery<HTMLElement>\n  checkboxTreeSummary: QuestionCheckboxTreeSummary\n  checkboxTreeSections: QuestionCheckboxTreeSection[]\n\n  constructor ($checkboxTree: JQuery<HTMLElement>) {\n    this.$checkboxTree = $checkboxTree\n    this.checkboxTreeSummary = new QuestionCheckboxTreeSummary(this.$checkboxTree.find('.dm-checkbox-tree__summary'), this.$checkboxTree.data('itemNameSingular'), this.$checkboxTree.data('itemNamePlural'))\n\n    const checkboxTreeSections = this.$checkboxTree.find('.govuk-accordion__section').get().map((element) => new QuestionCheckboxTreeSection(this, $(element)))\n\n    if (checkboxTreeSections.length) {\n      this.checkboxTreeSections = checkboxTreeSections\n    } else {\n      this.checkboxTreeSections = [new QuestionCheckboxTreeSection(this, $('.dm-checkbox-tree__options'))]\n    }\n  }\n\n  init () {\n    this.checkboxTreeSections.forEach((checkboxTreeSection) => checkboxTreeSection.init())\n\n    this.updateCheckboxTreeSummaryCount()\n    this.updateCheckboxTreeSectionSelectedCounts()\n  }\n\n  private countSelected () {\n    return new Set(this.checkboxTreeSections.map((checkboxTreeSection) => checkboxTreeSection.slectedItemValues()).flat()).size\n  }\n\n  private updateCheckboxTreeSummaryCount () {\n    this.checkboxTreeSummary.updateSelectedCount(this.countSelected())\n  }\n\n  private updateCheckboxTreeSectionSelectedCounts () {\n    this.checkboxTreeSections.forEach((checkboxTreeSection) => checkboxTreeSection.updateSelectedCount())\n  }\n\n  updateTotals (value: string | undefined, isChecked: boolean) {\n    this.checkboxTreeSections.forEach((checkboxTreeSection) => checkboxTreeSection.toggleCheckbox(value, isChecked))\n\n    this.updateCheckboxTreeSummaryCount()\n    this.updateCheckboxTreeSectionSelectedCounts()\n  }\n}\n\nexport { QuestionCheckboxTree }\n","import { DigitalMarketplaceFrontendComponent } from '../../digitalmarketplace-frontend-component'\n\nclass QuestionListRowInput {\n  $input: JQuery<HTMLInputElement>\n  $label: JQuery<HTMLLabelElement>\n  $labelCounter: JQuery<HTMLElement>\n  $prefixText: JQuery<HTMLElement>\n\n  constructor ($row: JQuery<HTMLElement>) {\n    this.$input = $row.find<HTMLInputElement>('.dm-list__item-input')\n    this.$label = $row.find<HTMLLabelElement>('.govuk-label')\n    this.$labelCounter = this.$label.find('.dm-list__item-label-counter')\n    this.$prefixText = $row.find('.govuk-input__prefix')\n  }\n\n  getValue () {\n    return this.$input.val()\n  }\n\n  clearValue () {\n    this.$input.val('')\n    this.$input.attr('value', '')\n  }\n\n  updateIndex (newIndex: number) {\n    const newId = `input-${this.$input.attr('name')}-${newIndex}`\n\n    this.$label.attr('for', newId)\n    this.$labelCounter.text(newIndex + 1)\n\n    this.$prefixText.text(`${newIndex + 1}.`)\n\n    this.$input.attr('id', newId)\n  }\n}\n\nclass QuestionListRowRemoveButton {\n  answerListRow: QuestionListRow\n  $button: JQuery<HTMLButtonElement>\n  $removeButtonCounter: JQuery<HTMLElement>\n\n  constructor (answerListRow: QuestionListRow, $row: JQuery<HTMLElement>) {\n    this.answerListRow = answerListRow\n    this.$button = $row.find<HTMLButtonElement>('.dm-list__item-remove')\n    this.$removeButtonCounter = this.$button.find('.dm-list__item-remove-counter')\n  }\n\n  init () {\n    this.toggleVisibility(true)\n\n    this.$button.on('click', () => {\n      this.answerListRow.removeRow()\n    })\n  }\n\n  toggleVisibility (isShown: boolean) {\n    this.$button.toggleClass('govuk-visually-hidden', !isShown)\n  }\n\n  updateIndex (newIndex: number) {\n    this.$removeButtonCounter.text(newIndex + 1)\n  }\n}\n\nclass QuestionListRow {\n  answerList: QuestionList\n  index: number\n  $row: JQuery<HTMLElement>\n  answerListRowInput: QuestionListRowInput\n  answerListRowRemoveButton: QuestionListRowRemoveButton\n\n  constructor (answerList: QuestionList, index: number, $row: JQuery<HTMLElement>) {\n    this.answerList = answerList\n    this.index = index\n    this.$row = $row\n    this.answerListRowInput = new QuestionListRowInput($row)\n    this.answerListRowRemoveButton = new QuestionListRowRemoveButton(this, $row)\n  }\n\n  init () {\n    this.answerListRowRemoveButton.init()\n  }\n\n  updateIndex (newIndex: number) {\n    this.index = newIndex\n    this.answerListRowInput.updateIndex(newIndex)\n    this.answerListRowRemoveButton.updateIndex(newIndex)\n  }\n\n  removeRow () {\n    this.answerList.removeRow(this.index)\n    this.deleteRow()\n  }\n\n  deleteRow () {\n    this.$row.remove()\n  }\n\n  toggleRemoveButtonVisibility (isShown: boolean) {\n    this.answerListRowRemoveButton.toggleVisibility(isShown)\n  }\n\n  inputValue () {\n    return this.answerListRowInput.getValue()\n  }\n}\n\nclass QuestionListAddButton {\n  answerList: QuestionList\n  $button: JQuery<HTMLButtonElement>\n  $buttonCounter: JQuery<HTMLElement>\n\n  constructor (answerList: QuestionList, $button: JQuery<HTMLButtonElement>) {\n    this.answerList = answerList\n    this.$button = $button\n    this.$buttonCounter = $button.find('.dm-list__item-add-counter')\n  }\n\n  init (numberOfRows: number) {\n    this.$button.on('click', () => {\n      this.answerList.addRow()\n    })\n\n    this.updateButtonText(this.answerList.maxNumberOfItems - numberOfRows)\n  }\n\n  updateButtonText (numberRemaining: number) {\n    this.$buttonCounter.text(numberRemaining)\n  }\n\n  toggleVisibility (isShown: boolean) {\n    this.$button.toggleClass('govuk-visually-hidden', !isShown)\n  }\n}\n\nclass QuestionList implements DigitalMarketplaceFrontendComponent {\n  static moduleName = 'dm-question-list'\n  $answerList: JQuery<HTMLElement>\n  $answerListItems: JQuery<HTMLElement>\n  answerListRows: QuestionListRow[]\n  answerListAddButton: QuestionListAddButton\n  maxNumberOfItems: number\n  numberOfItemsShownAsDefault: number\n\n  constructor ($answerList: JQuery<HTMLElement>) {\n    this.$answerList = $answerList\n    this.maxNumberOfItems = this.$answerList.data('maxNumberOfItems')\n    this.numberOfItemsShownAsDefault = this.$answerList.data('numberOfItemsShownAsDefault')\n    this.$answerListItems = this.$answerList.find('.dm-list__items')\n    this.answerListRows = this.$answerList.find('.dm-list__item').get().map((row, index) => new QuestionListRow(this, index, $(row)))\n    this.answerListAddButton = new QuestionListAddButton(this, this.$answerList.find<HTMLButtonElement>('.dm-list__item-add'))\n  }\n\n  init () {\n    const rowValues = this.answerListRows.map((answerListRow) => answerListRow.inputValue())\n    let indexToDeleteFrom = 1\n\n    if (rowValues.every((rowValue) => !rowValue)) {\n      indexToDeleteFrom = this.numberOfItemsShownAsDefault\n    } else {\n      rowValues.forEach((rowValue, index) => {\n        if (rowValue) {\n          indexToDeleteFrom = index + 1\n        }\n      })\n    }\n\n    if (indexToDeleteFrom >= 0) {\n      this.answerListRows.slice(indexToDeleteFrom).forEach((answerListRow) => answerListRow.deleteRow())\n      this.answerListRows.splice(indexToDeleteFrom)\n    }\n\n    this.answerListAddButton.init(this.answerListRows.length)\n    this.answerListRows.forEach((answerListRow) => answerListRow.init())\n\n    this.updateIfMinRows()\n    this.updateAnswerButton()\n  }\n\n  removeRow (indexToRemove: number) {\n    this.answerListRows.splice(indexToRemove, 1)\n\n    this.answerListRows.slice(indexToRemove).forEach((answerListRow, index) => {\n      answerListRow.updateIndex(indexToRemove + index)\n    })\n\n    this.updateIfMinRows()\n    this.updateAnswerButton()\n    this.focusOnRow(indexToRemove)\n  }\n\n  addRow () {\n    const numberOfRows = this.answerListRows.length\n\n    if (numberOfRows < this.maxNumberOfItems) {\n      const $newRow = this.answerListRows[0].$row.clone()\n      const answerListRow = new QuestionListRow(this, numberOfRows, $newRow)\n\n      answerListRow.updateIndex(numberOfRows)\n      answerListRow.answerListRowInput.clearValue()\n\n      this.answerListRows.push(answerListRow)\n      this.$answerListItems.append($newRow)\n      this.answerListRows[numberOfRows].init()\n\n      this.updateIfMinRows()\n      this.updateAnswerButton()\n      this.focusOnRow(numberOfRows)\n    }\n  }\n\n  updateIfMinRows () {\n    if (this.answerListRows.length === 1) {\n      this.answerListRows[0].toggleRemoveButtonVisibility(false)\n    } else {\n      this.answerListRows[0].toggleRemoveButtonVisibility(true)\n    }\n  }\n\n  updateAnswerButton () {\n    if (this.answerListRows.length === this.maxNumberOfItems) {\n      this.answerListAddButton.toggleVisibility(false)\n    } else {\n      this.answerListAddButton.toggleVisibility(true)\n      this.answerListAddButton.updateButtonText(this.maxNumberOfItems - this.answerListRows.length)\n    }\n  }\n\n  focusOnRow (targetIndexToFocus: number) {\n    const numberOfRows = this.answerListRows.length\n    let indexToFocus = targetIndexToFocus\n\n    if (targetIndexToFocus >= numberOfRows) {\n      indexToFocus = numberOfRows - 1\n    }\n\n    this.answerListRows[indexToFocus].answerListRowInput.$input.focus()\n  }\n}\n\nexport { QuestionList }\n","import { DigitalMarketplaceFrontendComponent } from '../../digitalmarketplace-frontend-component'\n\nclass QuestionListMultiquestionQuestionInput {\n  $input: JQuery<HTMLInputElement>\n\n  constructor ($question: JQuery<HTMLElement>) {\n    this.$input = $question.find<HTMLInputElement>('input')\n  }\n\n  getValue () {\n    return this.$input.val()\n  }\n\n  toggleVisibility (isShown: boolean) {\n    if (isShown) {\n      this.$input.removeAttr('tabindex')\n    } else {\n      this.$input.val('')\n      this.$input.attr('value', '')\n      this.$input.attr('tabindex', -1)\n    }\n  }\n}\n\nclass QuestionListMultiquestionRow {\n  answerList: QuestionListMultiquestionClientSide\n  $row: JQuery<HTMLElement>\n  answerListRowInputs: QuestionListMultiquestionQuestionInput[]\n\n  constructor (answerList: QuestionListMultiquestionClientSide, $row: JQuery<HTMLElement>) {\n    this.answerList = answerList\n    this.$row = $row\n    this.answerListRowInputs = $row.find('.question').get().map((question) => new QuestionListMultiquestionQuestionInput($(question)))\n  }\n\n  toggleVisibility (isShown: boolean) {\n    this.$row.toggleClass('govuk-visually-hidden', !isShown)\n    this.answerListRowInputs.forEach((answerListRowInput) => answerListRowInput.toggleVisibility(isShown))\n  }\n\n  isRowVisible () {\n    return !this.$row.hasClass('govuk-visually-hidden')\n  }\n\n  rowHasValues () {\n    return this.answerListRowInputs.some((answerListRowInput) => !!answerListRowInput.getValue())\n  }\n}\n\nclass QuestionListMultiquestionButton {\n  answerList: QuestionListMultiquestionClientSide\n  $button: JQuery<HTMLButtonElement>\n  $buttonCounter: JQuery<HTMLElement>\n\n  constructor (answerList: QuestionListMultiquestionClientSide, $button: JQuery<HTMLButtonElement>, buttonType: 'add' | 'remove') {\n    this.answerList = answerList\n    this.$button = $button\n    this.$buttonCounter = $button.find(`.dm-list-multiquestion__item-${buttonType}-counter`)\n  }\n\n  updateButtonText (numberOfRows: number) {\n    this.$buttonCounter.text(numberOfRows)\n  }\n\n  toggleVisibility (isShown: boolean) {\n    this.$button.toggleClass('govuk-visually-hidden', !isShown)\n\n    if (isShown) {\n      this.$button.removeAttr('tabindex')\n    } else {\n      this.$button.attr('tabindex', -1)\n    }\n  }\n}\n\nclass QuestionListMultiquestionRemoveButton extends QuestionListMultiquestionButton {\n  constructor (answerList: QuestionListMultiquestionClientSide, $button: JQuery<HTMLButtonElement>) {\n    super(answerList, $button, 'remove')\n  }\n\n  init (numberOfRows: number) {\n    this.$button.on('click', () => {\n      this.answerList.hideRow()\n    })\n\n    this.updateButtonText(numberOfRows)\n  }\n}\n\nclass QuestionListMultiquestionAddButton extends QuestionListMultiquestionButton {\n  maxNumberOfItems: number\n\n  constructor (answerList: QuestionListMultiquestionClientSide, $button: JQuery<HTMLButtonElement>, maxNumberOfItems: number) {\n    super(answerList, $button, 'add')\n    this.maxNumberOfItems = maxNumberOfItems\n  }\n\n  init (numberOfRows: number) {\n    this.$button.on('click', () => {\n      this.answerList.addRow()\n    })\n\n    this.updateButtonText(this.maxNumberOfItems - numberOfRows)\n  }\n}\n\nclass QuestionListMultiquestionClientSide implements DigitalMarketplaceFrontendComponent {\n  static moduleName = 'dm-question-list-multiquestion-client-side'\n  $answerList: JQuery<HTMLElement>\n  maxNumberOfItems: number\n  answerListRows: QuestionListMultiquestionRow[]\n  answerListAddButton: QuestionListMultiquestionAddButton\n  answerListRemoveButton: QuestionListMultiquestionRemoveButton\n\n  constructor ($answerList: JQuery<HTMLElement>) {\n    this.$answerList = $answerList\n    this.maxNumberOfItems = this.$answerList.data('maxNumberOfItems')\n    this.answerListRows = this.$answerList.find('.dm-list-multiquestion__item').get().map((row) => new QuestionListMultiquestionRow(this, $(row)))\n    this.answerListAddButton = new QuestionListMultiquestionAddButton(this, this.$answerList.find<HTMLButtonElement>('.dm-list-multiquestion__item-add'), this.maxNumberOfItems)\n    this.answerListRemoveButton = new QuestionListMultiquestionRemoveButton(this, this.$answerList.find<HTMLButtonElement>('.dm-list-multiquestion__item-remove'))\n  }\n\n  init () {\n    const rowsVisible = this.answerListRows.map((answerListRow) => answerListRow.rowHasValues())\n    let indexToHideFrom = -1\n\n    if (rowsVisible.every((rowVisible) => !rowVisible)) {\n      indexToHideFrom = 1\n    } else {\n      let previousRowVisible = true\n\n      rowsVisible.forEach((rowVisible, index) => {\n        if (previousRowVisible && !rowVisible) {\n          indexToHideFrom = index\n        }\n        previousRowVisible = rowVisible\n      })\n    }\n\n    if (indexToHideFrom >= 0) {\n      this.answerListRows.slice(indexToHideFrom).forEach((answerListRow) => answerListRow.toggleVisibility(false))\n    }\n\n    const numberOfRows = this.visibleRowsCount()\n\n    this.answerListAddButton.init(numberOfRows)\n    this.answerListRemoveButton.init(numberOfRows)\n\n    this.updateRemoveButton(numberOfRows)\n    this.updateAnswerButton(numberOfRows)\n  }\n\n  hideRow () {\n    const numberOfRows = this.visibleRowsCount()\n\n    if (numberOfRows > 1) {\n      this.answerListRows[numberOfRows - 1].toggleVisibility(false)\n  \n      this.updateRemoveButton(numberOfRows - 1)\n      this.updateAnswerButton(numberOfRows - 1)\n      this.focusOnRow(numberOfRows - 1)\n    }\n  }\n\n  addRow () {\n    const numberOfRows = this.visibleRowsCount()\n\n    if (numberOfRows < this.maxNumberOfItems) {\n      this.answerListRows[numberOfRows].toggleVisibility(true)\n\n      this.updateRemoveButton(numberOfRows + 1)\n      this.updateAnswerButton(numberOfRows + 1)\n      this.focusOnRow(numberOfRows + 1)\n    }\n  }\n\n  visibleRowsCount () {\n    return this.answerListRows.reduce((count, answerListRow) => count += answerListRow.isRowVisible() ? 1 : 0, 0)\n  }\n\n  updateRemoveButton (numberOfRows: number) {\n    if (numberOfRows === 1) {\n      this.answerListRemoveButton.toggleVisibility(false)\n    } else {\n      this.answerListRemoveButton.toggleVisibility(true)\n      this.answerListRemoveButton.updateButtonText(numberOfRows)\n    }\n  }\n\n  updateAnswerButton (numberOfRows: number) {\n    if (numberOfRows === this.maxNumberOfItems) {\n      this.answerListAddButton.toggleVisibility(false)\n    } else {\n      this.answerListAddButton.toggleVisibility(true)\n      this.answerListAddButton.updateButtonText(this.maxNumberOfItems - numberOfRows)\n    }\n  }\n\n  focusOnRow (numberOfRows: number) {\n    this.answerListRows[numberOfRows - 1].answerListRowInputs[0].$input.focus()\n  }\n}\n\nexport { QuestionListMultiquestionClientSide }\n","import { DigitalMarketplaceFrontendComponent } from '../../digitalmarketplace-frontend-component'\n\nclass OptionSelect implements DigitalMarketplaceFrontendComponent {\n  static moduleName = 'dm-option-select'\n\n  $optionSelect: JQuery<HTMLElement>\n  $options: JQuery<HTMLInputElement>\n  $optionsContainer: JQuery<HTMLElement>\n  $optionList: JQuery<HTMLElement>\n  $allCheckboxes: JQuery<HTMLElement>\n  checkedCheckboxes: HTMLElement[]\n\n  constructor ($module: JQuery<HTMLElement>) {\n    this.$optionSelect = $module\n    this.$options = this.$optionSelect.find<HTMLInputElement>('input[type=\"checkbox\"]')\n    this.$optionsContainer = this.$optionSelect.find('.js-options-container')\n    this.$optionList = this.$optionsContainer.find('.js-auto-height-inner')\n    this.$allCheckboxes = this.$optionsContainer.find('.govuk-checkboxes__item')\n    this.checkedCheckboxes = []\n  }\n\n  init () {\n    // Attach listener to update checked count\n    this.$optionSelect.on('change', (event) => {\n      const changedEl = event.target\n\n      if (changedEl.tagName === 'INPUT' && changedEl.getAttribute('type') === 'checkbox') {\n        this.updateCheckedCount()\n      }\n    })\n\n    // Replace div.container-head with a button\n    this.replaceHeadingSpanWithButton()\n\n    // Add js-collapsible class to parent for CSS\n    this.$optionSelect.addClass('js-collapsible')\n\n    // Add open/close listeners\n    this.$optionSelect.find('.js-container-button').on('click', (event) => {\n      this.toggleOptionSelect(event)\n    })\n\n    if (this.$optionSelect.data().closedOnLoad) {\n      this.close()\n    } else {\n      this.setupHeight()\n    }\n\n    const checkedString = this.checkedString()\n\n    if (checkedString) {\n      this.attachCheckedCounter(checkedString)\n    }\n  }\n\n  getAllCheckedCheckboxes () {\n    this.checkedCheckboxes = []\n\n    this.$allCheckboxes.each((_index, checkbox) => {\n      if ($(checkbox).find('input[type=checkbox]').is(':checked')) {\n        this.checkedCheckboxes.push(checkbox)\n      }\n    })\n  }\n\n  replaceHeadingSpanWithButton () {\n    /* Replace the span within the heading with a button element. This is based on feedback from Léonie Watson.\n      * The button has all of the accessibility hooks that are used by screen readers and etc.\n      * We do this in the JavaScript because if the JavaScript is not active then the button shouldn't\n      * be there as there is no JS to handle the click event.\n    */\n    const $containerHead = this.$optionSelect.find('.js-container-button')\n    const jsContainerHeadHTML = $containerHead.html()\n\n    // Create button and replace the preexisting html with the button.\n    const $button = document.createElement('button')\n    $button.classList.add('js-container-button', 'dm-option-select__title', 'dm-option-select__button')\n    // Add type button to override default type submit when this component is used within a form\n    $button.setAttribute('type', 'button')\n    $button.setAttribute('aria-expanded', 'true')\n    $button.setAttribute('id', $containerHead.attr('id') as string)\n    $button.setAttribute('aria-controls', this.$optionsContainer.attr('id') as string)\n    $button.innerHTML = jsContainerHeadHTML\n    $containerHead.after($button.outerHTML)\n    $containerHead.remove()\n  }\n\n  attachCheckedCounter (checkedString: string) {\n    this.$optionSelect.find('.js-container-button').after(`<div class=\"dm-option-select__selected-counter js-selected-counter\">${checkedString}</div>`)\n  }\n\n  updateCheckedCount () {\n    const checkedString = this.checkedString()\n    const $checkedStringElement = this.$optionSelect.find('.js-selected-counter')\n\n    if (checkedString) {\n      if ($checkedStringElement.length) {\n        $checkedStringElement.text(checkedString)\n      } else {\n        this.attachCheckedCounter(checkedString)\n      }\n    } else {\n      $checkedStringElement.remove()\n    }\n  }\n\n  checkedString () {\n    this.getAllCheckedCheckboxes()\n    const count = this.checkedCheckboxes.length\n\n    let checkedString = ''\n\n    if (count > 0) {\n      checkedString = count + ' selected'\n    }\n\n    return checkedString\n  }\n\n  toggleOptionSelect (event: JQuery.ClickEvent) {\n    if (this.isClosed()) {\n      this.open()\n    } else {\n      this.close()\n    }\n    event.preventDefault()\n  }\n\n  open () {\n    if (this.isClosed()) {\n      this.$optionSelect.find('.js-container-button').attr('aria-expanded', 'true')\n      this.$optionSelect.removeClass('js-closed')\n      this.$optionSelect.addClass('js-opened')\n      if (!this.$optionsContainer.css('height')) {\n        this.setupHeight()\n      }\n    }\n  }\n\n  close () {\n    this.$optionSelect.removeClass('js-opened')\n    this.$optionSelect.addClass('js-closed')\n    this.$optionSelect.find('.js-container-button').attr('aria-expanded', 'false')\n  }\n\n  isClosed () {\n    return this.$optionSelect.hasClass('js-closed')\n  }\n\n  setContainerHeight (height: number) {\n    this.$optionsContainer.css('height', height + 'px')\n  }\n\n  isCheckboxVisible ($checkbox: JQuery<HTMLInputElement>) {\n    const initialOptionContainerHeight = this.$optionsContainer.get(0)?.clientHeight as number\n    const optionListOffsetTop = (this.$optionList.get(0) as HTMLElement).getBoundingClientRect().top + document.body.scrollTop\n    const distanceFromTopOfContainer = (($checkbox.get(0) as HTMLElement).getBoundingClientRect().top + document.body.scrollTop) - optionListOffsetTop\n    return distanceFromTopOfContainer < initialOptionContainerHeight\n  }\n\n  getVisibleCheckboxes () {\n    const visibleCheckboxes = this.$options.get().filter((checkbox) => this.isCheckboxVisible($(checkbox)))\n\n    // add an extra checkbox, if the label of the first is too long it collapses onto itself\n    if (visibleCheckboxes.length < this.$options.length) {\n      visibleCheckboxes.push(this.$options.get(visibleCheckboxes.length) as HTMLInputElement)\n    }\n\n    return visibleCheckboxes\n  }\n\n  setupHeight () {\n    const optionsContainer = this.$optionsContainer.get(0) as HTMLElement\n    const optionList = this.$optionList.get(0) as HTMLElement\n\n    let initialOptionContainerHeight = optionsContainer.clientHeight\n    let height = optionList.offsetHeight\n\n    // check whether this is hidden by progressive disclosure,\n    // because height calculations won't work\n    if (optionsContainer.offsetParent === null) {\n      initialOptionContainerHeight = 200\n      height = 200\n    }\n\n    // Resize if the list is only slightly bigger than its container\n    if (height < initialOptionContainerHeight + 50) {\n      this.setContainerHeight(height + 1)\n      return\n    }\n\n    // Resize to cut last item cleanly in half\n    const visibleCheckboxes = this.getVisibleCheckboxes()\n    const lastVisibleCheckbox = visibleCheckboxes[visibleCheckboxes.length - 1] as HTMLInputElement\n    const position = (lastVisibleCheckbox?.parentNode as HTMLElement).offsetTop // parent element is relative\n    this.setContainerHeight(position + (parseFloat(window.getComputedStyle(lastVisibleCheckbox, null).height.replace('px', '')) / 1.5))\n  }\n}\n\nexport { OptionSelect }\n","import { DigitalMarketplaceFrontendComponent } from '../../digitalmarketplace-frontend-component'\n\nclass SearchBox implements DigitalMarketplaceFrontendComponent {\n  static moduleName = 'dm-search-box'\n\n  $module: JQuery<HTMLElement>\n  $toggleTarget: JQuery<HTMLElement>\n\n  constructor ($module: JQuery<HTMLElement>) {\n    this.$module = $module\n    this.$toggleTarget = this.$module.find('.js-class-toggle')\n  }\n\n  init () {\n    if (!this.inputIsEmpty()) {\n      this.addFocusClass()\n    }\n  \n    this.$toggleTarget.on('focus', this.addFocusClass.bind(this))\n    this.$toggleTarget.on('blur', this.removeFocusClassFromEmptyInput.bind(this))\n  }\n\n  inputIsEmpty () {\n    return this.$toggleTarget.val() === ''\n  }\n\n  addFocusClass () {\n    this.$toggleTarget.addClass('focus')\n  }\n\n  removeFocusClassFromEmptyInput () {\n    if (this.inputIsEmpty()) {\n      this.$toggleTarget.removeClass('focus')\n    }\n  }\n}\n\nexport { SearchBox }\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.accessibleAutocomplete=e():t.accessibleAutocomplete=e()}(self,(function(){return function(){\"use strict\";var t={8952:function(t,e,n){var r=n(4328),o=n(36),i=TypeError;t.exports=function(t){if(r(t))return t;throw new i(o(t)+\" is not a function\")}},2096:function(t,e,n){var r=n(2424),o=String,i=TypeError;t.exports=function(t){if(r(t))return t;throw new i(\"Can't set \"+o(t)+\" as a prototype\")}},4764:function(t,e,n){var r=n(9764).charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},6100:function(t,e,n){var r=n(7e3),o=TypeError;t.exports=function(t,e){if(r(e,t))return t;throw new o(\"Incorrect invocation\")}},3951:function(t,e,n){var r=n(1632),o=String,i=TypeError;t.exports=function(t){if(r(t))return t;throw new i(o(t)+\" is not an object\")}},2504:function(t,e,n){var r=n(4096),o=n(2495),i=n(3556),u=function(t){return function(e,n,u){var a=r(e),c=i(a);if(0===c)return!t&&-1;var s,l=o(u,c);if(t&&n!=n){for(;c>l;)if((s=a[l++])!=s)return!0}else for(;c>l;l++)if((t||l in a)&&a[l]===n)return t||l||0;return!t&&-1}};t.exports={includes:u(!0),indexOf:u(!1)}},3364:function(t,e,n){var r=n(8992),o=n(1664),i=n(5712),u=n(4356),a=n(3556),c=n(2568),s=o([].push),l=function(t){var e=1===t,n=2===t,o=3===t,l=4===t,f=6===t,p=7===t,d=5===t||f;return function(h,v,m,y){for(var g,b,x=u(h),w=i(x),O=a(w),_=r(v,m),S=0,C=y||c,E=e?C(h,O):n||p?C(h,0):void 0;O>S;S++)if((d||S in w)&&(b=_(g=w[S],S,x),t))if(e)E[S]=b;else if(b)switch(t){case 3:return!0;case 5:return g;case 6:return S;case 2:s(E,g)}else switch(t){case 4:return!1;case 7:s(E,g)}return f?-1:o||l?l:E}};t.exports={forEach:l(0),map:l(1),filter:l(2),some:l(3),every:l(4),find:l(5),findIndex:l(6),filterReject:l(7)}},953:function(t,e,n){var r=n(9957),o=n(9972),i=n(8504),u=o(\"species\");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[u]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},1496:function(t,e,n){var r=n(9957);t.exports=function(t,e){var n=[][t];return!!n&&r((function(){n.call(null,e||function(){return 1},1)}))}},6728:function(t,e,n){var r=n(3476),o=n(1432),i=TypeError,u=Object.getOwnPropertyDescriptor,a=r&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],\"length\",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}();t.exports=a?function(t,e){if(o(t)&&!u(t,\"length\").writable)throw new i(\"Cannot set read only .length\");return t.length=e}:function(t,e){return t.length=e}},6736:function(t,e,n){var r=n(1432),o=n(6072),i=n(1632),u=n(9972)(\"species\"),a=Array;t.exports=function(t){var e;return r(t)&&(e=t.constructor,(o(e)&&(e===a||r(e.prototype))||i(e)&&null===(e=e[u]))&&(e=void 0)),void 0===e?a:e}},2568:function(t,e,n){var r=n(6736);t.exports=function(t,e){return new(r(t))(0===e?0:e)}},8696:function(t,e,n){var r=n(3951),o=n(3112);t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(u){o(t,\"throw\",u)}}},1888:function(t,e,n){var r=n(1664),o=r({}.toString),i=r(\"\".slice);t.exports=function(t){return i(o(t),8,-1)}},4427:function(t,e,n){var r=n(16),o=n(4328),i=n(1888),u=n(9972)(\"toStringTag\"),a=Object,c=\"Arguments\"===i(function(){return arguments}());t.exports=r?i:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=a(t),u))?n:c?i(e):\"Object\"===(r=i(e))&&o(e.callee)?\"Arguments\":r}},9968:function(t,e,n){var r=n(5152),o=n(9252),i=n(9444),u=n(8352);t.exports=function(t,e,n){for(var a=o(e),c=u.f,s=i.f,l=0;l<a.length;l++){var f=a[l];r(t,f)||n&&r(n,f)||c(t,f,s(e,f))}}},2272:function(t,e,n){var r=n(9957);t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},3336:function(t){t.exports=function(t,e){return{value:t,done:e}}},3440:function(t,e,n){var r=n(3476),o=n(8352),i=n(9728);t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},9728:function(t){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},92:function(t,e,n){var r=n(3476),o=n(8352),i=n(9728);t.exports=function(t,e,n){r?o.f(t,e,i(0,n)):t[e]=n}},2544:function(t,e,n){var r=n(5312),o=n(8352);t.exports=function(t,e,n){return n.get&&r(n.get,e,{getter:!0}),n.set&&r(n.set,e,{setter:!0}),o.f(t,e,n)}},6076:function(t,e,n){var r=n(4328),o=n(8352),i=n(5312),u=n(4636);t.exports=function(t,e,n,a){a||(a={});var c=a.enumerable,s=void 0!==a.name?a.name:e;if(r(n)&&i(n,s,a),a.global)c?t[e]=n:u(e,n);else{try{a.unsafe?t[e]&&(c=!0):delete t[e]}catch(l){}c?t[e]=n:o.f(t,e,{value:n,enumerable:!1,configurable:!a.nonConfigurable,writable:!a.nonWritable})}return t}},4036:function(t,e,n){var r=n(6076);t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},4636:function(t,e,n){var r=n(6420),o=Object.defineProperty;t.exports=function(t,e){try{o(r,t,{value:e,configurable:!0,writable:!0})}catch(n){r[t]=e}return e}},3476:function(t,e,n){var r=n(9957);t.exports=!r((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},8168:function(t,e,n){var r=n(6420),o=n(1632),i=r.document,u=o(i)&&o(i.createElement);t.exports=function(t){return u?i.createElement(t):{}}},4316:function(t){var e=TypeError;t.exports=function(t){if(t>9007199254740991)throw e(\"Maximum allowed index exceeded\");return t}},6064:function(t){t.exports=\"undefined\"!=typeof navigator&&String(navigator.userAgent)||\"\"},8504:function(t,e,n){var r,o,i=n(6420),u=n(6064),a=i.process,c=i.Deno,s=a&&a.versions||c&&c.version,l=s&&s.v8;l&&(o=(r=l.split(\".\"))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!o&&u&&(!(r=u.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=u.match(/Chrome\\/(\\d+)/))&&(o=+r[1]),t.exports=o},8256:function(t){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},6520:function(t,e,n){var r=n(1664),o=Error,i=r(\"\".replace),u=String(new o(\"zxcasd\").stack),a=/\\n\\s*at [^:]*:[^\\n]*/,c=a.test(u);t.exports=function(t,e){if(c&&\"string\"==typeof t&&!o.prepareStackTrace)for(;e--;)t=i(t,a,\"\");return t}},3696:function(t,e,n){var r=n(3440),o=n(6520),i=n(9184),u=Error.captureStackTrace;t.exports=function(t,e,n,a){i&&(u?u(t,e):r(t,\"stack\",o(n,a)))}},9184:function(t,e,n){var r=n(9957),o=n(9728);t.exports=!r((function(){var t=new Error(\"a\");return!(\"stack\"in t)||(Object.defineProperty(t,\"stack\",o(1,7)),7!==t.stack)}))},9160:function(t,e,n){var r=n(6420),o=n(9444).f,i=n(3440),u=n(6076),a=n(4636),c=n(9968),s=n(6704);t.exports=function(t,e){var n,l,f,p,d,h=t.target,v=t.global,m=t.stat;if(n=v?r:m?r[h]||a(h,{}):r[h]&&r[h].prototype)for(l in e){if(p=e[l],f=t.dontCallGetSet?(d=o(n,l))&&d.value:n[l],!s(v?l:h+(m?\".\":\"#\")+l,t.forced)&&void 0!==f){if(typeof p==typeof f)continue;c(p,f)}(t.sham||f&&f.sham)&&i(p,\"sham\",!0),u(n,l,p,t)}}},9957:function(t){t.exports=function(t){try{return!!t()}catch(e){return!0}}},7176:function(t,e,n){n(880);var r=n(8448),o=n(6076),i=n(7680),u=n(9957),a=n(9972),c=n(3440),s=a(\"species\"),l=RegExp.prototype;t.exports=function(t,e,n,f){var p=a(t),d=!u((function(){var e={};return e[p]=function(){return 7},7!==\"\"[t](e)})),h=d&&!u((function(){var e=!1,n=/a/;return\"split\"===t&&((n={}).constructor={},n.constructor[s]=function(){return n},n.flags=\"\",n[p]=/./[p]),n.exec=function(){return e=!0,null},n[p](\"\"),!e}));if(!d||!h||n){var v=/./[p],m=e(p,\"\"[t],(function(t,e,n,o,u){var a=e.exec;return a===i||a===l.exec?d&&!u?{done:!0,value:r(v,e,n,o)}:{done:!0,value:r(t,n,e,o)}:{done:!1}}));o(String.prototype,t,m[0]),o(l,p,m[1])}f&&c(l[p],\"sham\",!0)}},908:function(t,e,n){var r=n(7332),o=Function.prototype,i=o.apply,u=o.call;t.exports=\"object\"==typeof Reflect&&Reflect.apply||(r?u.bind(i):function(){return u.apply(i,arguments)})},8992:function(t,e,n){var r=n(3180),o=n(8952),i=n(7332),u=r(r.bind);t.exports=function(t,e){return o(t),void 0===e?t:i?u(t,e):function(){return t.apply(e,arguments)}}},7332:function(t,e,n){var r=n(9957);t.exports=!r((function(){var t=function(){}.bind();return\"function\"!=typeof t||t.hasOwnProperty(\"prototype\")}))},8448:function(t,e,n){var r=n(7332),o=Function.prototype.call;t.exports=r?o.bind(o):function(){return o.apply(o,arguments)}},6208:function(t,e,n){var r=n(3476),o=n(5152),i=Function.prototype,u=r&&Object.getOwnPropertyDescriptor,a=o(i,\"name\"),c=a&&\"something\"===function(){}.name,s=a&&(!r||r&&u(i,\"name\").configurable);t.exports={EXISTS:a,PROPER:c,CONFIGURABLE:s}},5288:function(t,e,n){var r=n(1664),o=n(8952);t.exports=function(t,e,n){try{return r(o(Object.getOwnPropertyDescriptor(t,e)[n]))}catch(i){}}},3180:function(t,e,n){var r=n(1888),o=n(1664);t.exports=function(t){if(\"Function\"===r(t))return o(t)}},1664:function(t,e,n){var r=n(7332),o=Function.prototype,i=o.call,u=r&&o.bind.bind(i,i);t.exports=r?u:function(t){return function(){return i.apply(t,arguments)}}},5232:function(t,e,n){var r=n(6420),o=n(4328);t.exports=function(t,e){return arguments.length<2?(n=r[t],o(n)?n:void 0):r[t]&&r[t][e];var n}},6752:function(t){t.exports=function(t){return{iterator:t,next:t.next,done:!1}}},4504:function(t,e,n){var r=n(8952),o=n(9760);t.exports=function(t,e){var n=t[e];return o(n)?void 0:r(n)}},6420:function(t,e,n){var r=function(t){return t&&t.Math===Math&&t};t.exports=r(\"object\"==typeof globalThis&&globalThis)||r(\"object\"==typeof window&&window)||r(\"object\"==typeof self&&self)||r(\"object\"==typeof n.g&&n.g)||r(\"object\"==typeof this&&this)||function(){return this}()||Function(\"return this\")()},5152:function(t,e,n){var r=n(1664),o=n(4356),i=r({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return i(o(t),e)}},2560:function(t){t.exports={}},4168:function(t,e,n){var r=n(5232);t.exports=r(\"document\",\"documentElement\")},9888:function(t,e,n){var r=n(3476),o=n(9957),i=n(8168);t.exports=!r&&!o((function(){return 7!==Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},5712:function(t,e,n){var r=n(1664),o=n(9957),i=n(1888),u=Object,a=r(\"\".split);t.exports=o((function(){return!u(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"===i(t)?a(t,\"\"):u(t)}:u},7512:function(t,e,n){var r=n(4328),o=n(1632),i=n(4024);t.exports=function(t,e,n){var u,a;return i&&r(u=e.constructor)&&u!==n&&o(a=u.prototype)&&a!==n.prototype&&i(t,a),t}},9112:function(t,e,n){var r=n(1664),o=n(4328),i=n(3976),u=r(Function.toString);o(i.inspectSource)||(i.inspectSource=function(t){return u(t)}),t.exports=i.inspectSource},3480:function(t,e,n){var r=n(1632),o=n(3440);t.exports=function(t,e){r(e)&&\"cause\"in e&&o(t,\"cause\",e.cause)}},9104:function(t,e,n){var r,o,i,u=n(4288),a=n(6420),c=n(1632),s=n(3440),l=n(5152),f=n(3976),p=n(6504),d=n(2560),h=\"Object already initialized\",v=a.TypeError,m=a.WeakMap;if(u||f.state){var y=f.state||(f.state=new m);y.get=y.get,y.has=y.has,y.set=y.set,r=function(t,e){if(y.has(t))throw new v(h);return e.facade=t,y.set(t,e),e},o=function(t){return y.get(t)||{}},i=function(t){return y.has(t)}}else{var g=p(\"state\");d[g]=!0,r=function(t,e){if(l(t,g))throw new v(h);return e.facade=t,s(t,g,e),e},o=function(t){return l(t,g)?t[g]:{}},i=function(t){return l(t,g)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!c(e)||(n=o(e)).type!==t)throw new v(\"Incompatible receiver, \"+t+\" required\");return n}}}},1432:function(t,e,n){var r=n(1888);t.exports=Array.isArray||function(t){return\"Array\"===r(t)}},4328:function(t){var e=\"object\"==typeof document&&document.all;t.exports=void 0===e&&void 0!==e?function(t){return\"function\"==typeof t||t===e}:function(t){return\"function\"==typeof t}},6072:function(t,e,n){var r=n(1664),o=n(9957),i=n(4328),u=n(4427),a=n(5232),c=n(9112),s=function(){},l=a(\"Reflect\",\"construct\"),f=/^\\s*(?:class|function)\\b/,p=r(f.exec),d=!f.test(s),h=function(t){if(!i(t))return!1;try{return l(s,[],t),!0}catch(e){return!1}},v=function(t){if(!i(t))return!1;switch(u(t)){case\"AsyncFunction\":case\"GeneratorFunction\":case\"AsyncGeneratorFunction\":return!1}try{return d||!!p(f,c(t))}catch(e){return!0}};v.sham=!0,t.exports=!l||o((function(){var t;return h(h.call)||!h(Object)||!h((function(){t=!0}))||t}))?v:h},6704:function(t,e,n){var r=n(9957),o=n(4328),i=/#|\\.prototype\\./,u=function(t,e){var n=c[a(t)];return n===l||n!==s&&(o(e)?r(e):!!e)},a=u.normalize=function(t){return String(t).replace(i,\".\").toLowerCase()},c=u.data={},s=u.NATIVE=\"N\",l=u.POLYFILL=\"P\";t.exports=u},9760:function(t){t.exports=function(t){return null==t}},1632:function(t,e,n){var r=n(4328);t.exports=function(t){return\"object\"==typeof t?null!==t:r(t)}},2424:function(t,e,n){var r=n(1632);t.exports=function(t){return r(t)||null===t}},7048:function(t){t.exports=!1},7728:function(t,e,n){var r=n(5232),o=n(4328),i=n(7e3),u=n(6536),a=Object;t.exports=u?function(t){return\"symbol\"==typeof t}:function(t){var e=r(\"Symbol\");return o(e)&&i(e.prototype,a(t))}},3112:function(t,e,n){var r=n(8448),o=n(3951),i=n(4504);t.exports=function(t,e,n){var u,a;o(t);try{if(!(u=i(t,\"return\"))){if(\"throw\"===e)throw n;return n}u=r(u,t)}catch(c){a=!0,u=c}if(\"throw\"===e)throw n;if(a)throw u;return o(u),n}},9724:function(t,e,n){var r=n(8448),o=n(9368),i=n(3440),u=n(4036),a=n(9972),c=n(9104),s=n(4504),l=n(336).IteratorPrototype,f=n(3336),p=n(3112),d=a(\"toStringTag\"),h=\"IteratorHelper\",v=\"WrapForValidIterator\",m=c.set,y=function(t){var e=c.getterFor(t?v:h);return u(o(l),{next:function(){var n=e(this);if(t)return n.nextHandler();try{var r=n.done?void 0:n.nextHandler();return f(r,n.done)}catch(o){throw n.done=!0,o}},return:function(){var n=e(this),o=n.iterator;if(n.done=!0,t){var i=s(o,\"return\");return i?r(i,o):f(void 0,!0)}if(n.inner)try{p(n.inner.iterator,\"normal\")}catch(u){return p(o,\"throw\",u)}return p(o,\"normal\"),f(void 0,!0)}})},g=y(!0),b=y(!1);i(b,d,\"Iterator Helper\"),t.exports=function(t,e){var n=function(n,r){r?(r.iterator=n.iterator,r.next=n.next):r=n,r.type=e?v:h,r.nextHandler=t,r.counter=0,r.done=!1,m(this,r)};return n.prototype=e?g:b,n}},5792:function(t,e,n){var r=n(8448),o=n(8952),i=n(3951),u=n(6752),a=n(9724),c=n(8696),s=a((function(){var t=this.iterator,e=i(r(this.next,t));if(!(this.done=!!e.done))return c(t,this.mapper,[e.value,this.counter++],!0)}));t.exports=function(t){return i(this),o(t),new s(u(this),{mapper:t})}},336:function(t,e,n){var r,o,i,u=n(9957),a=n(4328),c=n(1632),s=n(9368),l=n(7796),f=n(6076),p=n(9972),d=n(7048),h=p(\"iterator\"),v=!1;[].keys&&(\"next\"in(i=[].keys())?(o=l(l(i)))!==Object.prototype&&(r=o):v=!0),!c(r)||u((function(){var t={};return r[h].call(t)!==t}))?r={}:d&&(r=s(r)),a(r[h])||f(r,h,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:v}},3556:function(t,e,n){var r=n(7584);t.exports=function(t){return r(t.length)}},5312:function(t,e,n){var r=n(1664),o=n(9957),i=n(4328),u=n(5152),a=n(3476),c=n(6208).CONFIGURABLE,s=n(9112),l=n(9104),f=l.enforce,p=l.get,d=String,h=Object.defineProperty,v=r(\"\".slice),m=r(\"\".replace),y=r([].join),g=a&&!o((function(){return 8!==h((function(){}),\"length\",{value:8}).length})),b=String(String).split(\"String\"),x=t.exports=function(t,e,n){\"Symbol(\"===v(d(e),0,7)&&(e=\"[\"+m(d(e),/^Symbol\\(([^)]*)\\).*$/,\"$1\")+\"]\"),n&&n.getter&&(e=\"get \"+e),n&&n.setter&&(e=\"set \"+e),(!u(t,\"name\")||c&&t.name!==e)&&(a?h(t,\"name\",{value:e,configurable:!0}):t.name=e),g&&n&&u(n,\"arity\")&&t.length!==n.arity&&h(t,\"length\",{value:n.arity});try{n&&u(n,\"constructor\")&&n.constructor?a&&h(t,\"prototype\",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(o){}var r=f(t);return u(r,\"source\")||(r.source=y(b,\"string\"==typeof e?e:\"\")),t};Function.prototype.toString=x((function(){return i(this)&&p(this).source||s(this)}),\"toString\")},1748:function(t){var e=Math.ceil,n=Math.floor;t.exports=Math.trunc||function(t){var r=+t;return(r>0?n:e)(r)}},8948:function(t,e,n){var r=n(5016);t.exports=function(t,e){return void 0===t?arguments.length<2?\"\":e:r(t)}},9292:function(t,e,n){var r=n(3476),o=n(1664),i=n(8448),u=n(9957),a=n(1531),c=n(9392),s=n(8912),l=n(4356),f=n(5712),p=Object.assign,d=Object.defineProperty,h=o([].concat);t.exports=!p||u((function(){if(r&&1!==p({b:1},p(d({},\"a\",{enumerable:!0,get:function(){d(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol(\"assign detection\"),o=\"abcdefghijklmnopqrst\";return t[n]=7,o.split(\"\").forEach((function(t){e[t]=t})),7!==p({},t)[n]||a(p({},e)).join(\"\")!==o}))?function(t,e){for(var n=l(t),o=arguments.length,u=1,p=c.f,d=s.f;o>u;)for(var v,m=f(arguments[u++]),y=p?h(a(m),p(m)):a(m),g=y.length,b=0;g>b;)v=y[b++],r&&!i(d,m,v)||(n[v]=m[v]);return n}:p},9368:function(t,e,n){var r,o=n(3951),i=n(2056),u=n(8256),a=n(2560),c=n(4168),s=n(8168),l=n(6504),f=\"prototype\",p=\"script\",d=l(\"IE_PROTO\"),h=function(){},v=function(t){return\"<\"+p+\">\"+t+\"</\"+p+\">\"},m=function(t){t.write(v(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e},y=function(){try{r=new ActiveXObject(\"htmlfile\")}catch(i){}var t,e,n;y=\"undefined\"!=typeof document?document.domain&&r?m(r):(e=s(\"iframe\"),n=\"java\"+p+\":\",e.style.display=\"none\",c.appendChild(e),e.src=String(n),(t=e.contentWindow.document).open(),t.write(v(\"document.F=Object\")),t.close(),t.F):m(r);for(var o=u.length;o--;)delete y[f][u[o]];return y()};a[d]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(h[f]=o(t),n=new h,h[f]=null,n[d]=t):n=y(),void 0===e?n:i.f(n,e)}},2056:function(t,e,n){var r=n(3476),o=n(1576),i=n(8352),u=n(3951),a=n(4096),c=n(1531);e.f=r&&!o?Object.defineProperties:function(t,e){u(t);for(var n,r=a(e),o=c(e),s=o.length,l=0;s>l;)i.f(t,n=o[l++],r[n]);return t}},8352:function(t,e,n){var r=n(3476),o=n(9888),i=n(1576),u=n(3951),a=n(88),c=TypeError,s=Object.defineProperty,l=Object.getOwnPropertyDescriptor,f=\"enumerable\",p=\"configurable\",d=\"writable\";e.f=r?i?function(t,e,n){if(u(t),e=a(e),u(n),\"function\"==typeof t&&\"prototype\"===e&&\"value\"in n&&d in n&&!n[d]){var r=l(t,e);r&&r[d]&&(t[e]=n.value,n={configurable:p in n?n[p]:r[p],enumerable:f in n?n[f]:r[f],writable:!1})}return s(t,e,n)}:s:function(t,e,n){if(u(t),e=a(e),u(n),o)try{return s(t,e,n)}catch(r){}if(\"get\"in n||\"set\"in n)throw new c(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},9444:function(t,e,n){var r=n(3476),o=n(8448),i=n(8912),u=n(9728),a=n(4096),c=n(88),s=n(5152),l=n(9888),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=c(e),l)try{return f(t,e)}catch(n){}if(s(t,e))return u(!o(i.f,t,e),t[e])}},5048:function(t,e,n){var r=n(9008),o=n(8256).concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},9392:function(t,e){e.f=Object.getOwnPropertySymbols},7796:function(t,e,n){var r=n(5152),o=n(4328),i=n(4356),u=n(6504),a=n(2272),c=u(\"IE_PROTO\"),s=Object,l=s.prototype;t.exports=a?s.getPrototypeOf:function(t){var e=i(t);if(r(e,c))return e[c];var n=e.constructor;return o(n)&&e instanceof n?n.prototype:e instanceof s?l:null}},7e3:function(t,e,n){var r=n(1664);t.exports=r({}.isPrototypeOf)},9008:function(t,e,n){var r=n(1664),o=n(5152),i=n(4096),u=n(2504).indexOf,a=n(2560),c=r([].push);t.exports=function(t,e){var n,r=i(t),s=0,l=[];for(n in r)!o(a,n)&&o(r,n)&&c(l,n);for(;e.length>s;)o(r,n=e[s++])&&(~u(l,n)||c(l,n));return l}},1531:function(t,e,n){var r=n(9008),o=n(8256);t.exports=Object.keys||function(t){return r(t,o)}},8912:function(t,e){var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,o=r&&!n.call({1:2},1);e.f=o?function(t){var e=r(this,t);return!!e&&e.enumerable}:n},4024:function(t,e,n){var r=n(5288),o=n(3951),i=n(2096);t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,n={};try{(t=r(Object.prototype,\"__proto__\",\"set\"))(n,[]),e=n instanceof Array}catch(u){}return function(n,r){return o(n),i(r),e?t(n,r):n.__proto__=r,n}}():void 0)},7032:function(t,e,n){var r=n(16),o=n(4427);t.exports=r?{}.toString:function(){return\"[object \"+o(this)+\"]\"}},2104:function(t,e,n){var r=n(8448),o=n(4328),i=n(1632),u=TypeError;t.exports=function(t,e){var n,a;if(\"string\"===e&&o(n=t.toString)&&!i(a=r(n,t)))return a;if(o(n=t.valueOf)&&!i(a=r(n,t)))return a;if(\"string\"!==e&&o(n=t.toString)&&!i(a=r(n,t)))return a;throw new u(\"Can't convert object to primitive value\")}},9252:function(t,e,n){var r=n(5232),o=n(1664),i=n(5048),u=n(9392),a=n(3951),c=o([].concat);t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=i.f(a(t)),n=u.f;return n?c(e,n(t)):e}},584:function(t,e,n){var r=n(8352).f;t.exports=function(t,e,n){n in t||r(t,n,{configurable:!0,get:function(){return e[n]},set:function(t){e[n]=t}})}},9092:function(t,e,n){var r=n(8448),o=n(3951),i=n(4328),u=n(1888),a=n(7680),c=TypeError;t.exports=function(t,e){var n=t.exec;if(i(n)){var s=r(n,t,e);return null!==s&&o(s),s}if(\"RegExp\"===u(t))return r(a,t,e);throw new c(\"RegExp#exec called on incompatible receiver\")}},7680:function(t,e,n){var r,o,i=n(8448),u=n(1664),a=n(5016),c=n(8872),s=n(3548),l=n(4696),f=n(9368),p=n(9104).get,d=n(8e3),h=n(9124),v=l(\"native-string-replace\",String.prototype.replace),m=RegExp.prototype.exec,y=m,g=u(\"\".charAt),b=u(\"\".indexOf),x=u(\"\".replace),w=u(\"\".slice),O=(o=/b*/g,i(m,r=/a/,\"a\"),i(m,o,\"a\"),0!==r.lastIndex||0!==o.lastIndex),_=s.BROKEN_CARET,S=void 0!==/()??/.exec(\"\")[1];(O||S||_||d||h)&&(y=function(t){var e,n,r,o,u,s,l,d=this,h=p(d),C=a(t),E=h.raw;if(E)return E.lastIndex=d.lastIndex,e=i(y,E,C),d.lastIndex=E.lastIndex,e;var I=h.groups,j=_&&d.sticky,A=i(c,d),P=d.source,N=0,k=C;if(j&&(A=x(A,\"y\",\"\"),-1===b(A,\"g\")&&(A+=\"g\"),k=w(C,d.lastIndex),d.lastIndex>0&&(!d.multiline||d.multiline&&\"\\n\"!==g(C,d.lastIndex-1))&&(P=\"(?: \"+P+\")\",k=\" \"+k,N++),n=new RegExp(\"^(?:\"+P+\")\",A)),S&&(n=new RegExp(\"^\"+P+\"$(?!\\\\s)\",A)),O&&(r=d.lastIndex),o=i(m,j?n:d,k),j?o?(o.input=w(o.input,N),o[0]=w(o[0],N),o.index=d.lastIndex,d.lastIndex+=o[0].length):d.lastIndex=0:O&&o&&(d.lastIndex=d.global?o.index+o[0].length:r),S&&o&&o.length>1&&i(v,o[0],n,(function(){for(u=1;u<arguments.length-2;u++)void 0===arguments[u]&&(o[u]=void 0)})),o&&I)for(o.groups=s=f(null),u=0;u<I.length;u++)s[(l=I[u])[0]]=o[l[1]];return o}),t.exports=y},8872:function(t,e,n){var r=n(3951);t.exports=function(){var t=r(this),e=\"\";return t.hasIndices&&(e+=\"d\"),t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.unicodeSets&&(e+=\"v\"),t.sticky&&(e+=\"y\"),e}},3548:function(t,e,n){var r=n(9957),o=n(6420).RegExp,i=r((function(){var t=o(\"a\",\"y\");return t.lastIndex=2,null!==t.exec(\"abcd\")})),u=i||r((function(){return!o(\"a\",\"y\").sticky})),a=i||r((function(){var t=o(\"^r\",\"gy\");return t.lastIndex=2,null!==t.exec(\"str\")}));t.exports={BROKEN_CARET:a,MISSED_STICKY:u,UNSUPPORTED_Y:i}},8e3:function(t,e,n){var r=n(9957),o=n(6420).RegExp;t.exports=r((function(){var t=o(\".\",\"s\");return!(t.dotAll&&t.test(\"\\n\")&&\"s\"===t.flags)}))},9124:function(t,e,n){var r=n(9957),o=n(6420).RegExp;t.exports=r((function(){var t=o(\"(?<a>b)\",\"g\");return\"b\"!==t.exec(\"b\").groups.a||\"bc\"!==\"b\".replace(t,\"$<a>c\")}))},5436:function(t,e,n){var r=n(9760),o=TypeError;t.exports=function(t){if(r(t))throw new o(\"Can't call method on \"+t);return t}},6504:function(t,e,n){var r=n(4696),o=n(7776),i=r(\"keys\");t.exports=function(t){return i[t]||(i[t]=o(t))}},3976:function(t,e,n){var r=n(7048),o=n(6420),i=n(4636),u=\"__core-js_shared__\",a=t.exports=o[u]||i(u,{});(a.versions||(a.versions=[])).push({version:\"3.36.0\",mode:r?\"pure\":\"global\",copyright:\"© 2014-2024 Denis Pushkarev (zloirock.ru)\",license:\"https://github.com/zloirock/core-js/blob/v3.36.0/LICENSE\",source:\"https://github.com/zloirock/core-js\"})},4696:function(t,e,n){var r=n(3976);t.exports=function(t,e){return r[t]||(r[t]=e||{})}},9764:function(t,e,n){var r=n(1664),o=n(6180),i=n(5016),u=n(5436),a=r(\"\".charAt),c=r(\"\".charCodeAt),s=r(\"\".slice),l=function(t){return function(e,n){var r,l,f=i(u(e)),p=o(n),d=f.length;return p<0||p>=d?t?\"\":void 0:(r=c(f,p))<55296||r>56319||p+1===d||(l=c(f,p+1))<56320||l>57343?t?a(f,p):r:t?s(f,p,p+2):l-56320+(r-55296<<10)+65536}};t.exports={codeAt:l(!1),charAt:l(!0)}},772:function(t,e,n){var r=n(8504),o=n(9957),i=n(6420).String;t.exports=!!Object.getOwnPropertySymbols&&!o((function(){var t=Symbol(\"symbol detection\");return!i(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},2495:function(t,e,n){var r=n(6180),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},4096:function(t,e,n){var r=n(5712),o=n(5436);t.exports=function(t){return r(o(t))}},6180:function(t,e,n){var r=n(1748);t.exports=function(t){var e=+t;return e!=e||0===e?0:r(e)}},7584:function(t,e,n){var r=n(6180),o=Math.min;t.exports=function(t){var e=r(t);return e>0?o(e,9007199254740991):0}},4356:function(t,e,n){var r=n(5436),o=Object;t.exports=function(t){return o(r(t))}},7024:function(t,e,n){var r=n(8448),o=n(1632),i=n(7728),u=n(4504),a=n(2104),c=n(9972),s=TypeError,l=c(\"toPrimitive\");t.exports=function(t,e){if(!o(t)||i(t))return t;var n,c=u(t,l);if(c){if(void 0===e&&(e=\"default\"),n=r(c,t,e),!o(n)||i(n))return n;throw new s(\"Can't convert object to primitive value\")}return void 0===e&&(e=\"number\"),a(t,e)}},88:function(t,e,n){var r=n(7024),o=n(7728);t.exports=function(t){var e=r(t,\"string\");return o(e)?e:e+\"\"}},16:function(t,e,n){var r={};r[n(9972)(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(r)},5016:function(t,e,n){var r=n(4427),o=String;t.exports=function(t){if(\"Symbol\"===r(t))throw new TypeError(\"Cannot convert a Symbol value to a string\");return o(t)}},36:function(t){var e=String;t.exports=function(t){try{return e(t)}catch(n){return\"Object\"}}},7776:function(t,e,n){var r=n(1664),o=0,i=Math.random(),u=r(1..toString);t.exports=function(t){return\"Symbol(\"+(void 0===t?\"\":t)+\")_\"+u(++o+i,36)}},6536:function(t,e,n){var r=n(772);t.exports=r&&!Symbol.sham&&\"symbol\"==typeof Symbol.iterator},1576:function(t,e,n){var r=n(3476),o=n(9957);t.exports=r&&o((function(){return 42!==Object.defineProperty((function(){}),\"prototype\",{value:42,writable:!1}).prototype}))},4288:function(t,e,n){var r=n(6420),o=n(4328),i=r.WeakMap;t.exports=o(i)&&/native code/.test(String(i))},9972:function(t,e,n){var r=n(6420),o=n(4696),i=n(5152),u=n(7776),a=n(772),c=n(6536),s=r.Symbol,l=o(\"wks\"),f=c?s.for||s:s&&s.withoutSetter||u;t.exports=function(t){return i(l,t)||(l[t]=a&&i(s,t)?s[t]:f(\"Symbol.\"+t)),l[t]}},6488:function(t,e,n){var r=n(5232),o=n(5152),i=n(3440),u=n(7e3),a=n(4024),c=n(9968),s=n(584),l=n(7512),f=n(8948),p=n(3480),d=n(3696),h=n(3476),v=n(7048);t.exports=function(t,e,n,m){var y=\"stackTraceLimit\",g=m?2:1,b=t.split(\".\"),x=b[b.length-1],w=r.apply(null,b);if(w){var O=w.prototype;if(!v&&o(O,\"cause\")&&delete O.cause,!n)return w;var _=r(\"Error\"),S=e((function(t,e){var n=f(m?e:t,void 0),r=m?new w(t):new w;return void 0!==n&&i(r,\"message\",n),d(r,S,r.stack,2),this&&u(O,this)&&l(r,this,S),arguments.length>g&&p(r,arguments[g]),r}));if(S.prototype=O,\"Error\"!==x?a?a(S,_):c(S,_,{name:!0}):h&&y in w&&(s(S,w,y),s(S,w,\"prepareStackTrace\")),c(S,w),!v)try{O.name!==x&&i(O,\"name\",x),O.constructor=S}catch(C){}return S}}},7476:function(t,e,n){var r=n(9160),o=n(9957),i=n(1432),u=n(1632),a=n(4356),c=n(3556),s=n(4316),l=n(92),f=n(2568),p=n(953),d=n(9972),h=n(8504),v=d(\"isConcatSpreadable\"),m=h>=51||!o((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),y=function(t){if(!u(t))return!1;var e=t[v];return void 0!==e?!!e:i(t)};r({target:\"Array\",proto:!0,arity:1,forced:!m||!p(\"concat\")},{concat:function(t){var e,n,r,o,i,u=a(this),p=f(u,0),d=0;for(e=-1,r=arguments.length;e<r;e++)if(y(i=-1===e?u:arguments[e]))for(o=c(i),s(d+o),n=0;n<o;n++,d++)n in i&&l(p,d,i[n]);else s(d+1),l(p,d++,i);return p.length=d,p}})},6932:function(t,e,n){var r=n(9160),o=n(3364).filter;r({target:\"Array\",proto:!0,forced:!n(953)(\"filter\")},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},700:function(t,e,n){var r=n(9160),o=n(1664),i=n(5712),u=n(4096),a=n(1496),c=o([].join);r({target:\"Array\",proto:!0,forced:i!==Object||!a(\"join\",\",\")},{join:function(t){return c(u(this),void 0===t?\",\":t)}})},4456:function(t,e,n){var r=n(9160),o=n(3364).map;r({target:\"Array\",proto:!0,forced:!n(953)(\"map\")},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},4728:function(t,e,n){var r=n(9160),o=n(4356),i=n(3556),u=n(6728),a=n(4316);r({target:\"Array\",proto:!0,arity:1,forced:n(9957)((function(){return 4294967297!==[].push.call({length:4294967296},1)}))||!function(){try{Object.defineProperty([],\"length\",{writable:!1}).push()}catch(t){return t instanceof TypeError}}()},{push:function(t){var e=o(this),n=i(e),r=arguments.length;a(n+r);for(var c=0;c<r;c++)e[n]=arguments[c],n++;return u(e,n),n}})},8752:function(t,e,n){var r=n(9160),o=n(6420),i=n(908),u=n(6488),a=\"WebAssembly\",c=o[a],s=7!==new Error(\"e\",{cause:7}).cause,l=function(t,e){var n={};n[t]=u(t,e,s),r({global:!0,constructor:!0,arity:1,forced:s},n)},f=function(t,e){if(c&&c[t]){var n={};n[t]=u(a+\".\"+t,e,s),r({target:a,stat:!0,constructor:!0,arity:1,forced:s},n)}};l(\"Error\",(function(t){return function(e){return i(t,this,arguments)}})),l(\"EvalError\",(function(t){return function(e){return i(t,this,arguments)}})),l(\"RangeError\",(function(t){return function(e){return i(t,this,arguments)}})),l(\"ReferenceError\",(function(t){return function(e){return i(t,this,arguments)}})),l(\"SyntaxError\",(function(t){return function(e){return i(t,this,arguments)}})),l(\"TypeError\",(function(t){return function(e){return i(t,this,arguments)}})),l(\"URIError\",(function(t){return function(e){return i(t,this,arguments)}})),f(\"CompileError\",(function(t){return function(e){return i(t,this,arguments)}})),f(\"LinkError\",(function(t){return function(e){return i(t,this,arguments)}})),f(\"RuntimeError\",(function(t){return function(e){return i(t,this,arguments)}}))},508:function(t,e,n){var r=n(3476),o=n(6208).EXISTS,i=n(1664),u=n(2544),a=Function.prototype,c=i(a.toString),s=/function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/,l=i(s.exec);r&&!o&&u(a,\"name\",{configurable:!0,get:function(){try{return l(s,c(this))[1]}catch(t){return\"\"}}})},232:function(t,e,n){var r=n(9160),o=n(9292);r({target:\"Object\",stat:!0,arity:2,forced:Object.assign!==o},{assign:o})},5443:function(t,e,n){var r=n(16),o=n(6076),i=n(7032);r||o(Object.prototype,\"toString\",i,{unsafe:!0})},880:function(t,e,n){var r=n(9160),o=n(7680);r({target:\"RegExp\",proto:!0,forced:/./.exec!==o},{exec:o})},9836:function(t,e,n){var r=n(8448),o=n(7176),i=n(3951),u=n(9760),a=n(7584),c=n(5016),s=n(5436),l=n(4504),f=n(4764),p=n(9092);o(\"match\",(function(t,e,n){return[function(e){var n=s(this),o=u(e)?void 0:l(e,t);return o?r(o,e,n):new RegExp(e)[t](c(n))},function(t){var r=i(this),o=c(t),u=n(e,r,o);if(u.done)return u.value;if(!r.global)return p(r,o);var s=r.unicode;r.lastIndex=0;for(var l,d=[],h=0;null!==(l=p(r,o));){var v=c(l[0]);d[h]=v,\"\"===v&&(r.lastIndex=f(o,a(r.lastIndex),s)),h++}return 0===h?null:d}]}))},3536:function(t,e,n){var r=n(9160),o=n(6420),i=n(6100),u=n(3951),a=n(4328),c=n(7796),s=n(2544),l=n(92),f=n(9957),p=n(5152),d=n(9972),h=n(336).IteratorPrototype,v=n(3476),m=n(7048),y=\"constructor\",g=\"Iterator\",b=d(\"toStringTag\"),x=TypeError,w=o[g],O=m||!a(w)||w.prototype!==h||!f((function(){w({})})),_=function(){if(i(this,h),c(this)===h)throw new x(\"Abstract class Iterator not directly constructable\")},S=function(t,e){v?s(h,t,{configurable:!0,get:function(){return e},set:function(e){if(u(this),this===h)throw new x(\"You can't redefine this property\");p(this,t)?this[t]=e:l(this,t,e)}}):h[t]=e};p(h,b)||S(b,g),!O&&p(h,y)&&h[y]!==Object||S(y,_),_.prototype=h,r({global:!0,constructor:!0,forced:O},{Iterator:_})},2144:function(t,e,n){var r=n(9160),o=n(8448),i=n(8952),u=n(3951),a=n(6752),c=n(9724),s=n(8696),l=n(7048),f=c((function(){for(var t,e,n=this.iterator,r=this.predicate,i=this.next;;){if(t=u(o(i,n)),this.done=!!t.done)return;if(e=t.value,s(n,r,[e,this.counter++],!0))return e}}));r({target:\"Iterator\",proto:!0,real:!0,forced:l},{filter:function(t){return u(this),i(t),new f(a(this),{predicate:t})}})},9080:function(t,e,n){var r=n(9160),o=n(5792);r({target:\"Iterator\",proto:!0,real:!0,forced:n(7048)},{map:o})}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var i=e[r]={exports:{}};return t[r].call(i.exports,i,i.exports,n),i.exports}n.d=function(t,e){for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.g=function(){if(\"object\"==typeof globalThis)return globalThis;try{return this||new Function(\"return this\")()}catch(t){if(\"object\"==typeof window)return window}}(),n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)};var r={};return function(){n.d(r,{default:function(){return Q}});n(8752),n(6932),n(4456),n(508),n(232),n(5443),n(3536),n(2144),n(9080);var t=function(){},e={},o=[],i=[];function u(n,r){var u,a,c,s,l=i;for(s=arguments.length;s-- >2;)o.push(arguments[s]);for(r&&null!=r.children&&(o.length||o.push(r.children),delete r.children);o.length;)if((a=o.pop())&&void 0!==a.pop)for(s=a.length;s--;)o.push(a[s]);else\"boolean\"==typeof a&&(a=null),(c=\"function\"!=typeof n)&&(null==a?a=\"\":\"number\"==typeof a?a=String(a):\"string\"!=typeof a&&(c=!1)),c&&u?l[l.length-1]+=a:l===i?l=[a]:l.push(a),u=c;var f=new t;return f.nodeName=n,f.children=l,f.attributes=null==r?void 0:r,f.key=null==r?void 0:r.key,void 0!==e.vnode&&e.vnode(f),f}function a(t,e){for(var n in e)t[n]=e[n];return t}function c(t,e){t&&(\"function\"==typeof t?t(e):t.current=e)}var s=\"function\"==typeof Promise?Promise.resolve().then.bind(Promise.resolve()):setTimeout;var l=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i,f=[];function p(t){!t._dirty&&(t._dirty=!0)&&1==f.push(t)&&(e.debounceRendering||s)(d)}function d(){for(var t;t=f.pop();)t._dirty&&T(t)}function h(t,e,n){return\"string\"==typeof e||\"number\"==typeof e?void 0!==t.splitText:\"string\"==typeof e.nodeName?!t._componentConstructor&&v(t,e.nodeName):n||t._componentConstructor===e.nodeName}function v(t,e){return t.normalizedNodeName===e||t.nodeName.toLowerCase()===e.toLowerCase()}function m(t){var e=a({},t.attributes);e.children=t.children;var n=t.nodeName.defaultProps;if(void 0!==n)for(var r in n)void 0===e[r]&&(e[r]=n[r]);return e}function y(t){var e=t.parentNode;e&&e.removeChild(t)}function g(t,e,n,r,o){if(\"className\"===e&&(e=\"class\"),\"key\"===e);else if(\"ref\"===e)c(n,null),c(r,t);else if(\"class\"!==e||o)if(\"style\"===e){if(r&&\"string\"!=typeof r&&\"string\"!=typeof n||(t.style.cssText=r||\"\"),r&&\"object\"==typeof r){if(\"string\"!=typeof n)for(var i in n)i in r||(t.style[i]=\"\");for(var i in r)t.style[i]=\"number\"==typeof r[i]&&!1===l.test(i)?r[i]+\"px\":r[i]}}else if(\"dangerouslySetInnerHTML\"===e)r&&(t.innerHTML=r.__html||\"\");else if(\"o\"==e[0]&&\"n\"==e[1]){var u=e!==(e=e.replace(/Capture$/,\"\"));e=e.toLowerCase().substring(2),r?n||t.addEventListener(e,b,u):t.removeEventListener(e,b,u),(t._listeners||(t._listeners={}))[e]=r}else if(\"list\"!==e&&\"type\"!==e&&!o&&e in t){try{t[e]=null==r?\"\":r}catch(s){}null!=r&&!1!==r||\"spellcheck\"==e||t.removeAttribute(e)}else{var a=o&&e!==(e=e.replace(/^xlink:?/,\"\"));null==r||!1===r?a?t.removeAttributeNS(\"http://www.w3.org/1999/xlink\",e.toLowerCase()):t.removeAttribute(e):\"function\"!=typeof r&&(a?t.setAttributeNS(\"http://www.w3.org/1999/xlink\",e.toLowerCase(),r):t.setAttribute(e,r))}else t.className=r||\"\"}function b(t){return this._listeners[t.type](e.event&&e.event(t)||t)}var x=[],w=0,O=!1,_=!1;function S(){for(var t;t=x.shift();)e.afterMount&&e.afterMount(t),t.componentDidMount&&t.componentDidMount()}function C(t,e,n,r,o,i){w++||(O=null!=o&&void 0!==o.ownerSVGElement,_=null!=t&&!(\"__preactattr_\"in t));var u=E(t,e,n,r,i);return o&&u.parentNode!==o&&o.appendChild(u),--w||(_=!1,i||S()),u}function E(t,e,n,r,o){var i=t,u=O;if(null!=e&&\"boolean\"!=typeof e||(e=\"\"),\"string\"==typeof e||\"number\"==typeof e)return t&&void 0!==t.splitText&&t.parentNode&&(!t._component||o)?t.nodeValue!=e&&(t.nodeValue=e):(i=document.createTextNode(e),t&&(t.parentNode&&t.parentNode.replaceChild(i,t),I(t,!0))),i.__preactattr_=!0,i;var a,c,s=e.nodeName;if(\"function\"==typeof s)return function(t,e,n,r){var o=t&&t._component,i=o,u=t,a=o&&t._componentConstructor===e.nodeName,c=a,s=m(e);for(;o&&!c&&(o=o._parentComponent);)c=o.constructor===e.nodeName;o&&c&&(!r||o._component)?(k(o,s,3,n,r),t=o.base):(i&&!a&&(R(i),t=u=null),o=P(e.nodeName,s,n),t&&!o.nextBase&&(o.nextBase=t,u=null),k(o,s,1,n,r),t=o.base,u&&t!==u&&(u._component=null,I(u,!1)));return t}(t,e,n,r);if(O=\"svg\"===s||\"foreignObject\"!==s&&O,s=String(s),(!t||!v(t,s))&&(a=s,(c=O?document.createElementNS(\"http://www.w3.org/2000/svg\",a):document.createElement(a)).normalizedNodeName=a,i=c,t)){for(;t.firstChild;)i.appendChild(t.firstChild);t.parentNode&&t.parentNode.replaceChild(i,t),I(t,!0)}var l=i.firstChild,f=i.__preactattr_,p=e.children;if(null==f){f=i.__preactattr_={};for(var d=i.attributes,b=d.length;b--;)f[d[b].name]=d[b].value}return!_&&p&&1===p.length&&\"string\"==typeof p[0]&&null!=l&&void 0!==l.splitText&&null==l.nextSibling?l.nodeValue!=p[0]&&(l.nodeValue=p[0]):(p&&p.length||null!=l)&&function(t,e,n,r,o){var i,u,a,c,s,l=t.childNodes,f=[],p={},d=0,v=0,m=l.length,g=0,b=e?e.length:0;if(0!==m)for(var x=0;x<m;x++){var w=l[x],O=w.__preactattr_;null!=(_=b&&O?w._component?w._component.__key:O.key:null)?(d++,p[_]=w):(O||(void 0!==w.splitText?!o||w.nodeValue.trim():o))&&(f[g++]=w)}if(0!==b)for(x=0;x<b;x++){var _;if(s=null,null!=(_=(c=e[x]).key))d&&void 0!==p[_]&&(s=p[_],p[_]=void 0,d--);else if(v<g)for(i=v;i<g;i++)if(void 0!==f[i]&&h(u=f[i],c,o)){s=u,f[i]=void 0,i===g-1&&g--,i===v&&v++;break}s=E(s,c,n,r),a=l[x],s&&s!==t&&s!==a&&(null==a?t.appendChild(s):s===a.nextSibling?y(a):t.insertBefore(s,a))}if(d)for(var x in p)void 0!==p[x]&&I(p[x],!1);for(;v<=g;)void 0!==(s=f[g--])&&I(s,!1)}(i,p,n,r,_||null!=f.dangerouslySetInnerHTML),function(t,e,n){var r;for(r in n)e&&null!=e[r]||null==n[r]||g(t,r,n[r],n[r]=void 0,O);for(r in e)\"children\"===r||\"innerHTML\"===r||r in n&&e[r]===(\"value\"===r||\"checked\"===r?t[r]:n[r])||g(t,r,n[r],n[r]=e[r],O)}(i,e.attributes,f),O=u,i}function I(t,e){var n=t._component;n?R(n):(null!=t.__preactattr_&&c(t.__preactattr_.ref,null),!1!==e&&null!=t.__preactattr_||y(t),j(t))}function j(t){for(t=t.lastChild;t;){var e=t.previousSibling;I(t,!0),t=e}}var A=[];function P(t,e,n){var r,o=A.length;for(t.prototype&&t.prototype.render?(r=new t(e,n),M.call(r,e,n)):((r=new M(e,n)).constructor=t,r.render=N);o--;)if(A[o].constructor===t)return r.nextBase=A[o].nextBase,A.splice(o,1),r;return r}function N(t,e,n){return this.constructor(t,n)}function k(t,n,r,o,i){t._disable||(t._disable=!0,t.__ref=n.ref,t.__key=n.key,delete n.ref,delete n.key,void 0===t.constructor.getDerivedStateFromProps&&(!t.base||i?t.componentWillMount&&t.componentWillMount():t.componentWillReceiveProps&&t.componentWillReceiveProps(n,o)),o&&o!==t.context&&(t.prevContext||(t.prevContext=t.context),t.context=o),t.prevProps||(t.prevProps=t.props),t.props=n,t._disable=!1,0!==r&&(1!==r&&!1===e.syncComponentUpdates&&t.base?p(t):T(t,1,i)),c(t.__ref,t))}function T(t,n,r,o){if(!t._disable){var i,u,c,s=t.props,l=t.state,f=t.context,p=t.prevProps||s,d=t.prevState||l,h=t.prevContext||f,v=t.base,y=t.nextBase,g=v||y,b=t._component,O=!1,_=h;if(t.constructor.getDerivedStateFromProps&&(l=a(a({},l),t.constructor.getDerivedStateFromProps(s,l)),t.state=l),v&&(t.props=p,t.state=d,t.context=h,2!==n&&t.shouldComponentUpdate&&!1===t.shouldComponentUpdate(s,l,f)?O=!0:t.componentWillUpdate&&t.componentWillUpdate(s,l,f),t.props=s,t.state=l,t.context=f),t.prevProps=t.prevState=t.prevContext=t.nextBase=null,t._dirty=!1,!O){i=t.render(s,l,f),t.getChildContext&&(f=a(a({},f),t.getChildContext())),v&&t.getSnapshotBeforeUpdate&&(_=t.getSnapshotBeforeUpdate(p,d));var E,j,A=i&&i.nodeName;if(\"function\"==typeof A){var N=m(i);(u=b)&&u.constructor===A&&N.key==u.__key?k(u,N,1,f,!1):(E=u,t._component=u=P(A,N,f),u.nextBase=u.nextBase||y,u._parentComponent=t,k(u,N,0,f,!1),T(u,1,r,!0)),j=u.base}else c=g,(E=b)&&(c=t._component=null),(g||1===n)&&(c&&(c._component=null),j=C(c,i,f,r||!v,g&&g.parentNode,!0));if(g&&j!==g&&u!==b){var M=g.parentNode;M&&j!==M&&(M.replaceChild(j,g),E||(g._component=null,I(g,!1)))}if(E&&R(E),t.base=j,j&&!o){for(var L=t,D=t;D=D._parentComponent;)(L=D).base=j;j._component=L,j._componentConstructor=L.constructor}}for(!v||r?x.push(t):O||(t.componentDidUpdate&&t.componentDidUpdate(p,d,_),e.afterUpdate&&e.afterUpdate(t));t._renderCallbacks.length;)t._renderCallbacks.pop().call(t);w||o||S()}}function R(t){e.beforeUnmount&&e.beforeUnmount(t);var n=t.base;t._disable=!0,t.componentWillUnmount&&t.componentWillUnmount(),t.base=null;var r=t._component;r?R(r):n&&(null!=n.__preactattr_&&c(n.__preactattr_.ref,null),t.nextBase=n,y(n),A.push(t),j(n)),c(t.__ref,null)}function M(t,e){this._dirty=!0,this.context=e,this.props=t,this.state=this.state||{},this._renderCallbacks=[]}function L(t,e,n){return C(n,t,{},!1,e,!1)}a(M.prototype,{setState:function(t,e){this.prevState||(this.prevState=this.state),this.state=a(a({},this.state),\"function\"==typeof t?t(this.state,this.props):t),e&&this._renderCallbacks.push(e),p(this)},forceUpdate:function(t){t&&this._renderCallbacks.push(t),T(this,2)},render:function(){}});n(700),n(4728),n(880),n(9836),n(7476);function D(t,e){return D=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},D(t,e)}var B=function(t){var e,n;function r(){for(var e,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(e=t.call.apply(t,[this].concat(r))||this).state={bump:!1,debounced:!1},e}n=t,(e=r).prototype=Object.create(n.prototype),e.prototype.constructor=e,D(e,n);var o=r.prototype;return o.componentWillMount=function(){var t,e,n,r,o=this;this.debounceStatusUpdate=(t=function(){if(!o.state.debounced){var t=!o.props.isInFocus||o.props.validChoiceMade;o.setState((function(e){return{bump:!e.bump,debounced:!0,silenced:t}}))}},e=1400,function(){var o=this,i=arguments,u=n&&!r;clearTimeout(r),r=setTimeout((function(){r=null,n||t.apply(o,i)}),e),u&&t.apply(o,i)})},o.componentWillReceiveProps=function(t){t.queryLength;this.setState({debounced:!1})},o.render=function(){var t=this.props,e=t.id,n=t.length,r=t.queryLength,o=t.minQueryLength,i=t.selectedOption,a=t.selectedOptionIndex,c=t.tQueryTooShort,s=t.tNoResults,l=t.tSelectedOption,f=t.tResults,p=t.className,d=this.state,h=d.bump,v=d.debounced,m=d.silenced,y=r<o,g=0===n,b=i?l(i,n,a):\"\",x=null;return x=y?c(o):g?s():f(n,b),this.debounceStatusUpdate(),u(\"div\",{className:p,style:{border:\"0\",clip:\"rect(0 0 0 0)\",height:\"1px\",marginBottom:\"-1px\",marginRight:\"-1px\",overflow:\"hidden\",padding:\"0\",position:\"absolute\",whiteSpace:\"nowrap\",width:\"1px\"}},u(\"div\",{id:e+\"__status--A\",role:\"status\",\"aria-atomic\":\"true\",\"aria-live\":\"polite\"},!m&&v&&h?x:\"\"),u(\"div\",{id:e+\"__status--B\",role:\"status\",\"aria-atomic\":\"true\",\"aria-live\":\"polite\"},m||!v||h?\"\":x))},r}(M);B.defaultProps={tQueryTooShort:function(t){return\"Type in \"+t+\" or more characters for results\"},tNoResults:function(){return\"No search results\"},tSelectedOption:function(t,e,n){return t+\" \"+(n+1)+\" of \"+e+\" is highlighted\"},tResults:function(t,e){return t+\" \"+(1===t?\"result\":\"results\")+\" \"+(1===t?\"is\":\"are\")+\" available. \"+e}};var F=function(t){return u(\"svg\",{version:\"1.1\",xmlns:\"http://www.w3.org/2000/svg\",className:t.className,focusable:\"false\"},u(\"g\",{stroke:\"none\",fill:\"none\",\"fill-rule\":\"evenodd\"},u(\"polygon\",{fill:\"#000000\",points:\"0 0 22 0 11 17\"})))};function U(){return U=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},U.apply(this,arguments)}function V(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}function q(t,e){return q=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},q(t,e)}var W={13:\"enter\",27:\"escape\",32:\"space\",38:\"up\",40:\"down\"};function H(){return\"undefined\"!=typeof navigator&&!(!navigator.userAgent.match(/(iPod|iPhone|iPad)/g)||!navigator.userAgent.match(/AppleWebKit/g))}var K=function(t){var e,n;function r(e){var n;return(n=t.call(this,e)||this).elementReferences={},n.state={focused:null,hovered:null,menuOpen:!1,options:e.defaultValue?[e.defaultValue]:[],query:e.defaultValue,validChoiceMade:!1,selected:null,ariaHint:!0},n.handleComponentBlur=n.handleComponentBlur.bind(V(n)),n.handleKeyDown=n.handleKeyDown.bind(V(n)),n.handleUpArrow=n.handleUpArrow.bind(V(n)),n.handleDownArrow=n.handleDownArrow.bind(V(n)),n.handleEnter=n.handleEnter.bind(V(n)),n.handlePrintableKey=n.handlePrintableKey.bind(V(n)),n.handleListMouseLeave=n.handleListMouseLeave.bind(V(n)),n.handleOptionBlur=n.handleOptionBlur.bind(V(n)),n.handleOptionClick=n.handleOptionClick.bind(V(n)),n.handleOptionFocus=n.handleOptionFocus.bind(V(n)),n.handleOptionMouseDown=n.handleOptionMouseDown.bind(V(n)),n.handleOptionMouseEnter=n.handleOptionMouseEnter.bind(V(n)),n.handleInputBlur=n.handleInputBlur.bind(V(n)),n.handleInputChange=n.handleInputChange.bind(V(n)),n.handleInputClick=n.handleInputClick.bind(V(n)),n.handleInputFocus=n.handleInputFocus.bind(V(n)),n.pollInputElement=n.pollInputElement.bind(V(n)),n.getDirectInputChanges=n.getDirectInputChanges.bind(V(n)),n}n=t,(e=r).prototype=Object.create(n.prototype),e.prototype.constructor=e,q(e,n);var o=r.prototype;return o.isQueryAnOption=function(t,e){var n=this;return-1!==e.map((function(t){return n.templateInputValue(t).toLowerCase()})).indexOf(t.toLowerCase())},o.componentDidMount=function(){this.pollInputElement()},o.componentWillUnmount=function(){clearTimeout(this.$pollInput)},o.pollInputElement=function(){var t=this;this.getDirectInputChanges(),this.$pollInput=setTimeout((function(){t.pollInputElement()}),100)},o.getDirectInputChanges=function(){var t=this.elementReferences[-1];t&&t.value!==this.state.query&&this.handleInputChange({target:{value:t.value}})},o.componentDidUpdate=function(t,e){var n=this.state.focused,r=null===n,o=e.focused!==n;o&&!r&&this.elementReferences[n].focus();var i=-1===n,u=o&&null===e.focused;if(i&&u){var a=this.elementReferences[n];a.setSelectionRange(0,a.value.length)}},o.hasAutoselect=function(){return!H()&&this.props.autoselect},o.templateInputValue=function(t){var e=this.props.templates&&this.props.templates.inputValue;return e?e(t):t},o.templateSuggestion=function(t){var e=this.props.templates&&this.props.templates.suggestion;return e?e(t):t},o.handleComponentBlur=function(t){var e,n=this.state,r=n.options,o=n.query,i=n.selected;this.props.confirmOnBlur?(e=t.query||o,this.props.onConfirm(r[i])):e=o,this.setState({focused:null,menuOpen:t.menuOpen||!1,query:e,selected:null,validChoiceMade:this.isQueryAnOption(e,r)})},o.handleListMouseLeave=function(t){this.setState({hovered:null})},o.handleOptionBlur=function(t,e){var n=this.state,r=n.focused,o=n.menuOpen,i=n.options,u=n.selected,a=null===t.relatedTarget,c=t.relatedTarget===this.elementReferences[-1],s=r!==e&&-1!==r;if(!s&&a||!(s||c)){var l=o&&H();this.handleComponentBlur({menuOpen:l,query:this.templateInputValue(i[u])})}},o.handleInputBlur=function(t){var e=this.state,n=e.focused,r=e.menuOpen,o=e.options,i=e.query,u=e.selected;if(!(-1!==n)){var a=r&&H(),c=H()?i:this.templateInputValue(o[u]);this.handleComponentBlur({menuOpen:a,query:c})}},o.handleInputChange=function(t){var e=this,n=this.props,r=n.minLength,o=n.source,i=n.showAllValues,u=this.hasAutoselect(),a=t.target.value,c=0===a.length,s=this.state.query!==a,l=a.length>=r;this.setState({query:a,ariaHint:c}),i||!c&&s&&l?o(a,(function(t){var n=t.length>0;e.setState({menuOpen:n,options:t,selected:u&&n?0:-1,validChoiceMade:!1})})):!c&&l||this.setState({menuOpen:!1,options:[]})},o.handleInputClick=function(t){this.handleInputChange(t)},o.handleInputFocus=function(t){var e=this.state,n=e.query,r=e.validChoiceMade,o=e.options,i=this.props.minLength,u=!r&&n.length>=i&&o.length>0;u?this.setState((function(t){var e=t.menuOpen;return{focused:-1,menuOpen:u||e,selected:-1}})):this.setState({focused:-1})},o.handleOptionFocus=function(t){this.setState({focused:t,hovered:null,selected:t})},o.handleOptionMouseEnter=function(t,e){H()||this.setState({hovered:e})},o.handleOptionClick=function(t,e){var n=this.state.options[e],r=this.templateInputValue(n);this.props.onConfirm(n),this.setState({focused:-1,hovered:null,menuOpen:!1,query:r,selected:-1,validChoiceMade:!0}),this.forceUpdate()},o.handleOptionMouseDown=function(t){t.preventDefault()},o.handleUpArrow=function(t){t.preventDefault();var e=this.state,n=e.menuOpen,r=e.selected;-1!==r&&n&&this.handleOptionFocus(r-1)},o.handleDownArrow=function(t){var e=this;if(t.preventDefault(),this.props.showAllValues&&!1===this.state.menuOpen)t.preventDefault(),this.props.source(\"\",(function(t){e.setState({menuOpen:!0,options:t,selected:0,focused:0,hovered:null})}));else if(!0===this.state.menuOpen){var n=this.state,r=n.menuOpen,o=n.options,i=n.selected;i!==o.length-1&&r&&this.handleOptionFocus(i+1)}},o.handleSpace=function(t){var e=this;this.props.showAllValues&&!1===this.state.menuOpen&&\"\"===this.state.query&&(t.preventDefault(),this.props.source(\"\",(function(t){e.setState({menuOpen:!0,options:t})}))),-1!==this.state.focused&&(t.preventDefault(),this.handleOptionClick(t,this.state.focused))},o.handleEnter=function(t){this.state.menuOpen&&(t.preventDefault(),this.state.selected>=0&&this.handleOptionClick(t,this.state.selected))},o.handlePrintableKey=function(t){var e=this.elementReferences[-1];t.target===e||e.focus()},o.handleKeyDown=function(t){switch(W[t.keyCode]){case\"up\":this.handleUpArrow(t);break;case\"down\":this.handleDownArrow(t);break;case\"space\":this.handleSpace(t);break;case\"enter\":this.handleEnter(t);break;case\"escape\":this.handleComponentBlur({query:this.state.query});break;default:((e=t.keyCode)>47&&e<58||32===e||8===e||e>64&&e<91||e>95&&e<112||e>185&&e<193||e>218&&e<223)&&this.handlePrintableKey(t)}var e},o.render=function(){var t,e=this,n=this.props,r=n.cssNamespace,o=n.displayMenu,i=n.id,a=n.minLength,c=n.name,s=n.placeholder,l=n.required,f=n.showAllValues,p=n.tNoResults,d=n.tStatusQueryTooShort,h=n.tStatusNoResults,v=n.tStatusSelectedOption,m=n.tStatusResults,y=n.tAssistiveHint,g=n.dropdownArrow,b=n.menuAttributes,x=n.inputClasses,w=n.hintClasses,O=n.menuClasses,_=this.state,S=_.focused,C=_.hovered,E=_.menuOpen,I=_.options,j=_.query,A=_.selected,P=_.ariaHint,N=_.validChoiceMade,k=this.hasAutoselect(),T=-1===S,R=0===I.length,M=0!==j.length,L=j.length>=a,D=this.props.showNoOptionsFound&&T&&R&&M&&L,F=r+\"__wrapper\",V=r+\"__status\",q=r+\"__dropdown-arrow-down\",W=-1!==S&&null!==S,K=r+\"__option\",z=r+\"__hint\",G=this.templateInputValue(I[A]),Q=G&&0===G.toLowerCase().indexOf(j.toLowerCase())&&k?j+G.substr(j.length):\"\",$=i+\"__assistiveHint\",Y={\"aria-describedby\":P?$:null,\"aria-expanded\":E?\"true\":\"false\",\"aria-activedescendant\":W?i+\"__option--\"+S:null,\"aria-controls\":i+\"__listbox\",\"aria-autocomplete\":this.hasAutoselect()?\"both\":\"list\"};f&&\"string\"==typeof(t=g({className:q}))&&(t=u(\"div\",{className:r+\"__dropdown-arrow-down-wrapper\",dangerouslySetInnerHTML:{__html:t}}));var X=r+\"__input\",J=[X,this.props.showAllValues?X+\"--show-all-values\":X+\"--default\"];null!==S&&J.push(X+\"--focused\"),x&&J.push(x);var Z=r+\"__menu\",tt=[Z,Z+\"--\"+o,Z+\"--\"+(E||D?\"visible\":\"hidden\")];O&&tt.push(O),(null!=b&&b.class||null!=b&&b.className)&&tt.push((null==b?void 0:b.class)||(null==b?void 0:b.className));var et=Object.assign({\"aria-labelledby\":i},b,{id:i+\"__listbox\",role:\"listbox\",className:tt.join(\" \"),onMouseLeave:this.handleListMouseLeave});return delete et.class,u(\"div\",{className:F,onKeyDown:this.handleKeyDown},u(B,{id:i,length:I.length,queryLength:j.length,minQueryLength:a,selectedOption:this.templateInputValue(I[A]),selectedOptionIndex:A,validChoiceMade:N,isInFocus:null!==this.state.focused,tQueryTooShort:d,tNoResults:h,tSelectedOption:v,tResults:m,className:V}),Q&&u(\"span\",null,u(\"input\",{className:[z,null===w?x:w].filter(Boolean).join(\" \"),readonly:!0,tabIndex:\"-1\",value:Q})),u(\"input\",U({},Y,{autoComplete:\"off\",className:J.join(\" \"),id:i,onClick:this.handleInputClick,onBlur:this.handleInputBlur},{onInput:this.handleInputChange},{onFocus:this.handleInputFocus,name:c,placeholder:s,ref:function(t){e.elementReferences[-1]=t},type:\"text\",role:\"combobox\",required:l,value:j})),t,u(\"ul\",et,I.map((function(t,n){var r=(-1===S?A===n:S===n)&&null===C?\" \"+K+\"--focused\":\"\",o=n%2?\" \"+K+\"--odd\":\"\",a=H()?\"<span id=\"+i+\"__option-suffix--\"+n+' style=\"border:0;clip:rect(0 0 0 0);height:1px;marginBottom:-1px;marginRight:-1px;overflow:hidden;padding:0;position:absolute;whiteSpace:nowrap;width:1px\"> '+(n+1)+\" of \"+I.length+\"</span>\":\"\";return u(\"li\",{\"aria-selected\":S===n?\"true\":\"false\",className:\"\"+K+r+o,dangerouslySetInnerHTML:{__html:e.templateSuggestion(t)+a},id:i+\"__option--\"+n,key:n,onBlur:function(t){return e.handleOptionBlur(t,n)},onClick:function(t){return e.handleOptionClick(t,n)},onMouseDown:e.handleOptionMouseDown,onMouseEnter:function(t){return e.handleOptionMouseEnter(t,n)},ref:function(t){e.elementReferences[n]=t},role:\"option\",tabIndex:\"-1\",\"aria-posinset\":n+1,\"aria-setsize\":I.length})})),D&&u(\"li\",{className:K+\" \"+K+\"--no-results\",role:\"option\",\"aria-disabled\":\"true\"},p())),u(\"span\",{id:$,style:{display:\"none\"}},y()))},r}(M);function z(t){if(!t.element)throw new Error(\"element is not defined\");if(!t.id)throw new Error(\"id is not defined\");if(!t.source)throw new Error(\"source is not defined\");Array.isArray(t.source)&&(t.source=G(t.source)),L(u(K,t),t.element)}K.defaultProps={autoselect:!1,cssNamespace:\"autocomplete\",defaultValue:\"\",displayMenu:\"inline\",minLength:0,name:\"input-autocomplete\",placeholder:\"\",onConfirm:function(){},confirmOnBlur:!0,showNoOptionsFound:!0,showAllValues:!1,required:!1,tNoResults:function(){return\"No results found\"},tAssistiveHint:function(){return\"When autocomplete results are available use up and down arrows to review and enter to select.  Touch device users, explore by touch or with swipe gestures.\"},dropdownArrow:F,menuAttributes:{},inputClasses:null,hintClasses:null,menuClasses:null};var G=function(t){return function(e,n){n(t.filter((function(t){return-1!==t.toLowerCase().indexOf(e.toLowerCase())})))}};z.enhanceSelectElement=function(t){if(!t.selectElement)throw new Error(\"selectElement is not defined\");if(!t.source){var e=[].filter.call(t.selectElement.options,(function(e){return e.value||t.preserveNullOptions}));t.source=e.map((function(t){return t.textContent||t.innerText}))}if(t.onConfirm=t.onConfirm||function(e){var n=[].filter.call(t.selectElement.options,(function(t){return(t.textContent||t.innerText)===e}))[0];n&&(n.selected=!0)},t.selectElement.value||void 0===t.defaultValue){var n=t.selectElement.options[t.selectElement.options.selectedIndex];t.defaultValue=n.textContent||n.innerText}void 0===t.name&&(t.name=\"\"),void 0===t.id&&(void 0===t.selectElement.id?t.id=\"\":t.id=t.selectElement.id),void 0===t.autoselect&&(t.autoselect=!0);var r=document.createElement(\"div\");t.selectElement.parentNode.insertBefore(r,t.selectElement),z(Object.assign({},t,{element:r})),t.selectElement.style.display=\"none\",t.selectElement.id=t.selectElement.id+\"-select\"};var Q=z}(),r=r.default}()}));\n//# sourceMappingURL=accessible-autocomplete.min.js.map","import accessibleAutocomplete from 'accessible-autocomplete'\nimport { DigitalMarketplaceFrontendComponent } from '../../digitalmarketplace-frontend-component'\n\nclass SelectCountryFromForm implements DigitalMarketplaceFrontendComponent {\n  static moduleName = 'dm-select-country-from-form'\n\n  $module: JQuery<HTMLElement>\n\n  constructor ($module: JQuery<HTMLElement>) {\n    this.$module = $module\n  }\n\n  init () {\n    accessibleAutocomplete.enhanceSelectElement({\n      selectElement: this.$module.get(0)\n    })\n  }\n}\n\nexport { SelectCountryFromForm }\n","import { ComplianceCommunicationAttachments } from './components/compliance-communication-attachments/compliance-communication-attachments'\nimport { CookieBanner } from './components/cookie-banner/cookie-banner'\nimport { CookieSettings } from './scripts/cookies/settings'\nimport { DigitalMarketplaceFrontendComponent } from './digitalmarketplace-frontend-component'\nimport { initGoogleAnalytics } from './scripts/analytics/init-google-analytics'\nimport { ListInput } from './components/list-input/list-input'\nimport { OptionSelect } from './components/option-select/option-select'\nimport { Question } from './components/question/question'\nimport { QuestionCheckboxTree } from './components/question-checkbox-tree/question-checkbox-tree'\nimport { QuestionList } from './components/question-list/question-list'\nimport { QuestionListMultiquestionClientSide } from './components/question-list-multiquestion-client-side/question-list-multiquestion-client-side'\nimport { SearchBox } from './components/search-box/search-box'\nimport { SelectCountryFromForm } from './components/select-country-from-form/select-country-from-form'\n\nconst createAll = (Component: typeof DigitalMarketplaceFrontendComponent) => {\n  $(`[data-module=\"${Component.moduleName}\"]`).each((_index, componentElement) => {\n    new Component($(componentElement)).init()\n  })\n}\n\nconst initAll = () => {\n  const components: Array<typeof DigitalMarketplaceFrontendComponent> = [\n    ComplianceCommunicationAttachments,\n    CookieSettings,\n    CookieBanner,\n    ListInput,\n    OptionSelect,\n    QuestionCheckboxTree,\n    QuestionList,\n    QuestionListMultiquestionClientSide,\n    Question,\n    SearchBox,\n    SelectCountryFromForm\n  ]\n\n  components.forEach((Component) => {\n    createAll(Component)\n  })\n\n  initGoogleAnalytics()\n}\n\nexport { initAll, createAll }\n"],"names":["assign","target","i","arguments","length","source","key","defaultConverter","read","value","slice","replace","decodeURIComponent","write","encodeURIComponent","init","converter","defaultAttributes","set","name","attributes","document","expires","Date","now","toUTCString","escape","stringifiedAttributes","attributeName","split","cookie","get","cookies","jar","parts","join","found","e","Object","create","remove","withAttributes","withConverter","freeze","api","path","Cookies","isInitialised","$root","moduleName","HTMLElement","hasAttribute","isSupported","$scope","body","classList","contains","isArray","option","Array","isObject","formatErrorMessage","Component","message","GOVUKFrontendError","_Error","_this","_len","args","_key","call","apply","concat","_inheritsLoose","_wrapNativeSuper","Error","SupportError","_GOVUKFrontendError","_this2","supportMessage","HTMLScriptElement","prototype","ConfigError","_GOVUKFrontendError2","_this3","_len2","_key2","ElementError","_GOVUKFrontendError3","messageOrOptions","_this4","component","identifier","element","expectedType","InitError","_GOVUKFrontendError4","componentOrMessage","_this5","_$root","childConstructor","constructor","elementType","checkSupport","checkInitialised","setAttribute","_proto","_createClass","configOverride","Symbol","ConfigurableComponent","_Component","config","_config","defaults","datasetConfig","normaliseDataset","dataset","mergeConfigs","param","normaliseString","property","trimmedValue","trim","output","outputType","type","includes","isFinite","Number","schema","out","entries","properties","_i","_entries","entry","namespace","field","toString","extractConfigByNamespace","formattedConfigObject","configObjects","_i2","_configObjects","configObject","_i3","_Object$keys","keys","override","_newObject","newObject","_i5","_Object$entries2","_Object$entries2$_i","current","keyParts","_iterator2","_createForOfIteratorHelperLoose","_step2","done","_step2$value","index","I18n","translations","_config$locale","locale","documentElement","lang","t","lookupKey","options","translation","count","translationPluralForm","getPluralSuffix","match","replacePlaceholders","translationString","formatter","Intl","NumberFormat","supportedLocalesOf","undefined","placeholderWithBraces","placeholderKey","hasOwnProperty","placeholderValue","format","hasIntlPluralRulesSupport","Boolean","window","PluralRules","preferredForm","select","selectPluralFormUsingFallbackRules","console","warn","Math","abs","floor","ruleset","getPluralRulesForLocale","pluralRules","localeShort","pluralRule","pluralRulesMap","languages","arabic","chinese","french","german","irish","russian","scottish","spanish","welsh","n","lastTwo","last","closestAttributeValue","$element","$closestElementWithAttribute","closest","getAttribute","FileUpload","_ConfigurableComponen","$input","$button","$status","i18n","id","$announcements","enteredAnotherElement","querySelector","$label","findLabel","createElement","add","ariaDescribedBy","className","innerText","appendChild","commaSpan","containerSpan","buttonSpan","insertAdjacentText","instructionSpan","addEventListener","onClick","bind","event","preventDefault","insertAdjacentElement","onChange","updateDisabledState","observeDisabledState","onDrop","updateDropzoneVisibility","disabled","hideDraggingState","Node","dataTransfer","isContainingFiles","showDraggingState","files","dispatchEvent","CustomEvent","fileCount","click","observer","MutationObserver","mutationList","_iterator","_step","mutation","observe","toggle","chooseFilesButton","dropInstruction","noFileChosen","multipleFilesChosen","one","other","enteredDropZone","leftDropZone","hasNoTypesInfo","types","isDraggingFiles","some","module","self"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPA,MAAM,qBAAqB,CAAA;AACzB,IAAA,OAAO,UAAU,GAAG,6BAA6B;AAEjD,IAAA,OAAO;AAEP,IAAA,WAAA,CAAa,OAA4B,EAAA;AACvC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;;IAGxB,IAAI,GAAA;QACF,sBAAsB,CAAC,oBAAoB,CAAC;YAC1C,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAClC,SAAA,CAAC;;;;ACDN,MAAM,SAAS,GAAG,CAAC,SAAqD,KAAI;AAC1E,IAAA,CAAC,CAAC,CAAA,cAAA,EAAiB,SAAS,CAAC,UAAU,CAAI,EAAA,CAAA,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,gBAAgB,KAAI;QAC7E,IAAI,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE;AAC3C,KAAC,CAAC;AACJ;AAEM,MAAA,OAAO,GAAG,MAAK;AACnB,IAAA,MAAM,UAAU,GAAsD;QACpE,kCAAkC;QAClC,cAAc;QACd,YAAY;QACZ,SAAS;QACT,YAAY;QACZ,oBAAoB;QACpB,YAAY;QACZ,mCAAmC;QACnC,QAAQ;QACR,SAAS;QACT;KACD;AAED,IAAA,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;QAC/B,SAAS,CAAC,SAAS,CAAC;AACtB,KAAC,CAAC;AAEF,IAAA,mBAAmB,EAAE;AACvB;;;;","x_google_ignoreList":[2,7,8,9,10,11,12,13,24]}