{"version":3,"file":"js/2893-7d51328c5440b42f9172.js","mappings":"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","sources":["webpack://app/../usr/local/bundle/gems/decidim-core-0.27.4/app/packs/src/decidim/configuration.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.27.4/app/packs/src/decidim/confirm.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.27.4/app/packs/src/decidim/direct_uploads/uploader.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.27.4/app/packs/src/decidim/direct_uploads/upload_utility.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.27.4/app/packs/src/decidim/direct_uploads/upload_modal.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.27.4/app/packs/src/decidim/direct_uploads/upload_field.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.27.4/app/packs/src/decidim/editor.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.27.4/app/packs/src/decidim/editor/linebreak_module.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.27.4/app/packs/src/decidim/input_tags.js"],"sourcesContent":["export default class Configuration {\n constructor() {\n this.config = {};\n }\n\n set(key, value = null) {\n if (typeof key === \"object\") {\n this.config = { ...this.config, ...key };\n } else {\n this.config[key] = value;\n }\n }\n\n get(key) {\n return this.config[key];\n }\n}\n","/**\n * A custom confirm dialog for Decidim based on Foundation reveals.\n *\n * Note that this needs to be loaded before the application JS in order for\n * it to gain control over the confirm events BEFORE rails-ujs is loaded.\n */\n\nimport Rails from \"@rails/ujs\"\n\nlet TEMPLATE_HTML = null;\n\nclass ConfirmDialog {\n constructor(sourceElement) {\n this.$modal = $(TEMPLATE_HTML);\n this.$source = sourceElement;\n this.$content = $(\".confirm-modal-content\", this.$modal);\n this.$buttonConfirm = $(\"[data-confirm-ok]\", this.$modal);\n this.$buttonCancel = $(\"[data-confirm-cancel]\", this.$modal);\n\n // Avoid duplicate IDs and append the new modal to the body\n const titleId = `confirm-modal-title-${Math.random().toString(36).substring(7)}`;\n\n this.$modal.removeAttr(\"id\");\n $(\"#confirm-modal-title\", this.$modal).attr(\"id\", titleId);\n this.$modal.attr(\"aria-labelledby\", titleId);\n\n $(\"body\").append(this.$modal);\n this.$modal.foundation();\n }\n\n confirm(message) {\n this.$content.html(message);\n\n this.$buttonConfirm.off(\"click\");\n this.$buttonCancel.off(\"click\");\n\n return new Promise((resolve) => {\n this.$buttonConfirm.on(\"click\", (ev) => {\n ev.preventDefault();\n\n this.$modal.foundation(\"close\");\n resolve(true);\n this.$source.focus();\n });\n this.$buttonCancel.on(\"click\", (ev) => {\n ev.preventDefault();\n\n this.$modal.foundation(\"close\");\n resolve(false);\n this.$source.focus();\n });\n\n this.$modal.foundation(\"open\").on(\"closed.zf.reveal\", () => {\n this.$modal.remove();\n });\n });\n }\n}\n\n// Override the default confirm dialog by Rails\n// See:\n// https://github.com/rails/rails/blob/fba1064153d8e2f4654df7762a7d3664b93e9fc8/actionview/app/assets/javascripts/rails-ujs/features/confirm.coffee\n//\n// There is apparently a better way coming in Rails 6:\n// https://github.com/rails/rails/commit/e9aa7ecdee0aa7bb4dcfa5046881bde2f1fe21cc#diff-e1aaa45200e9adcbcb8baf1c5375b5d1\n//\n// The old approach is broken according to https://github.com/rails/rails/issues/36686#issuecomment-514213323\n// so for the moment this needs to be executed **before** Rails.start()\nconst allowAction = (ev, element) => {\n const message = $(element).data(\"confirm\");\n if (!message) {\n return true;\n }\n\n if (!Rails.fire(element, \"confirm\")) {\n return false;\n }\n\n if (TEMPLATE_HTML === null) {\n TEMPLATE_HTML = $(\"#confirm-modal\")[0].outerHTML;\n $(\"#confirm-modal\").remove();\n }\n\n const dialog = new ConfirmDialog(\n $(element)\n );\n dialog.confirm(message).then((answer) => {\n const completed = Rails.fire(element, \"confirm:complete\", [answer]);\n if (answer && completed) {\n // Allow the event to propagate normally and re-dispatch it without\n // the confirm data attribute which the Rails internal method is\n // checking.\n $(element).data(\"confirm\", null);\n $(element).removeAttr(\"data-confirm\");\n\n // The submit button click events won't do anything if they are\n // dispatched as is. In these cases, just submit the underlying form.\n if (ev.type === \"click\" &&\n (\n $(element).is('button[type=\"submit\"]') ||\n $(element).is('input[type=\"submit\"]')\n )\n ) {\n $(element).parents(\"form\").submit();\n } else {\n let origEv = ev.originalEvent || ev;\n let newEv = origEv;\n if (typeof Event === \"function\") {\n // Clone the event because otherwise some click events may not\n // work properly when re-dispatched.\n newEv = new origEv.constructor(origEv.type, origEv);\n }\n ev.target.dispatchEvent(newEv);\n }\n }\n });\n\n return false;\n};\nconst handleConfirm = (ev, element) => {\n if (!allowAction(ev, element)) {\n Rails.stopEverything(ev);\n }\n};\nconst getMatchingEventTarget = (ev, selector) => {\n let target = ev.target;\n while (!(!(target instanceof Element) || Rails.matches(target, selector))) {\n target = target.parentNode;\n }\n\n if (target instanceof Element) {\n return target;\n }\n\n return null;\n};\nconst handleDocumentEvent = (ev, matchSelectors) => {\n return matchSelectors.some((currentSelector) => {\n let target = getMatchingEventTarget(ev, currentSelector);\n if (target === null) {\n return false;\n }\n\n handleConfirm(ev, target);\n return true;\n });\n};\n\ndocument.addEventListener(\"click\", (ev) => {\n return handleDocumentEvent(ev, [\n Rails.linkClickSelector,\n Rails.buttonClickSelector,\n Rails.formInputClickSelector\n ]);\n});\ndocument.addEventListener(\"change\", (ev) => {\n return handleDocumentEvent(ev, [Rails.inputChangeSelector]);\n});\ndocument.addEventListener(\"submit\", (ev) => {\n return handleDocumentEvent(ev, [Rails.formSubmitSelector]);\n});\n\n// This is needed for the confirm dialog to work with Foundation Abide.\n// Abide registers its own submit click listeners since Foundation 5.6.x\n// which will be handled before the document listeners above. This would\n// break the custom confirm functionality when used with Foundation Abide.\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n $(Rails.formInputClickSelector).on(\"click.confirm\", (ev) => {\n handleConfirm(ev, getMatchingEventTarget(ev, Rails.formInputClickSelector));\n });\n});\n","import { DirectUpload } from \"@rails/activestorage\";\n\nexport class Uploader {\n constructor(modal, uploadItem, options) {\n this.modal = modal;\n this.uploadItem = uploadItem;\n this.progressBar = uploadItem.querySelector(\".progress-bar\");\n this.validationSent = false;\n this.fileTooBig = false;\n if (modal.options.maxFileSize && options.file.size > modal.options.maxFileSize) {\n this.fileTooBig = true;\n this.showError([modal.locales.file_size_too_large]);\n } else {\n this.upload = new DirectUpload(options.file, options.url, this);\n }\n }\n\n showError(errors) {\n this.progressBar.classList.add(\"filled\");\n this.progressBar.innerHTML = this.modal.locales.validation_error;\n this.uploadItem.dataset.state = \"error\";\n const errorList = this.uploadItem.querySelector(\".upload-errors\");\n errors.forEach((error) => {\n const errorItem = document.createElement(\"li\");\n errorItem.classList.add(\"form-error\", \"is-visible\");\n errorItem.innerHTML = error;\n errorList.appendChild(errorItem);\n })\n }\n\n validate(blobId) {\n const callback = (data) => {\n let errors = []\n for (const [, value] of Object.entries(data)) {\n errors = errors.concat(value);\n }\n\n this.progressBar.style.justifyContent = \"center\";\n if (errors.length === 0) {\n this.progressBar.innerHTML = this.modal.locales.uploaded;\n this.uploadItem.dataset.state = \"validated\";\n } else {\n this.showError(errors);\n }\n this.progressBar.classList.add(\"filled\");\n }\n\n if (!this.validationSent) {\n let property = this.modal.options.addAttribute;\n if (this.modal.options.titled) {\n property = \"file\"\n }\n const params = new URLSearchParams({\n resourceClass: this.modal.options.resourceClass,\n property: property,\n blob: blobId,\n formClass: this.modal.options.formObjectClass\n });\n\n fetch(`/upload_validations?${params.toString()}`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CSRF-Token\": $(\"meta[name=csrf-token]\").attr(\"content\")\n }\n }).then((response) => response.json()).then((data) => {\n callback(data);\n });\n this.validationSent = true;\n }\n }\n\n directUploadWillStoreFileWithXHR(request) {\n request.upload.addEventListener(\"progress\", (event) => {\n const progress = Math.floor(event.loaded / event.total * 100);\n let width = \"15%\";\n if (progress > 15) {\n width = `${progress}%`;\n }\n this.progressBar.style.width = width;\n\n if (progress === 100) {\n this.progressBar.innerHTML = this.modal.locales.validating;\n return;\n }\n this.progressBar.innerHTML = `${progress}%`;\n });\n }\n}\n","export const checkTitles = (parentElement, saveButton) => {\n let everyItemHasTitle = true;\n\n Array.from(parentElement.children).forEach((item) => {\n const title = item.querySelector(\"input[type='text']\").value;\n const noTitleErrorSpan = item.querySelector(\".no-title-error\");\n if (!title || title.length === 0) {\n everyItemHasTitle = false;\n saveButton.disabled = true;\n noTitleErrorSpan.classList.add(\"is-visible\");\n item.appendChild(noTitleErrorSpan);\n } else {\n noTitleErrorSpan.classList.remove(\"is-visible\");\n }\n });\n\n if (everyItemHasTitle) {\n saveButton.disabled = false;\n }\n}\n\nexport const truncateFilename = (filename, maxLength = 31) => {\n if (filename.length <= maxLength) {\n return filename;\n }\n\n const charactersFromBegin = Math.floor(maxLength / 2) - 3;\n const charactersFromEnd = maxLength - charactersFromBegin - 3;\n return `${filename.slice(0, charactersFromBegin)}...${filename.slice(-charactersFromEnd)}`;\n}\n\nexport const createHiddenInput = (elClasses, elName, elValue) => {\n const el = document.createElement(\"input\");\n el.type = \"hidden\";\n if (elClasses) {\n if (typeof (elClasses) === \"string\") {\n el.className = elClasses;\n } else {\n el.className = elClasses.join(\" \")\n }\n }\n if (elName) {\n el.name = elName;\n }\n if (elValue) {\n el.value = elValue;\n }\n return el;\n}\n","import { Uploader } from \"src/decidim/direct_uploads/uploader\";\nimport { truncateFilename, checkTitles, createHiddenInput } from \"src/decidim/direct_uploads/upload_utility\";\n\n// This class handles logic inside upload modal, but since modal is not inside the form\n// logic here moves \"upload items\" / hidden inputs to form.\nexport default class UploadModal {\n constructor(button, options = {}) {\n // Button that opens the modal.\n this.button = button;\n\n // The provided options contains the options passed from the view in the\n // `data-upload` attribute as a JSON.\n let providedOptions = {};\n try {\n // The providedOptions can contain the following keys:\n // - addAttribute - Field name / attribute of resource (e.g. avatar)\n // - resourceName - The resource to which the attribute belongs (e.g. user)\n // - resourceClass - Ruby class of the resource (e.g. Decidim::User)\n // - multiple - Defines if multiple files can be uploaded\n // - titled - Defines if file(s) can have titles\n // - maxFileSize - Defines maximum file size in bytes\n // - formObjectClass - Class of the current form object (e.g. Decidim::AccountForm)\n providedOptions = JSON.parse(button.dataset.upload);\n } catch (_e) {\n // Don't care about the parse errors, just skip the provided options.\n }\n\n this.options = Object.assign(providedOptions, options)\n\n this.name = this.button.name;\n this.modal = document.querySelector(`#${button.dataset.open}`);\n this.saveButton = this.modal.querySelector(`button.add-file-${this.name}`);\n this.attachmentCounter = 0;\n this.dropZoneEnabled = true;\n this.modalTitle = this.modal.querySelector(\".reveal__title\");\n this.uploadItems = this.modal.querySelector(\".upload-items\");\n this.locales = JSON.parse(this.uploadItems.dataset.locales);\n this.dropZone = this.modal.querySelector(\".dropzone\");\n this.input = this.dropZone.querySelector(\"input\");\n this.uploadContainer = document.querySelector(`.upload-container-for-${this.name}`);\n this.activeAttachments = this.uploadContainer.querySelector(\".active-uploads\");\n this.trashCan = this.createTrashCan();\n }\n\n uploadFile(file) {\n if (!this.dropZoneEnabled) {\n return;\n }\n\n const title = file.name.split(\".\")[0].slice(0, 31);\n const uploadItem = this.createUploadItem(file.name, title, \"init\");\n const uploader = new Uploader(this, uploadItem, {\n file: file,\n url: this.input.dataset.directUploadUrl,\n attachmentName: file.name\n });\n if (uploader.fileTooBig) {\n return;\n }\n\n uploader.upload.create((error, blob) => {\n if (error) {\n uploadItem.dataset.state = \"error\";\n const progressBar = uploadItem.querySelector(\".progress-bar\");\n progressBar.classList.add(\"filled\");\n progressBar.innerHTML = this.locales.error;\n console.error(error);\n } else {\n const ordinalNumber = this.getOrdinalNumber();\n\n const attachmentDetails = document.createElement(\"div\");\n attachmentDetails.classList.add(\"attachment-details\");\n attachmentDetails.dataset.filename = file.name;\n const titleAndFileNameSpan = document.createElement(\"span\");\n titleAndFileNameSpan.style.display = \"none\";\n attachmentDetails.appendChild(titleAndFileNameSpan);\n\n const hiddenBlobField = createHiddenInput(null, null, blob.signed_id);\n if (this.options.titled) {\n hiddenBlobField.name = `${this.options.resourceName}[${this.options.addAttribute}][${ordinalNumber}][file]`;\n } else {\n hiddenBlobField.name = `${this.options.resourceName}[${this.options.addAttribute}]`;\n }\n\n if (this.options.titled) {\n const hiddenTitleField = createHiddenInput(\"hidden-title\", `${this.options.resourceName}[${this.options.addAttribute}][${ordinalNumber}][title]`, title);\n titleAndFileNameSpan.innerHTML = `${title} (${file.name})`;\n attachmentDetails.appendChild(hiddenTitleField);\n } else {\n titleAndFileNameSpan.innerHTML = file.name;\n }\n\n if (!this.options.multiple) {\n this.cleanTrashCan();\n }\n\n attachmentDetails.appendChild(hiddenBlobField);\n uploadItem.appendChild(attachmentDetails);\n uploader.validate(blob.signed_id);\n }\n });\n this.updateDropZone();\n }\n\n getOrdinalNumber() {\n const nextOrdinalNumber = this.attachmentCounter;\n this.attachmentCounter += 1;\n return nextOrdinalNumber;\n }\n\n updateDropZone() {\n if (this.options.multiple) {\n return;\n }\n\n if (this.uploadItems.children.length > 0) {\n this.dropZone.classList.add(\"disabled\");\n this.dropZoneEnabled = false;\n this.input.disabled = true;\n } else {\n this.dropZone.classList.remove(\"disabled\");\n this.dropZoneEnabled = true;\n this.input.disabled = false;\n }\n }\n\n createUploadItem(fileName, title, state) {\n const wrapper = document.createElement(\"div\");\n wrapper.classList.add(\"upload-item\");\n wrapper.setAttribute(\"data-filename\", fileName);\n\n const firstRow = document.createElement(\"div\");\n const secondRow = document.createElement(\"div\");\n const thirdRow = document.createElement(\"div\");\n firstRow.classList.add(\"row\", \"upload-item-first-row\");\n secondRow.classList.add(\"row\", \"upload-item-second-row\");\n thirdRow.classList.add(\"row\", \"upload-item-third-row\");\n\n const fileNameSpan = document.createElement(\"span\");\n let fileNameSpanClasses = [\"columns\", \"file-name-span\"];\n if (this.options.titled) {\n fileNameSpanClasses.push(\"small-4\", \"medium-5\");\n } else {\n fileNameSpanClasses.push(\"small-12\");\n }\n fileNameSpan.classList.add(...fileNameSpanClasses);\n fileNameSpan.innerHTML = truncateFilename(fileName);\n\n const progressBar = document.createElement(\"div\");\n progressBar.classList.add(\"progress-bar\");\n if (state) {\n if (state === \"validated\") {\n progressBar.innerHTML = this.locales.uploaded;\n } else {\n progressBar.innerHTML = \"0%\";\n progressBar.style.width = \"15%\";\n }\n wrapper.dataset.state = state;\n }\n\n const progressBarBorder = document.createElement(\"div\");\n progressBarBorder.classList.add(\"progress-bar-border\");\n progressBarBorder.appendChild(progressBar);\n\n const progressBarWrapper = document.createElement(\"div\");\n progressBarWrapper.classList.add(\"columns\", \"progress-bar-wrapper\");\n progressBarWrapper.appendChild(progressBarBorder);\n if (this.options.titled) {\n progressBarWrapper.classList.add(\"small-4\", \"medium-5\");\n } else {\n progressBarWrapper.classList.add(\"small-10\");\n }\n\n const errorList = document.createElement(\"ul\");\n errorList.classList.add(\"upload-errors\");\n\n const removeButton = document.createElement(\"button\");\n removeButton.classList.add(\"columns\", \"small-3\", \"medium-2\", \"remove-upload-item\");\n removeButton.innerHTML = `× ${this.locales.remove}`;\n removeButton.addEventListener((\"click\"), (event) => {\n event.preventDefault();\n const item = this.uploadItems.querySelector(`[data-filename='${fileName}']`);\n this.trashCan.append(item);\n this.updateDropZone();\n })\n\n const titleAndFileNameSpan = document.createElement(\"span\");\n titleAndFileNameSpan.classList.add(\"columns\", \"small-5\", \"title-and-filename-span\");\n titleAndFileNameSpan.innerHTML = `${title} (${truncateFilename(fileName)})`;\n\n firstRow.appendChild(fileNameSpan);\n secondRow.appendChild(progressBarWrapper);\n thirdRow.appendChild(errorList);\n\n let titleInputContainer = null;\n if (this.options.titled) {\n const titleInput = document.createElement(\"input\");\n titleInput.classList.add(\"attachment-title\");\n titleInput.type = \"text\";\n titleInput.value = title;\n titleInput.addEventListener(\"input\", (event) => {\n event.preventDefault();\n checkTitles(this.uploadItems, this.saveButton);\n })\n titleInputContainer = document.createElement(\"div\");\n titleInputContainer.classList.add(\"columns\", \"small-5\", \"title-input-container\");\n titleInputContainer.appendChild(titleInput);\n\n const noTitleErrorSpan = document.createElement(\"span\");\n noTitleErrorSpan.classList.add(\"form-error\", \"no-title-error\");\n noTitleErrorSpan.role = \"alert\";\n noTitleErrorSpan.innerHTML = this.locales.title_required;\n titleInputContainer.appendChild(noTitleErrorSpan);\n\n const titleLabelSpan = document.createElement(\"span\");\n titleLabelSpan.classList.add(\"title-label-span\");\n titleLabelSpan.innerHTML = this.locales.title;\n\n const titleContainer = document.createElement(\"div\");\n titleContainer.classList.add(\"columns\", \"small-8\", \"medium-7\", \"title-container\");\n titleContainer.appendChild(titleLabelSpan);\n firstRow.appendChild(titleContainer);\n secondRow.appendChild(titleInputContainer);\n }\n\n secondRow.appendChild(removeButton);\n\n wrapper.appendChild(firstRow);\n wrapper.appendChild(secondRow);\n wrapper.appendChild(thirdRow);\n\n this.uploadItems.appendChild(wrapper);\n\n return wrapper;\n }\n\n updateAddAttachmentsButton() {\n if (this.activeAttachments.children.length === 0) {\n this.button.innerHTML = this.modalTitle.dataset.addlabel;\n } else {\n this.button.innerHTML = this.modalTitle.dataset.editlabel;\n }\n }\n\n createTrashCan() {\n const trashCan = document.createElement(\"div\");\n trashCan.classList.add(\"trash-can\");\n trashCan.style.display = \"none\";\n this.uploadItems.parentElement.appendChild(trashCan);\n return trashCan;\n }\n\n cleanTrashCan() {\n Array.from(this.trashCan.children).forEach((item) => {\n const fileName = item.dataset.filename;\n const activeAttachment = this.activeAttachments.querySelector(`div[data-filename='${fileName}']`);\n if (activeAttachment) {\n activeAttachment.remove();\n }\n item.remove();\n })\n }\n}\n","import UploadModal from \"src/decidim/direct_uploads/upload_modal\";\nimport { truncateFilename, createHiddenInput } from \"src/decidim/direct_uploads/upload_utility\";\n\nconst loadAttachments = (modal) => {\n Array.from(modal.activeAttachments.children).forEach((child) => {\n modal.createUploadItem(child.dataset.filename, child.dataset.title, \"validated\");\n })\n}\n\nconst addInputEventListener = (modal) => {\n modal.input.addEventListener(\"change\", (event) => {\n event.preventDefault();\n const files = event.target.files;\n Array.from(files).forEach((file) => modal.uploadFile(file));\n })\n}\n\nconst addButtonEventListener = (modal) => {\n modal.button.addEventListener(\"click\", (event) => {\n event.preventDefault();\n Array.from(modal.trashCan.children).forEach((item) => {\n modal.uploadItems.append(item);\n })\n if (modal.uploadItems.children.length === 0) {\n modal.modalTitle.innerHTML = modal.modalTitle.dataset.addlabel;\n } else {\n modal.modalTitle.innerHTML = modal.modalTitle.dataset.editlabel;\n }\n modal.updateDropZone();\n })\n}\n\nconst addDropZoneEventListeners = (modal) => {\n modal.dropZone.addEventListener(\"dragenter\", (event) => {\n event.preventDefault();\n })\n\n modal.dropZone.addEventListener(\"dragover\", (event) => {\n event.preventDefault();\n modal.dropZone.classList.add(\"is-dragover\");\n })\n\n modal.dropZone.addEventListener(\"dragleave\", () => {\n modal.dropZone.classList.remove(\"is-dragover\");\n })\n\n modal.dropZone.addEventListener(\"drop\", (event) => {\n event.preventDefault();\n const files = event.dataTransfer.files;\n Array.from(files).forEach((file) => modal.uploadFile(file));\n })\n}\n\nconst addSaveButtonEventListener = (modal) => {\n modal.saveButton.addEventListener(\"click\", (event) => {\n event.preventDefault();\n const validatedItems = modal.uploadItems.querySelectorAll(\".upload-item[data-state='validated']\")\n const validatedItemsCount = validatedItems.length;\n validatedItems.forEach((item) => {\n let details = item.querySelector(\".attachment-details\");\n if (details) {\n modal.activeAttachments.appendChild(details);\n } else {\n details = modal.activeAttachments.querySelector(`.attachment-details[data-filename='${item.dataset.filename}'`);\n }\n const span = details.querySelector(\"span\");\n span.classList.add(\"filename\");\n if (modal.options.titled) {\n const title = item.querySelector(\"input[type='text']\").value;\n details.dataset.title = title;\n let hiddenTitle = details.querySelector(\".hidden-title\")\n if (hiddenTitle) {\n hiddenTitle.value = title;\n } else {\n const attachmentId = details.querySelector(`[name='${modal.options.resourceName}[${modal.name}][]'`).value\n const ordinalNumber = modal.getOrdinalNumber()\n const hiddenTitleField = createHiddenInput(\"hidden-title\", `${modal.options.resourceName}[${modal.options.addAttribute}][${ordinalNumber}][title]`, title)\n const hiddenIdField = createHiddenInput(\"hidden-id\", `${modal.options.resourceName}[${modal.options.addAttribute}][${ordinalNumber}][id]`, attachmentId)\n details.appendChild(hiddenTitleField);\n details.appendChild(hiddenIdField);\n }\n span.innerHTML = `${title} (${truncateFilename(item.dataset.filename)})`;\n } else {\n span.innerHTML = truncateFilename(item.dataset.filename, 19);\n }\n span.style.display = \"block\";\n });\n\n if (!modal.options.titled && modal.trashCan.children.length > 0) {\n modal.activeAttachments.innerHTML = ``;\n }\n\n if (validatedItemsCount > 0) {\n // Foundation helper does some magic with error fields, so these must be triggered using jQuery.\n const $el = $(modal.uploadContainer.querySelector(\"input[type='checkbox']\"));\n if ($el) {\n $el.prop(\"checked\", true);\n $el.trigger(\"change\");\n }\n }\n modal.cleanTrashCan();\n modal.updateAddAttachmentsButton();\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n const attachmentButtons = document.querySelectorAll(\"button.add-file\");\n\n attachmentButtons.forEach((attachmentButton) => {\n const modal = new UploadModal(attachmentButton);\n loadAttachments(modal);\n addInputEventListener(modal);\n addButtonEventListener(modal);\n addDropZoneEventListeners(modal);\n addSaveButtonEventListener(modal);\n })\n})\n","/* eslint-disable require-jsdoc */\n\nimport lineBreakButtonHandler from \"src/decidim/editor/linebreak_module\";\nimport \"src/decidim/editor/clipboard_override\";\nimport \"src/decidim/vendor/image-resize.min\";\nimport \"src/decidim/vendor/image-upload.min\";\n\nconst quillFormats = [\n \"bold\",\n \"italic\",\n \"link\",\n \"underline\",\n \"header\",\n \"list\",\n \"alt\",\n \"break\",\n \"width\",\n \"style\",\n \"code\",\n \"blockquote\",\n \"indent\"\n];\n\nexport default function createQuillEditor(container) {\n const toolbar = $(container).data(\"toolbar\");\n const disabled = $(container).data(\"disabled\");\n\n const allowedEmptyContentSelector = \"iframe\";\n let quillToolbar = [\n [\"bold\", \"italic\", \"underline\", \"linebreak\"],\n [{ list: \"ordered\" }, { list: \"bullet\" }],\n [\"link\", \"clean\"],\n [\"code\", \"blockquote\"],\n [{ indent: \"-1\" }, { indent: \"+1\" }]\n ];\n\n let addImage = false;\n let addVideo = false;\n\n /**\n * - basic = only basic controls without titles\n * - content = basic + headings\n * - full = basic + headings + image + video\n */\n if (toolbar === \"content\") {\n quillToolbar = [[{ header: [2, 3, 4, 5, 6, false] }], ...quillToolbar];\n } else if (toolbar === \"full\") {\n addImage = true;\n addVideo = true;\n quillToolbar = [\n [{ header: [2, 3, 4, 5, 6, false] }],\n ...quillToolbar,\n [\"video\"],\n [\"image\"]\n ];\n }\n\n let modules = {\n linebreak: {},\n toolbar: {\n container: quillToolbar,\n handlers: {\n linebreak: lineBreakButtonHandler\n }\n }\n };\n const $input = $(container).siblings('input[type=\"hidden\"]');\n container.innerHTML = $input.val() || \"\";\n const token = $('meta[name=\"csrf-token\"]').attr(\"content\");\n\n if (addVideo) {\n quillFormats.push(\"video\");\n }\n\n if (addImage) {\n // Attempt to allow images only if the image support is enabled at editor support.\n // see: https://github.com/quilljs/quill/issues/1108\n quillFormats.push(\"image\");\n\n modules.imageResize = {\n modules: [\"Resize\", \"DisplaySize\"]\n };\n modules.imageUpload = {\n url: $(container).data(\"uploadImagesPath\"),\n method: \"POST\",\n name: \"image\",\n withCredentials: false,\n headers: { \"X-CSRF-Token\": token },\n callbackOK: (serverResponse, next) => {\n $(\"div.ql-toolbar\").last().removeClass(\"editor-loading\");\n next(serverResponse.url);\n },\n callbackKO: (serverError) => {\n $(\"div.ql-toolbar\").last().removeClass(\"editor-loading\");\n console.log(`Image upload error: ${serverError.message}`);\n },\n checkBeforeSend: (file, next) => {\n $(\"div.ql-toolbar\").last().addClass(\"editor-loading\");\n next(file);\n }\n };\n\n const text = $(container).data(\"dragAndDropHelpText\");\n $(container).after(\n `
${text}
`\n );\n }\n const quill = new Quill(container, {\n modules: modules,\n formats: quillFormats,\n theme: \"snow\"\n });\n\n if (addImage === false) {\n // Firefox natively implements image drop in contenteditable which is why we need to disable that\n quill.root.addEventListener(\"drop\", (ev) => ev.preventDefault());\n }\n\n if (disabled) {\n quill.disable();\n }\n\n quill.on(\"text-change\", () => {\n const text = quill.getText();\n\n // Triggers CustomEvent with the cursor position\n // It is required in input_mentions.js\n let event = new CustomEvent(\"quill-position\", {\n detail: quill.getSelection()\n });\n container.dispatchEvent(event);\n\n if (\n (text === \"\\n\" || text === \"\\n\\n\") &&\n quill.root.querySelectorAll(allowedEmptyContentSelector).length === 0\n ) {\n $input.val(\"\");\n } else {\n const emptyParagraph = \")\n if (nextLeaf === null || (currentLeaf.parent !== nextLeaf.parent)) {\n quill.insertEmbed(range.index, \"break\", true, \"user\");\n quill.insertEmbed(range.index, \"break\", true, \"user\");\n } else if (previousChar === \"\\n\") {\n const delta = new Delta().retain(range.index).insert(\"\\n\");\n quill.updateContents(delta, Quill.sources.USER);\n } else {\n quill.insertEmbed(range.index, \"break\", true, \"user\");\n }\n\n // Now that we've inserted a line break, move the cursor forward\n quill.setSelection(range.index + 1, Quill.sources.SILENT);\n}\n\nQuill.register(\"modules/linebreak\", (quill) => {\n quill.getModule(\"toolbar\").addHandler(\"linebreak\", () => {\n lineBreakButtonHandler(quill);\n });\n\n quill.emitter.on(\"editor-ready\", () => {\n const length = quill.getLength();\n const text = quill.getText(length - 2, 2);\n\n // Remove extraneous new lines\n if (text === \"\\n\\n\") {\n quill.deleteText(quill.getLength() - 2, 2);\n }\n });\n\n addEnterBindings(quill);\n backspaceBindingsRangeAny(quill);\n backspaceBindings(quill);\n\n return;\n});\n\n","import \"bootstrap-tagsinput\"\n\n$(() => {\n const $tagContainer = $(\".js-tags-container\");\n\n // Initialize\n $tagContainer.tagsinput({\n tagClass: \"input__tag\",\n trimValue: true\n });\n\n});\n"],"names":["Configuration","this","config","key","value","_typeof","TEMPLATE_HTML","ConfirmDialog","sourceElement","$modal","$","$source","$content","$buttonConfirm","$buttonCancel","titleId","Math","random","toString","substring","removeAttr","attr","append","foundation","message","html","off","Promise","resolve","_this","on","ev","preventDefault","focus","remove","handleConfirm","element","data","Rails","outerHTML","confirm","then","answer","completed","type","is","parents","submit","origEv","originalEvent","newEv","Event","constructor","target","dispatchEvent","allowAction","getMatchingEventTarget","selector","Element","parentNode","handleDocumentEvent","matchSelectors","some","currentSelector","document","addEventListener","Uploader","modal","uploadItem","options","progressBar","querySelector","validationSent","fileTooBig","maxFileSize","file","size","showError","locales","file_size_too_large","upload","DirectUpload","url","_createClass","errors","classList","add","innerHTML","validation_error","dataset","state","errorList","forEach","error","errorItem","createElement","appendChild","blobId","property","addAttribute","titled","params","URLSearchParams","resourceClass","blob","formClass","formObjectClass","fetch","method","headers","response","json","Object","entries","concat","style","justifyContent","length","uploaded","callback","request","event","progress","floor","loaded","total","width","_this2","validating","truncateFilename","filename","maxLength","charactersFromBegin","charactersFromEnd","slice","createHiddenInput","elClasses","elName","elValue","el","className","join","name","UploadModal","button","providedOptions","JSON","parse","_e","assign","open","saveButton","attachmentCounter","dropZoneEnabled","modalTitle","uploadItems","dropZone","input","uploadContainer","activeAttachments","trashCan","createTrashCan","title","split","createUploadItem","uploader","directUploadUrl","attachmentName","create","console","ordinalNumber","getOrdinalNumber","attachmentDetails","titleAndFileNameSpan","display","hiddenBlobField","signed_id","resourceName","hiddenTitleField","multiple","cleanTrashCan","validate","updateDropZone","nextOrdinalNumber","children","disabled","fileName","wrapper","setAttribute","firstRow","secondRow","thirdRow","fileNameSpan","fileNameSpanClasses","push","progressBarBorder","progressBarWrapper","removeButton","item","titleInputContainer","titleInput","parentElement","everyItemHasTitle","Array","from","noTitleErrorSpan","role","title_required","titleLabelSpan","titleContainer","addlabel","editlabel","activeAttachment","_this3","querySelectorAll","attachmentButton","child","loadAttachments","files","uploadFile","addInputEventListener","addButtonEventListener","dataTransfer","addDropZoneEventListeners","validatedItems","validatedItemsCount","details","span","hiddenTitle","attachmentId","hiddenIdField","$el","prop","trigger","updateAddAttachmentsButton","addSaveButtonEventListener","quillFormats","createQuillEditor","container","toolbar","quillToolbar","list","indent","addImage","addVideo","header","modules","linebreak","handlers","lineBreakButtonHandler","$input","siblings","val","token","imageResize","imageUpload","withCredentials","callbackOK","serverResponse","next","last","removeClass","callbackKO","serverError","log","checkBeforeSend","addClass","text","after","quill","Quill","formats","theme","root","disable","getText","CustomEvent","detail","getSelection","emptyParagraph","cleanHTML","replace","RegExp","emitter","emit","debug","Delta","Break","Embed","Scroll","Parchment","register","HistoryOverride","icons","SmartBreak","parent","ref","Reflect","apply","prototype","insertInto","ScrollOvderride","mutations","context","batch","parchmentOptimize","Container","optimize","records","observer","takeRecords","pop","mark","blot","markParent","domNode","__blot","remaining","ind","Error","mutation","find","previousSibling","addedNodes","node","grandChild","prev","range","selection","getRange","currentLeaf","getLeaf","index","nextLeaf","previousChar","insertEmbed","delta","retain","insert","updateContents","sources","USER","setSelection","SILENT","getModule","addHandler","getLength","deleteText","addEnterBindings","backspaceBindingsRangeAny","backspaceBindings","tagsinput","tagClass","trimValue"],"sourceRoot":""}