{"version":3,"file":"js/8876-4cb09f225870bca132eb.js","mappings":"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","sources":["webpack://app/../usr/local/bundle/gems/decidim-core-0.27.4/app/packs/src/decidim/editor/linebreak_module.js","webpack://app/./app/packs/src/decidim/decidim_awesome/editors/editor.js","webpack://app/../usr/local/bundle/bundler/gems/decidim-module-decidim_awesome-b9aae42bc835/app/packs/src/decidim/decidim_awesome/forms/rich_text_plugin.js","webpack://app/./app/packs/src/decidim/decidim_awesome/forms/custom_fields_renderer.js","webpack://app/../usr/local/bundle/bundler/gems/decidim-module-decidim_awesome-b9aae42bc835/app/packs/src/decidim/decidim_awesome/proposals/custom_fields.js"],"sourcesContent":["/* eslint-disable require-jsdoc */\n\nimport addEnterBindings from \"src/decidim/editor/modified_enter\"\nimport backspaceBindingsRangeAny from \"src/decidim/editor/modified_backspace_offset_any\"\nimport backspaceBindings from \"src/decidim/editor/modified_backspace_offset1\"\nimport HistoryOverride from \"src/decidim/editor/history_override\"\n\n// Disable warning messages from overwritting modules\nQuill.debug(\"error\");\n\n// It all started with these snippets of code: https://github.com/quilljs/quill/issues/252\nconst Delta = Quill.import(\"delta\");\nconst Break = Quill.import(\"blots/break\");\nconst Embed = Quill.import(\"blots/embed\");\nconst Scroll = Quill.import(\"blots/scroll\");\nconst Parchment = Quill.import(\"parchment\");\nQuill.register({\"modules/history\": HistoryOverride}, true);\nlet icons = Quill.import(\"ui/icons\");\nicons.linebreak = \"âŽ\";\n\nclass SmartBreak extends Break {\n length() {\n return 1;\n }\n\n value() {\n return \"\\n\";\n }\n\n insertInto(parent, ref) {\n // Embed.prototype.insertInto.call(this, parent, ref);\n Reflect.apply(Embed.prototype.insertInto, this, [parent, ref]);\n }\n}\nQuill.register(SmartBreak);\n\n// Override quill/blots/scroll.js\nclass ScrollOvderride extends Scroll {\n optimize(mutations = [], context = {}) {\n if (this.batch === true) {\n return;\n }\n\n this.parchmentOptimize(mutations, context);\n\n if (mutations.length > 0) {\n // quill/core/emitter.js, Emitter.events.SCROLL_OPTIMIZE = \"scroll-optimize\"\n this.emitter.emit(\"scroll-optimize\", mutations, context);\n }\n }\n\n // Override parchment/src/blot/scroll.ts\n parchmentOptimize(mutations = [], context = {}) {\n // super.optimize(context);\n Reflect.apply(Parchment.Container.prototype.optimize, this, [context]);\n\n // We must modify mutations directly, cannot make copy and then modify\n // let records = [].slice.call(this.observer.takeRecords());\n let records = [...this.observer.takeRecords()];\n // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n while (records.length > 0) {\n mutations.push(records.pop());\n }\n let mark = (blot, markParent) => {\n if (!blot || blot === this) {\n return;\n }\n if (!blot.domNode.parentNode) {\n return;\n }\n if (blot.domNode.__blot && blot.domNode.__blot.mutations === null) {\n blot.domNode.__blot.mutations = [];\n }\n if (markParent) {\n mark(blot.parent);\n }\n };\n let optimize = (blot) => {\n // Post-order traversal\n if (!blot.domNode.__blot) {\n return;\n }\n\n if (blot instanceof Parchment.Container) {\n blot.children.forEach(optimize);\n }\n blot.optimize(context);\n };\n let remaining = mutations;\n for (let ind = 0; remaining.length > 0; ind += 1) {\n // MAX_OPTIMIZE_ITERATIONS = 100\n if (ind >= 100) {\n throw new Error(\"[Parchment] Maximum optimize iterations reached\");\n }\n remaining.forEach((mutation) => {\n let blot = Parchment.find(mutation.target, true);\n if (!blot) {\n return;\n }\n if (blot.domNode === mutation.target) {\n if (mutation.type === \"childList\") {\n mark(Parchment.find(mutation.previousSibling, false));\n\n mutation.addedNodes.forEach((node) => {\n let child = Parchment.find(node, false);\n mark(child, false);\n if (child instanceof Parchment.Container) {\n child.children.forEach(function(grandChild) {\n mark(grandChild, false);\n });\n }\n });\n } else if (mutation.type === \"attributes\") {\n mark(blot.prev);\n }\n }\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = [...this.observer.takeRecords()];\n records = remaining.slice();\n while (records.length > 0) {\n mutations.push(records.pop());\n }\n }\n }\n};\nQuill.register(\"blots/scroll\", ScrollOvderride, true);\nParchment.register(ScrollOvderride);\n\nexport default function lineBreakButtonHandler(quill) {\n let range = quill.selection.getRange()[0];\n let currentLeaf = quill.getLeaf(range.index)[0];\n let nextLeaf = quill.getLeaf(range.index + 1)[0];\n const previousChar = quill.getText(range.index - 1, 1);\n\n // Insert a second break if:\n // At the end of the editor, OR next leaf has a different parent (<p>)\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","/* eslint-disable require-jsdoc, func-style */\n\n/*\n* Since version 0.25 we follow a different strategy and opt to destroy and override completely the original editor\n* That's because editors are instantiated directly instead of creating a global function to instantiate them\n*/\n\nimport lineBreakButtonHandler from \"src/decidim/editor/linebreak_module\"\nimport InscrybMDE from \"inscrybmde\"\nimport Europa from \"europa\"\nimport \"inline-attachment/src/inline-attachment\";\nimport \"inline-attachment/src/codemirror-4.inline-attachment\";\nimport \"inline-attachment/src/jquery.inline-attachment\";\nimport hljs from \"highlight.js\";\nimport \"highlight.js/styles/github.css\";\nimport \"src/decidim/editor/clipboard_override\"\nimport \"src/decidim/vendor/image-resize.min\"\nimport \"src/decidim/vendor/image-upload.min\"\nimport { marked } from \"marked\";\n\nconst DecidimAwesome = window.DecidimAwesome || {};\nconst quillFormats = [\"bold\", \"italic\", \"link\", \"underline\", \"header\", \"list\", \"video\", \"image\", \"alt\", \"break\", \"width\", \"style\", \"code\", \"blockquote\", \"indent\"];\n\n// A tricky way to destroy the quill editor\nexport function destroyQuillEditor(container) {\n if (container) {\n const content = $(container).find(\".ql-editor\").html();\n $(container).html(content);\n $(container).siblings(\".ql-toolbar\").remove();\n $(container).find(\"*[class*='ql-']\").removeClass((index, className) => (className.match(/(^|\\s)ql-\\S+/g) || []).join(\" \"));\n $(container).removeClass((index, className) => (className.match(/(^|\\s)ql-\\S+/g) || []).join(\" \"));\n if ($(container).next().is(\"p.help-text\")) {\n $(container).next().remove();\n }\n }\n else {\n console.error(`editor [${container}] not exists`);\n }\n}\n\nexport function createQuillEditor(container) {\n const toolbar = $(container).data(\"toolbar\");\n const disabled = $(container).data(\"disabled\");\n const allowedEmptyContentSelector = \"iframe,img\";\n\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\n if (toolbar === \"full\") {\n quillToolbar = [\n [{ header: [2, 3, 4, 5, 6, false] }],\n ...quillToolbar\n ];\n if (DecidimAwesome.allow_images_in_full_editor) {\n quillToolbar.push([\"video\", \"image\"]);\n addImage = true;\n } else {\n quillToolbar.push([\"video\"]);\n }\n } else if (toolbar === \"basic\") {\n if (DecidimAwesome.allow_images_in_small_editor) {\n quillToolbar.push([\"video\", \"image\"]);\n addImage = true;\n } else {\n quillToolbar.push([\"video\"]);\n }\n } else if (DecidimAwesome.allow_images_in_small_editor) {\n quillToolbar.push([\"image\"]);\n addImage = true;\n }\n\n let modules = {\n linebreak: {},\n toolbar: {\n container: quillToolbar,\n handlers: {\n \"linebreak\": lineBreakButtonHandler\n }\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 if (addImage) {\n modules.imageResize = {\n modules: [\"Resize\", \"DisplaySize\"]\n }\n modules.imageUpload = {\n url: DecidimAwesome.editor_uploader_path,\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 let msg = serverError && serverError.body;\n try {\n msg = JSON.parse(msg).message;\n } catch (evt) { console.error(\"Parsing error\", evt); }\n console.error(`Image upload error: ${msg}`);\n let $p = $(`<p class=\"text-alert help-text\">${msg}</p>`);\n $(container).after($p)\n setTimeout(() => {\n $p.fadeOut(1000, () => {\n $p.destroy();\n });\n }, 3000);\n },\n checkBeforeSend: (file, next) => {\n $(\"div.ql-toolbar\").last().addClass(\"editor-loading\")\n next(file);\n }\n }\n }\n const quill = new Quill(container, {\n modules: modules,\n formats: quillFormats,\n theme: \"snow\"\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 ((text === \"\\n\" || text === \"\\n\\n\") && quill.root.querySelectorAll(allowedEmptyContentSelector).length === 0\n && !$input.val().match(/img/)) {\n $input.val(\"\");\n } else {\n const emptyParagraph = \"<p><br></p>\";\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 if (addImage) {\n const text = $(container).data(\"dragAndDropHelpText\") || DecidimAwesome.texts.drag_and_drop_image;\n $(container).after(`<p class=\"help-text\" style=\"margin-top:-1.5rem;\">${text}</p>`);\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\nexport function createMarkdownEditor(container) {\n const text = DecidimAwesome.texts.drag_and_drop_image;\n const token = $('meta[name=\"csrf-token\"]').attr(\"content\");\n const $input = $(container).siblings('input[type=\"hidden\"]');\n const $faker = $('<textarea name=\"faker-inscrybmde\"/>');\n const $form = $(container).closest(\"form\");\n const europa = new Europa();\n $faker.val(europa.convert($input.val()));\n $faker.insertBefore($(container));\n $(container).hide();\n const inscrybmde = new InscrybMDE({\n element: $faker[0],\n spellChecker: false,\n renderingConfig: {\n codeSyntaxHighlighting: true,\n hljs: hljs\n }\n });\n $faker[0].InscrybMDE = inscrybmde;\n\n // Allow image upload\n if (DecidimAwesome.allow_images_in_markdown_editor) {\n $(inscrybmde.gui.statusbar).prepend(`<span class=\"help-text\" style=\"float:left;margin:0;text-align:left;\">${text}</span>`);\n window.inlineAttachment.editors.codemirror4.attach(inscrybmde.codemirror, {\n uploadUrl: DecidimAwesome.editor_uploader_path,\n uploadFieldName: \"image\",\n jsonFieldName: \"url\",\n extraHeaders: { \"X-CSRF-Token\": token }\n });\n }\n\n // Allow linebreaks\n marked.setOptions({\n breaks: true\n });\n\n // convert to html on submit\n $form.on(\"submit\", () => {\n // e.preventDefault();\n $input.val(marked(inscrybmde.value()));\n });\n}\n","/**\n * Decidim rich text editor control plugin\n * Renders standard Decidim WYSIWYG editor\n *\n * Registers Decidim Richtext as a subtype for the textarea control\n */\nimport {createQuillEditor} from \"src/decidim/decidim_awesome/editors/editor\"\n\n// configure the class for runtime loading\nif (!window.fbControls) {\n window.fbControls = []\n}\nwindow.fbControls.push(function(controlClass, allControlClasses) {\n const controlTextarea = allControlClasses.textarea\n\n /**\n * DecidimRichtext control class\n *\n * NOTE: I haven't found a way to set the userData value using this plugin\n * For this reason the value of the field must be collected manually\n * from the hidden input name same as the field with the suffix '-input'\n */\n class controlRichtext extends controlTextarea {\n\n /**\n * Class configuration - return the icons & label related to this control\n * @return {JSON} definition object\n */\n static get definition() {\n return {\n icon: \"ðŸ“\",\n i18n: {\n default: \"Rich Text Editor\"\n }\n }\n }\n\n /**\n * configure the richtext editor requirements\n * @return {void}\n */\n configure() {\n window.fbEditors.richtext = {};\n }\n\n /**\n * build a div DOM element & convert to a richtext editor\n * @return {DOMElement} DOM Element to be injected into the form.\n */\n build() {\n const { value, userData, ...attrs } = this.config;\n\n // hidden input for storing the current HTML value of the div\n this.inputId = `${this.id}-input`;\n // console.log(\"build plugin: this\",this)\n this.input = this.markup(\"input\", null, {\n name: name,\n id: this.inputId,\n type: \"hidden\",\n value: (userData && userData[0]) || value || \"\"\n });\n\n const css = this.markup(\n \"style\",\n `\n #${attrs.id} { height: auto; min-height: 6rem; padding-left: 0; padding-right: 0; }\n #${attrs.id} div.ql-container { height: ${attrs.rows || 1}rem; }\n #${attrs.id} p.help-text { margin-top: .5rem; }\n `,\n { type: \"text/css\" }\n );\n const wrapperAttrs = {...attrs, \"data-toolbar\": \"full\" };\n // console.log(\"build value\", value, \"userData\", userData, \"attrs\", attrs, attrs.id, \"wrapperAttrs\", wrapperAttrs);\n this.wrapper = this.markup(\"div\", null, wrapperAttrs);\n return this.markup(\"div\", [css, this.input, this.wrapper], attrs);\n }\n\n /**\n * When the element is rendered into the DOM, execute the following code to initialise it\n * @param {Object} evt - event\n * @return {Object} evt - event\n */\n onRender(evt) {\n // const value = this.config.value || '';\n if (window.fbEditors.richtext[this.id]) {\n // console.log(\"todo destroy\", window.fbEditors.richtext[this.id]);\n // window.fbEditors.richtext[this.id].richtext('destroy')\n }\n\n window.fbEditors.quill[this.id] = {};\n const editor = window.fbEditors.quill[this.id];\n // createQuillEditor does all the job to update the hidden input wrapper\n editor.instance = createQuillEditor(this.wrapper);\n // editor.data = new Delta();\n // if (value) {\n // editor.instance.setContents(window.JSON.parse(this.parsedHtml(value)));\n // }\n // editor.instance.on('text-change', function(delta) {\n // console.log(\"text-change\", \"delta\", delta, \"editor\", editor);\n // // // editor.data = editor.data.compose(delta);\n // });\n\n // console.log(\"render! editor\", editor, \"this\", this, \"value\", value);\n return evt;\n }\n }\n\n // register Decidim richtext as a richtext control\n controlTextarea.register(\"richtext\", controlRichtext, \"textarea\");\n})\n","import \"formBuilder/dist/form-render.min.js\";\nimport \"src/decidim/decidim_awesome/forms/rich_text_plugin\"\n\nexport default class CustomFieldsRenderer { // eslint-disable-line no-unused-vars\n constructor(containerSelector) {\n this.containerSelector = containerSelector || \".proposal_custom_field:last\";\n this.lang = this.getLang(window.DecidimAwesome.currentLocale);\n }\n\n getLang(lang) {\n const langs = {\n // ar: 'ar-SA', // Not in decidim yet\n \"ar\": \"ar-TN\",\n \"ca\": \"ca-ES\",\n \"cs\": \"cs-CZ\",\n \"da\": \"da-DK\",\n \"de\": \"de-DE\",\n \"el\": \"el-GR\",\n \"en\": \"en-US\",\n \"es\": \"es-ES\",\n \"fa\": \"fa-IR\",\n \"fi\": \"fi-FI\",\n \"fr\": \"fr-FR\",\n \"he\": \"he-IL\",\n \"hu\": \"hu-HU\",\n \"it\": \"it-IT\",\n \"ja\": \"ja-JP\",\n \"my\": \"my-MM\",\n \"nb\": \"nb-NO\",\n \"nl\": \"nl-NL\",\n \"pl\": \"pl-PL\",\n \"pt\": \"pt-BR\",\n \"qz\": \"qz-MM\",\n \"ro\": \"ro-RO\",\n \"ru\": \"ru-RU\",\n \"sl\": \"sl-SI\",\n \"th\": \"th-TH\",\n \"tr\": \"tr-TR\",\n \"uk\": \"uk-UA\",\n \"vi\": \"vi-VN\",\n \"zh-TW\": \"zh-TW\",\n \"zh\": \"zh-CN\"\n };\n if (langs[lang]) {\n return langs[lang];\n }\n if (langs[lang.substr(0, 2)]) {\n return langs[lang.substr(0, 2)];\n }\n return \"en-US\";\n }\n\n /*\n * Creates an XML document with a subset of html-compatible dl/dd/dt elements\n * to store the custom fields answers\n */\n dataToXML(data) {\n const $dl = $(\"<dl/>\");\n let $dd = null,\n $div = null,\n $dt = null,\n datum = null,\n key = null,\n label = null,\n text = null,\n val = null;\n $dl.attr(\"class\", \"decidim_awesome-custom_fields\");\n $dl.attr(\"data-generator\", \"decidim_awesome\");\n $dl.attr(\"data-version\", window.DecidimAwesome.version);\n for (key in data) { // eslint-disable-line guard-for-in\n // console.log(\"get the data!\", key, data[key]);\n // Richtext plugin does not saves userdata, so we get it from the hidden input\n if (data[key].type === \"textarea\" && data[key].subtype === \"richtext\") {\n data[key].userData = [$(`#${data[key].name}-input`).val()];\n }\n if (data[key].userData && data[key].userData.length) {\n $dt = $(\"<dt/>\");\n $dt.text(data[key].label);\n $dt.attr(\"name\", data[key].name);\n $dd = $(\"<dd/>\");\n // console.log(\"data for\", key, data[key].name, data[key])\n for (val in data[key].userData) { // eslint-disable-line guard-for-in\n $div = $(\"<div/>\");\n label = data[key].userData[val];\n text = null;\n if (data[key].values) {\n datum = data[key].values.find((obj) => obj.value === label); // eslint-disable-line no-loop-func\n if (datum) { // eslint-disable-line max-depth\n text = label;\n label = datum.label;\n }\n } else if (data[key].type === \"date\" && label) {\n datum = new Date(label).toLocaleDateString();\n if (datum) { // eslint-disable-line max-depth\n text = label;\n label = datum;\n }\n }\n // console.log(\"userData\", text, \"label\", label, 'key', key, 'data', data)\n if (data[key].type === \"textarea\" && data[key].subtype === \"richtext\") {\n $div.html(label);\n } else {\n $div.text(label);\n }\n if (text) {\n $div.attr(\"alt\", text);\n }\n $dd.append($div);\n }\n $dd.attr(\"id\", data[key].name);\n $dd.attr(\"name\", data[key].type);\n $dl.append($dt);\n $dl.append($dd);\n }\n }\n return `<xml>${$dl[0].outerHTML}</xml>`;\n }\n\n fixBuggyFields() {\n if (!this.$element) {\n return false;\n }\n\n /**\n * Hack to fix required checkboxes being reset\n * Issue: https://github.com/decidim-ice/decidim-module-decidim_awesome/issues/82\n */\n this.$element.find(\".formbuilder-checkbox-group\").each((_key, group) => {\n const inputs = $(\".formbuilder-checkbox input\", group);\n const $label = $(group).find(\"label\");\n const data = this.spec.find((obj) => obj.type === \"checkbox-group\" && obj.name === $label.attr(\"for\"));\n let values = data.userData;\n if (!inputs.length || !data || !values) {\n return;\n }\n\n inputs.each((_idx, input) => {\n let index = values.indexOf(input.value);\n if (index >= 0) {\n values.splice(index, 1)\n // setting checked=true do not makes the browser aware that the form is valid if the field is required\n if (!input.checked)\n {$(input).click();}\n } else if (input.checked)\n {$(input).click();}\n });\n\n // Fill \"other\" option\n const otherOption = $(\".other-option\", inputs.parent())[0];\n const otherVal = $(\".other-val\", inputs.parent())[0];\n const otherText = values.join(\" \");\n\n if (otherOption) {\n if (otherText) {\n otherOption.checked = true;\n otherOption.value = otherText;\n otherVal.value = otherText;\n } else {\n otherOption.checked = false;\n otherOption.value = \"\";\n otherVal.value = \"\";\n }\n }\n });\n\n /**\n * Hack to fix required radio buttons \"other\" value\n * Issue: https://github.com/decidim-ice/decidim-module-decidim_awesome/issues/133\n */\n this.$element.find(\".formbuilder-radio input.other-val\").on(\"input\", (input) => {\n const $input = $(input.currentTarget);\n const $group = $input.closest(\".formbuilder-radio-group\");\n $group.find(\"input\").each((_key, radio) => {\n const name = $(radio).attr(\"name\");\n if (name && name.endsWith(\"[]\")) {\n $(radio).attr(\"name\", name.slice(0, -2));\n }\n });\n });\n return this;\n }\n\n // Saves xml to the hidden input\n storeData() {\n if (!this.$element) {\n return false;\n }\n const $form = this.$element.closest(\"form\");\n const $body = $form.find(`input[name=\"${this.$element.data(\"name\")}\"]`);\n if ($body.length && this.instance) {\n this.spec = this.instance.userData;\n console.log(\"Spec data:\", this.spec);\n $body.val(this.dataToXML(this.spec));\n this.$element.data(\"spec\", this.spec);\n }\n // console.log(\"storeData spec\", this.spec, \"$body\", $body,\"$form\",$form,\"this\",this);\n return this;\n }\n\n init($element) {\n console.log(\"CustomFieldsRenderer init\");\n this.$element = $element;\n console.log(\"Element for rendering:\", $element);\n\n this.spec = $element.data(\"spec\");\n console.log(\"Spec data:\", this.spec);\n // console.log(\"init\", $element, \"this\", this)\n // in case of multilang tabs we only render one form due a limitation in the library for handling several instances\n this.instance = $element.formRender({\n i18n: {\n locale: this.lang,\n location: \"https://decidim.storage.opensourcepolitics.eu/osp-cdn/form_builder/1.1.0\"\n },\n formData: this.spec,\n render: true,\n disableInjectedStyle: true,\n controlConfig: {\n \"textarea.richtext\": {\n editorOptions: $element.data(\"editorOptions\")\n }\n }\n });\n this.fixBuggyFields();\n }\n}\n","import CustomFieldsRenderer from \"src/decidim/decidim_awesome/forms/custom_fields_renderer\"\n\n$(() => {\n window.DecidimAwesome.CustomFieldsRenderer = window.DecidimAwesome.CustomFieldsRenderer || new CustomFieldsRenderer();\n window.DecidimAwesome.PrivateCustomFieldsRenderer = window.DecidimAwesome.PrivateCustomFieldsRenderer || new CustomFieldsRenderer();\n\n // use admin multilang specs if exists\n const $public = $(\".proposal_custom_field:first\");\n const $private = $(\".proposal_custom_field.proposal_custom_field--private_body:first\");\n let $form = null;\n if ($public.length) {\n window.DecidimAwesome.CustomFieldsRenderer.init($public);\n $form = window.DecidimAwesome.CustomFieldsRenderer.$element.closest(\"form\");\n }\n if ($private.length) {\n window.DecidimAwesome.PrivateCustomFieldsRenderer.init($private);\n if (!$form) {\n $form = window.DecidimAwesome.PrivateCustomFieldsRenderer.$element.closest(\"form\");\n }\n }\n\n if ($form) {\n $form.on(\"submit\", (evt) => {\n if (evt.target.checkValidity()) {\n // save current editors\n if ($public.length) {\n window.DecidimAwesome.CustomFieldsRenderer.storeData();\n }\n if ($private.length) {\n window.DecidimAwesome.PrivateCustomFieldsRenderer.storeData();\n }\n } else {\n evt.preventDefault();\n evt.target.reportValidity();\n }\n });\n }\n});\n"],"names":["Quill","debug","Delta","Break","Embed","Scroll","Parchment","register","HistoryOverride","linebreak","icons","SmartBreak","parent","ref","Reflect","apply","prototype","insertInto","this","ScrollOvderride","mutations","context","batch","parchmentOptimize","length","emitter","emit","Container","optimize","records","observer","takeRecords","push","pop","mark","blot","markParent","_this","domNode","parentNode","__blot","children","forEach","remaining","ind","Error","mutation","find","target","type","previousSibling","addedNodes","node","child","grandChild","prev","slice","lineBreakButtonHandler","quill","range","selection","getRange","currentLeaf","getLeaf","index","nextLeaf","previousChar","getText","insertEmbed","delta","retain","insert","updateContents","sources","USER","setSelection","SILENT","getModule","addHandler","on","getLength","deleteText","addEnterBindings","backspaceBindingsRangeAny","backspaceBindings","DecidimAwesome","window","quillFormats","fbControls","controlClass","allControlClasses","controlTextarea","textarea","controlRichtext","icon","i18n","default","fbEditors","richtext","config","value","userData","attrs","inputId","id","input","markup","name","css","rows","wrapperAttrs","wrapper","evt","instance","container","toolbar","$","data","disabled","quillToolbar","list","addImage","header","allow_images_in_full_editor","allow_images_in_small_editor","modules","handlers","$input","siblings","innerHTML","val","token","attr","imageResize","imageUpload","url","editor_uploader_path","method","withCredentials","headers","callbackOK","serverResponse","next","last","removeClass","callbackKO","serverError","msg","body","JSON","parse","message","console","error","$p","after","setTimeout","fadeOut","destroy","checkBeforeSend","file","addClass","formats","theme","disable","text","event","CustomEvent","detail","getSelection","dispatchEvent","root","querySelectorAll","match","emptyParagraph","cleanHTML","replace","RegExp","texts","drag_and_drop_image","createQuillEditor","CustomFieldsRenderer","containerSelector","lang","getLang","currentLocale","langs","substr","$dl","$dd","$div","$dt","datum","key","label","version","subtype","values","obj","Date","toLocaleDateString","html","append","outerHTML","$element","each","_key","group","inputs","$label","spec","_idx","indexOf","splice","checked","click","otherOption","otherVal","otherText","join","currentTarget","closest","radio","endsWith","$body","$form","log","dataToXML","formRender","locale","location","formData","render","disableInjectedStyle","controlConfig","editorOptions","fixBuggyFields","PrivateCustomFieldsRenderer","$public","$private","init","checkValidity","storeData","preventDefault","reportValidity"],"sourceRoot":""}