{"version":3,"file":"js/3055-dc82c7b9e7d4aebd29bc.js","mappings":"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","sources":["webpack://decidim_application/./vendor/bundle/ruby/2.7.0/gems/decidim-core-0.26.2/app/packs/src/decidim/editor/attribute_diff.js","webpack://decidim_application/./vendor/bundle/ruby/2.7.0/gems/decidim-core-0.26.2/app/packs/src/decidim/editor/history_override.js","webpack://decidim_application/./vendor/bundle/ruby/2.7.0/gems/decidim-core-0.26.2/app/packs/src/decidim/editor/linebreak_module.js","webpack://decidim_application/./vendor/bundle/ruby/2.7.0/gems/decidim-core-0.26.2/app/packs/src/decidim/editor/modified_backspace_offset1.js","webpack://decidim_application/./vendor/bundle/ruby/2.7.0/gems/decidim-core-0.26.2/app/packs/src/decidim/editor/modified_backspace_offset_any.js","webpack://decidim_application/./vendor/bundle/ruby/2.7.0/gems/decidim-core-0.26.2/app/packs/src/decidim/editor/modified_enter.js"],"sourcesContent":["/* eslint-disable require-jsdoc */\n\n// ORGINAL: https://github.com/quilljs/delta/blob/ddda3bf088cda3ec03d5dbcc1179679d147f3a02/src/AttributeMap.ts\nexport default function attributeDiff(attributes1, attributes2) {\n let alpha = attributes1;\n let beta = attributes2;\n if (typeof alpha !== \"object\") {\n alpha = {};\n }\n if (typeof beta !== \"object\") {\n beta = {};\n }\n const attributes = Object.keys(alpha).concat(Object.keys(beta)).reduce((attrs, key) => {\n // ORGINAL: import isEqual from 'lodash.isequal'; if (!isEqual(a[key], b[key]))\n if ((alpha[key] !== beta[key])) {\n attrs[key] = null;\n if (beta[key]) {\n attrs[key] = beta[key]\n }\n }\n return attrs;\n }, {});\n\n if (Object.keys(attributes).length > 0) {\n return attributes;\n }\n return null;\n}\n","/* eslint-disable require-jsdoc */\n\nconst History = Quill.import(\"modules/history\");\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: true\n};\n\n/**\n * Linebreak module brokes quill's default history class.\n * So here we are moving innerHTML to undo and redo stack\n * instead of deltas.\n */\nexport default class HistoryOverride extends History {\n constructor(quill, options) {\n super(quill, options);\n this.lastRecorded = 0;\n this.ignoreChange = false;\n this.init = false;\n this.quill.emitter.on(\"editor-ready\", () => {\n this.clear();\n const $input = $(this.quill.container).siblings('input[type=\"hidden\"]');\n this.stack.undo.push({content: $input.val() || \"\", index: this.quill.getLength() - 2 });\n this.lastLength = this.quill.getLength();\n })\n /* eslint-disable max-params */\n this.quill.on(Quill.events.EDITOR_CHANGE, (eventName, delta, oldDelta, source) => {\n if (!delta) {\n return;\n }\n if (!this.init && eventName === \"selection-change\") {\n this.stack.undo[0].index = delta.index;\n }\n if (eventName !== Quill.events.TEXT_CHANGE || this.ignoreChange) {\n return;\n }\n\n if (!this.options.userOnly || source === Quill.sources.USER) {\n this.record(delta, oldDelta);\n }\n });\n this.quill.keyboard.addBinding({ key: \"Z\", shortKey: true }, this.undo.bind(this));\n this.quill.keyboard.addBinding({ key: \"Z\", shortKey: true, shiftKey: true }, this.redo.bind(this));\n if ((/Win/i).test(navigator.platform)) {\n this.quill.keyboard.addBinding({ key: \"Y\", shortKey: true }, this.redo.bind(this));\n }\n }\n /* eslint-enable max-params */\n\n change(source, dest) {\n if (this.stack[source].length === 0) {\n return;\n }\n let obj = this.updateStacks(source, dest);\n if (!obj.content) {\n return;\n }\n if (!obj.index) {\n obj.index = 0\n }\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.setContents(this.quill.clipboard.convert(obj.content));\n this.ignoreChange = false;\n let index = obj.index;\n this.quill.setSelection(index);\n }\n\n updateStacks(source, dest) {\n if (source === \"undo\") {\n if (this.stack.undo.length === 1) {\n return this.stack.undo[0]\n }\n this.stack[dest].push(this.stack.undo.pop())\n return this.stack.undo[this.stack.undo.length - 1]\n }\n let content = this.stack.redo.pop();\n this.stack.undo.push(content)\n return content\n }\n\n record(changeDelta) {\n if (changeDelta.ops.length === 0) {\n return\n } else if (!this.init) {\n this.init = true;\n }\n this.stack.redo = [];\n let timestamp = Date.now();\n // Should not return after length check, because after linebreak a keypress replaces invisible characters with\n // visible characters.\n // For example: <br><br></p> -> [press X] -> <br>X</p>.\n if (Math.abs(this.lastLength === this.quill.getLength()) || this.lastRecorded + this.options.delay > timestamp) {\n if (this.stack.undo.length > 1) {\n this.stack.undo.pop();\n }\n } else {\n this.lastLength = this.quill.getLength();\n if (this.lastRecorded + this.options.delay <= timestamp) {\n this.lastRecorded = timestamp;\n }\n }\n this.stack.undo.push({content: this.quill.container.firstChild.innerHTML, index: this.quill.getSelection()})\n }\n\n transform() {\n return;\n }\n}\n","/* 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\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 quill.clipboard.addMatcher(\"BR\", (node) => {\n if (node?.parentNode?.tagName === \"A\") {\n return new Delta().insert(\"\\n\");\n }\n return new Delta().insert({\"break\": \"\"});\n });\n\n addEnterBindings(quill);\n backspaceBindingsRangeAny(quill);\n backspaceBindings(quill);\n\n return;\n});\n\n","/* eslint-disable require-jsdoc */\n\nimport attributeDiff from \"src/decidim/editor/attribute_diff\"\n\nconst Delta = Quill.import(\"delta\");\n\nconst previousChar = (quill, range) => {\n return quill.getText(range.index - 1, 1);\n}\n\nconst beforePreviousChar = (quill, range) => {\n return quill.getText(range.index - 2, 1);\n}\n\nconst nextChar = (quill, range) => {\n return quill.getText(range.index, 1);\n}\n\nconst handleListSelection = (quill, range) => {\n const lastCharacterOfPreviousLine = quill.getText(range.index - 3, 1);\n if (nextChar(quill, range) === \"\\n\" || lastCharacterOfPreviousLine !== \"\\n\") {\n quill.setSelection(range.index - 1, Quill.sources.SILENT);\n } else {\n quill.setSelection(range.index - 3, Quill.sources.SILENT);\n }\n}\n\nconst moveSelectionToPreviousLine = (quill, range) => {\n const lastCharacterOfPreviousLine = quill.getText(range.index - 3, 1);\n if (nextChar(quill, range) === \"\\n\" || lastCharacterOfPreviousLine !== \"\\n\") {\n quill.setSelection(range.index - 1, Quill.sources.SILENT);\n } else {\n quill.setSelection(range.index - 3, Quill.sources.SILENT);\n }\n}\n\nexport default function backspaceBindings(quill) {\n quill.keyboard.addBinding({ key: 8, offset: 1, collapsed: true }, (range, context) => {\n let length = 1\n if ((/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/).test(context.prefix)) {\n length = 2;\n }\n\n if (range.index === 0 || quill.getLength() <= 1) {\n return;\n }\n let formats = {};\n const [line] = quill.getLine(range.index);\n let delta = new Delta().retain(range.index - length).delete(length);\n if (context.offset === 1 && previousChar(quill, range) === \"\\n\") {\n const [prev] = quill.getLine(range.index - 2);\n if (prev && prev.statics.blotName === \"list-item\") {\n formats = handleListSelection(quill, range);\n if (prev !== null && prev.length() > 1) {\n let curFormats = line.formats();\n let prevFormats = quill.getFormat(range.index - 2, 1);\n formats = attributeDiff(curFormats, prevFormats) || {};\n length += 1;\n }\n delta = new Delta().retain(range.index - 2).delete(2);\n moveSelectionToPreviousLine(quill, range);\n } else {\n delta = new Delta().retain(range.index - 1).delete(1);\n if (range.index < 2) {\n delta = new Delta().delete(1).retain(range.index + line.length() - 1);\n } else if (previousChar(quill, range) === \"\\n\" && beforePreviousChar(quill, range) === \"\\n\") {\n delta = new Delta().retain(range.index - 2).delete(2);\n }\n }\n } else {\n const [prev] = quill.getLine(range.index - 1);\n if (prev) {\n const isPrevLineEmpty =\n prev.statics.blotName === \"block\" && prev.length() <= 1;\n if (!isPrevLineEmpty) {\n const curFormats = line.formats();\n const prevFormats = quill.getFormat(range.index - 1, 1);\n formats = attributeDiff(curFormats, prevFormats) || {};\n if (Object.keys(formats).length > 0) {\n // line.length() - 1 targets \\n in line, another -1 for newline being deleted\n const formatDelta = new Delta().retain(range.index + line.length() - 2).retain(1, formats);\n delta = delta.compose(formatDelta);\n }\n }\n }\n }\n quill.updateContents(delta, Quill.sources.USER);\n if (Object.keys(formats).length > 0) {\n quill.formatLine(range.index - length, length, formats, Quill.sources.USER);\n }\n quill.focus();\n });\n\n // Put this backspace binding to second\n quill.keyboard.bindings[8].splice(1, 0, quill.keyboard.bindings[8].pop());\n}\n","/* eslint-disable require-jsdoc */\n\nimport attributeDiff from \"src/decidim/editor/attribute_diff\"\n\nexport default function backspaceBindingsRangeAny(quill) {\n quill.keyboard.addBinding({ key: 8, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null, collapsed: true }, (range, context) => {\n let length = 1;\n if (range.index === 0 || quill.getLength() <= 1) {\n return;\n }\n let [line] = quill.getLine(range.index);\n let formats = {};\n if (context.offset === 0) {\n let [prev] = quill.getLine(range.index - 1);\n if (prev !== null && prev.length() > 1) {\n let curFormats = line.formats();\n let prevFormats = quill.getFormat(range.index - 1, 1);\n formats = attributeDiff(curFormats, prevFormats) || {};\n const previousLineLength = quill.getLine(range.index - 1)[1];\n const previousChar = quill.getText(range.index - 1, 1)\n const beforePreviousChar = quill.getText(range.index - 2, 1);\n if (previousLineLength && previousLineLength === 1 && beforePreviousChar === \"\\n\") {\n if (prevFormats && prevFormats.list) {\n quill.setSelection(range.index - 2, Quill.sources.SILENT);\n } else if (previousChar === \"\\n\" && beforePreviousChar === \"\\n\") {\n length += 1;\n }\n }\n }\n }\n\n if ((/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/).test(context.prefix)) {\n length += 1;\n }\n quill.deleteText(range.index - length, length, Quill.sources.USER);\n\n if (Object.keys(formats).length > 0) {\n quill.formatLine(range.index - length, length, formats, Quill.sources.USER);\n }\n quill.focus();\n })\n\n // Put this backspace binding to second (after backspce_offset1 it's going to be third)\n quill.keyboard.bindings[8].splice(1, 0, quill.keyboard.bindings[8].pop());\n}\n\n","/* eslint-disable require-jsdoc */\n\nconst Parchment = Quill.import(\"parchment\")\nconst Delta = Quill.import(\"delta\");\n\nconst getLineFormats = (context) => {\n return Object.keys(context.format).reduce(\n (formats, format) => {\n // See Parchment registry.ts => (1 << 3) | ((1 << 2) - 1) = 8 | 3 = 11\n const blockScope = 11;\n if (\n Parchment.query(format, blockScope) &&\n !Array.isArray(context.format[format])\n ) {\n formats[format] = context.format[format];\n }\n return formats;\n },\n {},\n );\n}\n\nconst continueFormats = (quill, context, lineFormats) => {\n Object.keys(context.format).forEach((name) => {\n if (typeof lineFormats[name] !== \"undefined\" && lineFormats[name] !== null) {\n return;\n }\n if (Array.isArray(context.format[name])) {\n return;\n }\n if (name === \"link\") {\n return;\n }\n quill.format(name, context.format[name], Quill.sources.USER);\n });\n}\n\nconst lineBreakHandler = (quill, range, context) => {\n const currentLeaf = quill.getLeaf(range.index)[0];\n const nextLeaf = quill.getLeaf(range.index + 1)[0];\n const previousChar = quill.getText(range.index - 1, 1);\n const formats = quill.getFormat(range.index);\n\n if (currentLeaf?.next?.domNode?.tagName === \"A\" || nextLeaf?.parent?.domNode?.tagName === \"A\") {\n quill.insertEmbed(range.index, \"break\", true, \"user\");\n quill.removeFormat(range.index, 1, Quill.sources.SILENT)\n } else {\n quill.insertEmbed(range.index, \"break\", true, \"user\");\n }\n\n if (nextLeaf === null) {\n quill.insertEmbed(range.index, \"break\", true, \"user\");\n } else if (context.offset === 1 && previousChar === \"\\n\") {\n const delta = new Delta().retain(range.index).insert(\"\\n\");\n quill.updateContents(delta, Quill.sources.USER);\n }\n\n Object.keys(formats).forEach((format) => {\n quill.format(format, context.format[format], Quill.sources.USER);\n });\n quill.setSelection(range.index + 1, Quill.sources.SILENT);\n\n const lineFormats = getLineFormats(context);\n continueFormats(quill, context, lineFormats);\n};\n\nexport default function addEnterBindings(quill) {\n quill.keyboard.addBinding({\n key: 13,\n shiftKey: true\n }, (range, context) => {\n lineBreakHandler(quill, range, context);\n });\n\n // HAX: make our SHIFT+ENTER binding the second (first is added below) in order to override Quill defaults\n quill.keyboard.bindings[13].unshift(quill.keyboard.bindings[13].pop());\n\n quill.keyboard.addBinding({ key: 13, shiftKey: false }, (range, context) => {\n const lineFormats = getLineFormats(context);\n const previousChar = quill.getText(range.index - 1, 1);\n const nextChar = quill.getText(range.index, 1);\n const delta = new Delta().retain(range.index).insert(\"\\n\", lineFormats);\n // const length = context.prefix.length;\n if (previousChar === \"\" || previousChar === \"\\n\") {\n if (lineFormats.list && nextChar === \"\\n\") {\n if (quill.getLength() - range.index > 2) {\n const endFormatDelta = new Delta().retain(range.index - 1).delete(1);\n quill.updateContents(endFormatDelta, Quill.sources.USER);\n } else {\n // Delete empty list item and end the list\n const endFormatDelta = new Delta().retain(range.index - 1).delete(1).retain(range.index).insert(\"\\n\");\n quill.updateContents(endFormatDelta, Quill.sources.USER);\n quill.setSelection(range.index + 1, Quill.sources.SILENT);\n }\n } else {\n quill.updateContents(delta, Quill.sources.USER);\n if (context.offset === 1 && previousChar === \"\\n\") {\n quill.setSelection(range.index + 1, Quill.sources.SILENT);\n } else {\n quill.setSelection(range.index + 2, Quill.sources.SILENT);\n }\n }\n } else {\n quill.updateContents(delta, Quill.sources.USER);\n quill.setSelection(range.index + 1, Quill.sources.SILENT);\n }\n quill.focus();\n\n continueFormats(quill, context, lineFormats);\n });\n\n // Replace the default enter handling because we have modified the break element\n quill.keyboard.bindings[13].unshift(quill.keyboard.bindings[13].pop());\n return;\n}\n\n"],"names":["attributeDiff","attributes1","alpha","beta","attributes","Object","attrs","History","Quill","delay","maxStack","userOnly","HistoryOverride","$input","$","content","index","eventName","delta","source","key","shortKey","shiftKey","navigator","this","stack","length","obj","updateStacks","lastRecorded","ignoreChange","quill","setContents","clipboard","convert","setSelection","undo","dest","push","redo","changeDelta","init","timestamp","Date","Math","lastLength","options","pop","container","firstChild","getSelection","Delta","Break","Embed","Scroll","Parchment","icons","SmartBreak","Reflect","parent","ScrollOvderride","mutations","context","batch","parchmentOptimize","emitter","emit","records","observer","mark","blot","optimize","remaining","ind","mutation","child","grandChild","children","forEach","lineBreakButtonHandler","range","currentLeaf","nextLeaf","previousChar","retain","node","addEnterBindings","backspaceBindingsRangeAny","backspaceBindings","nextChar","offset","collapsed","formats","line","prev","lastCharacterOfPreviousLine","handleListSelection","curFormats","prevFormats","moveSelectionToPreviousLine","beforePreviousChar","formatDelta","altKey","ctrlKey","metaKey","previousLineLength","getLineFormats","Array","continueFormats","lineFormats","name","lineBreakHandler","endFormatDelta"],"sourceRoot":""}