digitalmarketplace-frontend
Version:
Digital Marketplace Frontend contains assets and components used in Digital Marketplace projects
1 lines • 82 kB
Source Map (JSON)
{"version":3,"file":"compliance-communication-attachments.bundle.mjs","sources":["../../../../../../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"],"sourcesContent":["function getFragmentFromUrl(url) {\n if (!url.includes('#')) {\n return undefined;\n }\n return url.split('#').pop();\n}\nfunction getBreakpoint(name) {\n const property = `--govuk-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) as HTMLElement)\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"],"names":["isInitialised","$root","moduleName","HTMLElement","hasAttribute","isSupported","$scope","document","body","classList","contains","isArray","option","Array","isObject","formatErrorMessage","Component","message","GOVUKFrontendError","_Error","_this","_len","arguments","length","args","_key","call","apply","concat","name","_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","key","get","configOverride","Symbol","ConfigurableComponent","_Component","config","_config","defaults","datasetConfig","normaliseDataset","dataset","mergeConfigs","param","normaliseString","value","property","trimmedValue","trim","output","outputType","type","includes","isFinite","Number","schema","out","entries","Object","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","split","_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","replace","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","attributeName","$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","target","Node","dataTransfer","isContainingFiles","showDraggingState","remove","files","dispatchEvent","CustomEvent","fileCount","click","observer","MutationObserver","mutationList","_iterator","_step","mutation","observe","attributes","toggle","freeze","chooseFilesButton","dropInstruction","noFileChosen","multipleFilesChosen","one","other","enteredDropZone","leftDropZone","hasNoTypesInfo","types","isDraggingFiles","some"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}