{"version":3,"sources":["webpack://grapesjs-preset-mautic/webpack/universalModuleDefinition","webpack://grapesjs-preset-mautic/webpack/bootstrap","webpack://grapesjs-preset-mautic/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://grapesjs-preset-mautic/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://grapesjs-preset-mautic/./node_modules/@babel/runtime/helpers/createClass.js","webpack://grapesjs-preset-mautic/./src/components.js","webpack://grapesjs-preset-mautic/./src/codeEditor.js","webpack://grapesjs-preset-mautic/./src/dynamicContent.js","webpack://grapesjs-preset-mautic/./src/commands.js","webpack://grapesjs-preset-mautic/./src/buttons.js","webpack://grapesjs-preset-mautic/./src/blocks.js","webpack://grapesjs-preset-mautic/./src/index.js"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","obj","configurable","writable","instance","Constructor","TypeError","_defineProperties","target","props","length","descriptor","protoProps","staticProps","editor","dc","DomComponents","defaultType","getType","defaultModel","model","cfg","getConfig","plugins","includes","addType","extend","defaults","draggable","droppable","editable","stylable","propagate","attributes","init","toolbar","this","id","filter","tlb","unshift","command","label","isComponent","el","getAttribute","type","view","style","events","dblclick","onActive","em","run","CodeEditor","opts","codeEditor","buildCodeEditor","codePopup","buildCodePopup","CodeManager","getViewer","clone","set","codeName","readOnly","theme","autoBeautify","autoCloseTags","autoCloseBrackets","lineWrapping","styleActiveLine","smartIndent","indentWithTabs","document","createElement","btnEdit","btnCancel","textarea","innerHTML","sourceEditBtnLabel","className","stylePrefix","onclick","updateCode","sourceCancelBtnLabel","cancelCode","appendChild","updateEditorContents","refresh","Modal","setContent","setTitle","sourceEditModalTitle","open","code","getValue","codeSave","getEditorContent","getWrapper","setComponents","trim","close","e","alert","message","getHtml","getCss","avoidProtected","DynamicContent","content","setAttribute","dynamicContentBtnLabel","component","updatePopupContents","dynamicContentModalTitle","self","popupContent","querySelector","getAttributes","focusForm","mQuery","find","each","buttons","dynamicContentFroalaButtons","froalaOptions","toolbarButtons","toolbarButtonsMD","toolbarButtonsSM","toolbarButtonsXS","toolbarSticky","linkList","imageEditButtons","froalaEditor","Mautic","basicFroalaOptions","removeClass","hide","empty","append","detach","dynamicContent","cmd","Commands","add","sender","grapesConvertDynamicContentSlotsToTokens","showCodePopup","stop","grapesConvertDynamicContentTokenToSlot","options","getSelected","$","pm","Panels","sourceEdit","addButton","title","showImportButton","mjmlImportBtn","getButton","htmlImportBtn","pageImportBtn","removeButton","undo","redo","runCommand","preview","clear","toggleImages","on","showLayersManager","openLayersBtn","viewComponents","openTmBtn","openSm","traitsSector","traitsProps","before","traitStyle","hidden","display","openBlocksBtn","bm","BlockManager","blocks","getAll","dynamicContentBlockLabel","activate","select","class","padding","activeOnRender","remove","forEach","block","category","categoryBlockLabel","categorySectionLabel","am","AssetManager","config","deleteAssetConfirmText","replaceRteWithFroala","onRemove","stopImmediatePropagation","confirm","collection","FroalaEditor","rteToolbar","RichTextEditor","getToolbarEl","children","child","setCustomRte","enable","rte","enter","ENTER_BR","pastePlain","htmlAllowedTags","htmlAllowedAttrs","toolbarContainer","linkEditButtons","currentLink","popupLink","top","getBoundingClientRect","height","outerHeight","css","parseInt","disable","off","loadComponents","loadCommands","loadButtons","loadBlocks"],"mappings":"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","file":"grapesjs-preset-mautic.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"grapesjs-preset-mautic\"] = factory();\n\telse\n\t\troot[\"grapesjs-preset-mautic\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","export default (editor, opts = {}) => {\r\n const dc = editor.DomComponents;\r\n const defaultType = dc.getType('default');\r\n const defaultModel = defaultType.model;\r\n const cfg = editor.getConfig();\r\n\r\n if (cfg.plugins.includes('grapesjs-mjml')) {\r\n // Dynamic Content MJML component\r\n } else if (cfg.plugins.includes('gjs-preset-newsletter')) {\r\n // Dynamic Content component\r\n dc.addType('dynamic-content', {\r\n model: defaultModel.extend({\r\n defaults: {\r\n ...defaultModel.prototype.defaults,\r\n name: 'Dynamic Content',\r\n draggable: '[data-gjs-type=cell]',\r\n droppable: false,\r\n editable: false,\r\n stylable: false,\r\n propagate: ['droppable', 'editable'],\r\n attributes: { // Default attributes\r\n 'data-gjs-type': 'dynamic-content', // Type for GrapesJS\r\n 'data-slot': 'dynamicContent', // Retro compatibility with old template\r\n },\r\n },\r\n\r\n /**\r\n * Initilize the component\r\n */\r\n init() {\r\n const toolbar = this.get('toolbar');\r\n const id = 'toolbar-dynamic-content';\r\n\r\n // Add toolbar edit button if it's not already in\r\n if (!toolbar.filter(tlb => tlb.id === id ).length) {\r\n toolbar.unshift({\r\n id,\r\n command: 'preset-mautic:dynamic-content',\r\n label: '
',\r\n });\r\n }\r\n },\r\n }, {\r\n // Dynamic Content component detection\r\n isComponent(el) {\r\n if(el.getAttribute &&\r\n el.getAttribute('data-slot') == 'dynamicContent') {\r\n return {\r\n type: 'dynamic-content'\r\n };\r\n }\r\n }\r\n }),\r\n\r\n view: defaultType.view.extend({\r\n attributes: {\r\n style: 'pointer-events: all; display: table; width: 100%;user-select: none;',\r\n },\r\n events: {\r\n dblclick: 'onActive',\r\n },\r\n onActive() {\r\n const target = this.model;\r\n\r\n this.em.get('Commands').run('preset-mautic:dynamic-content', { target });\r\n },\r\n })\r\n });\r\n }\r\n};\r\n","class CodeEditor {\r\n constructor(editor, opts = {}) {\r\n this.editor = editor;\r\n this.opts = opts;\r\n\r\n this.codeEditor = this.buildCodeEditor();\r\n this.codePopup = this.buildCodePopup();\r\n }\r\n\r\n // Build codeEditor (CodeMirror instance)\r\n buildCodeEditor() {\r\n let codeEditor = this.editor.CodeManager.getViewer('CodeMirror').clone();\r\n\r\n codeEditor.set({\r\n codeName: 'htmlmixed',\r\n readOnly: false,\r\n theme: 'hopscotch',\r\n autoBeautify: true,\r\n autoCloseTags: true,\r\n autoCloseBrackets: true,\r\n lineWrapping: true,\r\n styleActiveLine: true,\r\n smartIndent: true,\r\n indentWithTabs: true\r\n });\r\n\r\n return codeEditor;\r\n }\r\n\r\n // Build popup content, codeEditor area and buttons\r\n buildCodePopup() {\r\n const cfg = this.editor.getConfig();\r\n\r\n let codePopup = document.createElement('div');\r\n let btnEdit = document.createElement('button');\r\n let btnCancel = document.createElement('button');\r\n let textarea = document.createElement('textarea');\r\n\r\n btnEdit.innerHTML = this.opts.sourceEditBtnLabel;\r\n btnEdit.className = cfg.stylePrefix + 'btn-prim ' + cfg.stylePrefix + 'btn-code-edit';\r\n btnEdit.onclick = this.updateCode.bind(this);\r\n\r\n btnCancel.innerHTML = this.opts.sourceCancelBtnLabel;\r\n btnCancel.className = cfg.stylePrefix + 'btn-prim ' + cfg.stylePrefix + 'btn-code-cancel';\r\n btnCancel.onclick = this.cancelCode.bind(this);\r\n\r\n codePopup.appendChild(textarea);\r\n codePopup.appendChild(btnEdit);\r\n codePopup.appendChild(btnCancel);\r\n\r\n this.codeEditor.init(textarea);\r\n\r\n return codePopup;\r\n }\r\n\r\n // Load content and show popup\r\n showCodePopup() {\r\n this.updateEditorContents();\r\n this.codeEditor.editor.refresh();\r\n\r\n this.editor.Modal.setContent('');\r\n this.editor.Modal.setContent(this.codePopup);\r\n this.editor.Modal.setTitle(this.opts.sourceEditModalTitle);\r\n this.editor.Modal.open();\r\n }\r\n\r\n // Update GrapesJs content\r\n updateCode() {\r\n let code = this.codeEditor.editor.getValue();\r\n let codeSave = this.getEditorContent();\r\n\r\n // Catch error of code\r\n try {\r\n this.editor.DomComponents.getWrapper().set('content', '');\r\n this.editor.setComponents(code.trim());\r\n this.editor.Modal.close();\r\n }\r\n catch (e) {\r\n window.alert('Template error, you should fix your code before save! \\n'+e.message);\r\n this.editor.DomComponents.getWrapper().set('content', '');\r\n this.editor.setComponents(codeSave.trim());\r\n }\r\n }\r\n\r\n // Close popup\r\n cancelCode() {\r\n this.editor.Modal.close();\r\n }\r\n\r\n // Update CodeMirror content\r\n updateEditorContents() {\r\n this.codeEditor.setContent(this.getEditorContent());\r\n }\r\n\r\n // Get formated GrapesJs code\r\n getEditorContent() {\r\n const cfg = this.editor.getConfig();\r\n let content;\r\n\r\n // Check if MJML plugin is on\r\n if (cfg.plugins.includes('grapesjs-mjml')) {\r\n content = this.editor.getHtml();\r\n } else {\r\n content = this.editor.getHtml() + '';\r\n }\r\n\r\n return content;\r\n }\r\n}\r\n\r\nexport default CodeEditor\r\n","class DynamicContent {\r\n constructor(editor, opts = {}) {\r\n this.editor = editor;\r\n this.opts = opts;\r\n\r\n this.codePopup = this.buildCodePopup();\r\n }\r\n\r\n // Build popup content, Dynamic Content area and buttons\r\n buildCodePopup() {\r\n const cfg = this.editor.getConfig();\r\n\r\n let codePopup = document.createElement('div');\r\n let content = document.createElement('div');\r\n content.setAttribute(\"id\", \"dynamic-content-popup\");\r\n let btnEdit = document.createElement('button');\r\n\r\n btnEdit.innerHTML = this.opts.dynamicContentBtnLabel;\r\n btnEdit.className = cfg.stylePrefix + 'btn-prim ' + cfg.stylePrefix + 'btn-dynamic-content';\r\n btnEdit.onclick = this.updateCode.bind(this);\r\n\r\n codePopup.appendChild(content);\r\n codePopup.appendChild(btnEdit);\r\n\r\n return codePopup;\r\n }\r\n\r\n // Load content and show popup\r\n showCodePopup(component) {\r\n this.updatePopupContents(component);\r\n\r\n this.editor.Modal.setContent('');\r\n this.editor.Modal.setContent(this.codePopup);\r\n this.editor.Modal.setTitle(this.opts.dynamicContentModalTitle);\r\n this.editor.Modal.open();\r\n }\r\n\r\n // Close popup\r\n updateCode() {\r\n this.editor.Modal.close();\r\n }\r\n\r\n // Load Dynamic Content editor from Mautic and append to popup\r\n updatePopupContents(component) {\r\n let self = this;\r\n let popupContent = this.codePopup.querySelector('#dynamic-content-popup');\r\n let attributes = component.getAttributes();\r\n let focusForm = mQuery('#emailform_dynamicContent_' + attributes['data-param-dec-id']);\r\n\r\n // Remove Mautic Froala and reload one with custom setting\r\n focusForm.find('textarea.editor').each(function () {\r\n var buttons = self.opts.dynamicContentFroalaButtons;\r\n var froalaOptions = {\r\n toolbarButtons: buttons,\r\n toolbarButtonsMD: buttons,\r\n toolbarButtonsSM: buttons,\r\n toolbarButtonsXS: buttons,\r\n toolbarSticky: false,\r\n linkList: [],\r\n imageEditButtons: ['imageReplace', 'imageAlign', 'imageRemove', 'imageAlt', 'imageSize', '|', 'imageLink', 'linkOpen', 'linkEdit', 'linkRemove']\r\n };\r\n\r\n mQuery(this).froalaEditor('destroy');\r\n mQuery(this).froalaEditor(mQuery.extend({}, Mautic.basicFroalaOptions, froalaOptions));\r\n });\r\n\r\n // Show if hidden\r\n focusForm.removeClass('fade');\r\n // Hide delete default button\r\n focusForm.find('.tab-pane:first').find('.remove-item').hide();\r\n // Insert inside popup\r\n mQuery(popupContent).empty().append(focusForm.detach());\r\n }\r\n}\r\n\r\nexport default DynamicContent\r\n","import CodeEditor from './codeEditor';\r\nimport DynamicContent from './dynamicContent';\r\n\r\nexport default (editor, opts = {}) => {\r\n const cmd = editor.Commands;\r\n\r\n let codeEditor;\r\n let dynamicContent;\r\n\r\n // Launch Code Editor popup\r\n cmd.add('preset-mautic:code-edit', {\r\n run: (editor, sender, options = {}) => {\r\n if (!codeEditor) codeEditor = new CodeEditor(editor, opts);\r\n sender && sender.set('active', 0);\r\n\r\n // Transform DC to token\r\n Mautic.grapesConvertDynamicContentSlotsToTokens(editor);\r\n codeEditor.showCodePopup()\r\n },\r\n stop: (editor) => {\r\n // Transform token to DC\r\n Mautic.grapesConvertDynamicContentTokenToSlot(editor);\r\n }\r\n });\r\n\r\n // Launch Dynamic Content popup\r\n cmd.add('preset-mautic:dynamic-content', {\r\n run: (editor, sender, options = {}) => {\r\n const { target } = options;\r\n const component = target || editor.getSelected();\r\n\r\n if (!dynamicContent) dynamicContent = new DynamicContent(editor, opts);\r\n\r\n dynamicContent.showCodePopup(component);\r\n // Transform DC to token\r\n Mautic.grapesConvertDynamicContentSlotsToTokens(editor);\r\n },\r\n stop: (editor) => {\r\n // Transform token to DC\r\n Mautic.grapesConvertDynamicContentTokenToSlot(editor);\r\n }\r\n });\r\n};\r\n","export default (editor, opts = {}) => {\r\n const $ = editor.$;\r\n const pm = editor.Panels;\r\n\r\n // Add function within builder to edit source code\r\n if (opts.sourceEdit) {\r\n pm.addButton('options', [\r\n {\r\n id: 'code-edit',\r\n className: 'fa fa-edit',\r\n command: 'preset-mautic:code-edit',\r\n attributes: {\r\n title: opts.sourceEditModalTitle\r\n }\r\n }\r\n ]);\r\n }\r\n\r\n // Disable Import code button\r\n if (!opts.showImportButton) {\r\n let mjmlImportBtn = pm.getButton('options', 'mjml-import');\r\n let htmlImportBtn = pm.getButton('options', 'gjs-open-import-template');\r\n let pageImportBtn = pm.getButton('options', 'gjs-open-import-webpage');\r\n\r\n // MJML import\r\n if (mjmlImportBtn !== null) {\r\n pm.removeButton('options', 'mjml-import');\r\n }\r\n\r\n // Newsletter import\r\n if (htmlImportBtn !== null) {\r\n pm.removeButton('options', 'gjs-open-import-template');\r\n }\r\n\r\n // Webpage import\r\n if (pageImportBtn !== null) {\r\n pm.removeButton('options', 'gjs-open-import-webpage');\r\n }\r\n }\r\n\r\n // Move Undo & Redo inside Commands Panel\r\n let undo = pm.getButton('options', 'undo');\r\n let redo = pm.getButton('options', 'redo');\r\n\r\n if (undo !== null) {\r\n pm.removeButton('options', 'undo');\r\n pm.addButton('commands', [\r\n {\r\n id: 'undo',\r\n className: 'fa fa-undo',\r\n attributes: {title: 'Undo'},\r\n command: function () { editor.runCommand('core:undo') }\r\n }\r\n ]);\r\n }\r\n\r\n if (redo !== null) {\r\n pm.removeButton('options', 'redo');\r\n pm.addButton('commands', [\r\n {\r\n id: 'redo',\r\n className: 'fa fa-repeat',\r\n attributes: {title: 'Redo'},\r\n command: function () { editor.runCommand('core:redo') }\r\n }\r\n ]);\r\n }\r\n\r\n // Remove preview button\r\n let preview = pm.getButton('options', 'preview');\r\n\r\n if (preview !== null) {\r\n pm.removeButton('options', 'preview');\r\n }\r\n\r\n // Remove clear button\r\n let clear = pm.getButton('options', 'canvas-clear');\r\n\r\n if (clear !== null) {\r\n pm.removeButton('options', 'canvas-clear');\r\n }\r\n\r\n // Remove toggle images button\r\n let toggleImages = pm.getButton('options', 'gjs-toggle-images');\r\n\r\n if (toggleImages !== null) {\r\n pm.removeButton('options', 'gjs-toggle-images');\r\n }\r\n\r\n // Do stuff on load\r\n editor.on('load', function() {\r\n // Hide Layers Manager\r\n if (!opts.showLayersManager) {\r\n let openLayersBtn = pm.getButton('views', 'open-layers');\r\n\r\n if (openLayersBtn !== null) {\r\n openLayersBtn.set('attributes', {\r\n style: 'display:none;',\r\n });\r\n }\r\n }\r\n\r\n // Activate by default View Components button\r\n let viewComponents = pm.getButton('options', 'sw-visibility');\r\n viewComponents && viewComponents.set('active', 1);\r\n\r\n // Load and show settings and style manager\r\n let openTmBtn = pm.getButton('views', 'open-tm');\r\n openTmBtn && openTmBtn.set('active', 1);\r\n let openSm = pm.getButton('views', 'open-sm');\r\n openSm && openSm.set('active', 1);\r\n\r\n pm.removeButton(\"views\", \"open-tm\");\r\n\r\n // Add Settings Sector\r\n let traitsSector = $('