{"version":3,"file":"js/decidim_system-6cbe51408bb24b5996bc.js","mappings":"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","sources":["webpack://app/webpack/runtime/chunk loaded","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/editor.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/configuration.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/input_tags.js","webpack://app/../usr/local/bundle/gems/decidim-core-0.26.7/app/packs/src/decidim/confirm.js","webpack://app/../usr/local/bundle/gems/decidim-system-0.26.7/app/packs/src/decidim/system/application.js","webpack://app/./node_modules/jquery/dist/jquery-exposed.js","webpack://app/webpack/bootstrap","webpack://app/webpack/runtime/compat get default export","webpack://app/webpack/runtime/define property getters","webpack://app/webpack/runtime/global","webpack://app/webpack/runtime/hasOwnProperty shorthand","webpack://app/webpack/runtime/node module decorator","webpack://app/webpack/runtime/jsonp chunk loading","webpack://app/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\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 const cleanHTML = quill.root.innerHTML.replace(\n new RegExp(`^${emptyParagraph}|${emptyParagraph}$`, \"g\"),\n \"\"\n );\n $input.val(cleanHTML);\n }\n });\n // After editor is ready, linebreak_module deletes two extraneous new lines\n quill.emitter.emit(\"editor-ready\");\n\n return quill;\n}\n","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","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","/**\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","/* eslint no-unused-vars: 0 */\n/* eslint id-length: [\"error\", { \"exceptions\": [\"$\"] }] */\n\nimport \"core-js/stable\";\nimport \"regenerator-runtime/runtime\";\nimport $ from \"jquery\"\nimport Quill from \"quill\"\nimport Rails from \"@rails/ujs\"\nimport \"foundation-sites\"\n\nimport createQuillEditor from \"src/decidim/editor\"\nimport Configuration from \"src/decidim/configuration\"\n\nwindow.Decidim = window.Decidim || {};\nwindow.Decidim.config = new Configuration()\n\nimport \"src/decidim/input_tags\"\nimport \"src/decidim/confirm\"\n\n$(() => {\n $(document).foundation();\n\n $(\".editor-container\").each((_idx, container) => {\n createQuillEditor(container);\n });\n\n $(\"button.collapse\").on(\"click\", () => {\n $(\".collapsible\").addClass(\"hide\");\n $(\"button.expand\").removeClass(\"hide\");\n $(\"button.collapse\").addClass(\"hide\");\n });\n\n $(\"button.expand\").on(\"click\", () => {\n $(\".collapsible\").removeClass(\"hide\");\n $(\"button.collapse\").removeClass(\"hide\");\n $(\"button.expand\").addClass(\"hide\");\n });\n});\n\n// This needs to be loaded after confirm dialog to bind properly\nRails.start()\n","var ___EXPOSE_LOADER_IMPORT___ = require(\"-!./jquery.js\");\nvar ___EXPOSE_LOADER_GET_GLOBAL_THIS___ = require(\"../../expose-loader/dist/runtime/getGlobalThis.js\");\nvar ___EXPOSE_LOADER_GLOBAL_THIS___ = ___EXPOSE_LOADER_GET_GLOBAL_THIS___;\nif (typeof ___EXPOSE_LOADER_GLOBAL_THIS___[\"$\"] === 'undefined') ___EXPOSE_LOADER_GLOBAL_THIS___[\"$\"] = ___EXPOSE_LOADER_IMPORT___;\nif (typeof ___EXPOSE_LOADER_GLOBAL_THIS___[\"jQuery\"] === 'undefined') ___EXPOSE_LOADER_GLOBAL_THIS___[\"jQuery\"] = ___EXPOSE_LOADER_IMPORT___;\nmodule.exports = ___EXPOSE_LOADER_IMPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t4609: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkapp\"] = self[\"webpackChunkapp\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [2415,85,5889,9281,8790], function() { return __webpack_require__(27206); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","quillFormats","Configuration","this","config","key","value","_typeof","$","tagsinput","tagClass","trimValue","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","window","Decidim","each","_idx","container","toolbar","disabled","quillToolbar","list","indent","addImage","addVideo","header","modules","linebreak","handlers","lineBreakButtonHandler","$input","siblings","innerHTML","val","token","push","imageResize","imageUpload","url","method","name","withCredentials","headers","callbackOK","serverResponse","next","last","removeClass","callbackKO","serverError","console","log","checkBeforeSend","file","addClass","text","after","quill","Quill","formats","theme","root","disable","getText","event","CustomEvent","detail","getSelection","querySelectorAll","length","emptyParagraph","cleanHTML","replace","RegExp","emitter","emit","createQuillEditor","___EXPOSE_LOADER_IMPORT___","___EXPOSE_LOADER_GLOBAL_THIS___","module","exports","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","id","loaded","__webpack_modules__","call","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","Object","keys","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","Function","e","obj","prop","prototype","hasOwnProperty","nmd","paths","children","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","forEach","bind","__webpack_exports__"],"sourceRoot":""}