diff --git a/dist/grapes.min.js b/dist/grapes.min.js index 1a2f6096c..2bf112c8f 100644 --- a/dist/grapes.min.js +++ b/dist/grapes.min.js @@ -1,3 +1,3 @@ -/*! grapesjs - 0.19.2 */ -!function(t,e){'object'==typeof exports&&'object'==typeof module?module.exports=e():'function'==typeof define&&define.amd?define([],e):'object'==typeof exports?exports.grapesjs=e():t.grapesjs=e()}('undefined'!=typeof globalThis?globalThis:'undefined'!=typeof window?window:this,(function(){return(()=>{var t={7757:(t,e,n)=>{t.exports=n(5666)},4374:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>et,evAdd:()=>U,evAll:()=>B,evClose:()=>K,evCustom:()=>q,evOpen:()=>G,evPfx:()=>V,evRemove:()=>W,evRemoveBefore:()=>$,evSelect:()=>H,evUpdate:()=>z,evUpload:()=>Y,evUploadEnd:()=>J,evUploadError:()=>Q,evUploadRes:()=>tt,evUploadStart:()=>X});var r=n(4942),i=n(9050),o=n(3821);const a={assets:[],noAssets:'',stylePrefix:'am-',upload:0,uploadName:'files',headers:{},params:{},credentials:'include',multiUpload:!0,autoAdd:!0,customFetch:null,uploadFile:null,embedAsBase64:!0,handleAdd:null,beforeUpload:null,showUrlInput:!0,custom:!1,dropzone:!1,openAssetsOnDrop:1,dropzoneContent:''};var s=n(3144),l=n(5671),c=n(9340),u=n(2963),f=n(1120),h=n(2316);function d(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var p=function(t){(0,c.Z)(n,t);var e=d(n);function n(){return(0,l.Z)(this,n),e.apply(this,arguments)}return(0,s.Z)(n,[{key:"defaults",value:function(){return{type:'',src:''}}},{key:"getType",value:function(){return this.get('type')}},{key:"getSrc",value:function(){return this.get('src')}},{key:"getFilename",value:function(){return this.get('src').split('/').pop().split('?').shift()}},{key:"getExtension",value:function(){return this.getFilename().split('.').pop()}}]),n}(n(6409).Z);function g(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function v(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.options=t,this.collection=t.collection;var e=t.config||{};this.config=e,this.pfx=e.stylePrefix||'',this.ppfx=e.pStylePrefix||'',this.em=e.em,this.className=this.pfx+'asset',this.listenTo(this.model,'destroy remove',this.remove),this.model.view=this;var n=this.init&&this.init.bind(this);n&&n(t)}},{key:"__getBhv",value:function(){var t=this.em,e=t&&t.get('AssetManager');return e&&e.__getBehaviour()||{}}},{key:"template",value:function(){var t=this.pfx;return"\n
\n ").concat(this.getPreview(),"\n
\n
\n ").concat(this.getInfo(),"\n
\n
\n ⨯\n
\n ")}},{key:"updateTarget",value:function(t){t&&t.set&&(t.set('attributes',(0,i.clone)(t.get('attributes'))),t.set('src',this.model.get('src')))}},{key:"getPreview",value:function(){return''}},{key:"getInfo",value:function(){return''}},{key:"render",value:function(){var t=this.el;return t.innerHTML=this.template(this,this.model),t.className=this.className,this}}]),n}(h.View),C=n(8595);function S(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var P=function(t){(0,c.Z)(n,t);var e=S(n);function n(){return(0,l.Z)(this,n),e.apply(this,arguments)}return(0,s.Z)(n,[{key:"getPreview",value:function(){var t=this.pfx,e=this.ppfx,n=this.model.get('src');return(0,C.Z)(k||(k=(0,b.Z)(["\n
\n
\n "])),t,n,t,e)}},{key:"getInfo",value:function(){var t=this.pfx,e=this.model,n=e.get('name'),r=e.get('width'),i=e.get('height'),o=e.get('unitDim'),a=r&&i?"".concat(r,"x").concat(i).concat(o):'';return n=n||e.getFilename(),(0,C.Z)(x||(x=(0,b.Z)(["\n
","
\n
","
\n "])),t,n,t,a)}},{key:"init",value:function(t){var e=this.pfx;this.className+=" ".concat(e,"asset-image")}},{key:"onClick",value:function(){var t=this.model,e=this.pfx,n=this.__getBhv().select,r=this.config.onClick,o=this.collection;o.trigger('deselectAll'),this.$el.addClass(e+'highlight'),(0,i.isFunction)(n)?n(t,!1):(0,i.isFunction)(r)?r(t):this.updateTarget(o.target)}},{key:"onDblClick",value:function(){var t=this.em,e=this.model,n=this.__getBhv().select,r=this.config.onDblClick,o=this.collection,a=o.target,s=o.onSelect;(0,i.isFunction)(n)?n(e,!0):(0,i.isFunction)(r)?r(e):(this.updateTarget(a),t&&t.get('Modal').close()),(0,i.isFunction)(s)&&s(e)}},{key:"onRemove",value:function(t){t.stopImmediatePropagation(),this.model.collection.remove(this.model)}}]),n}(O);P.prototype.events={'click [data-toggle=asset-remove]':'onRemove',click:'onClick',dblclick:'onDblClick'};var _=n(6475);function T(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var E=function(t){(0,c.Z)(n,t);var e=T(n);function n(){return(0,l.Z)(this,n),e.apply(this,arguments)}return(0,s.Z)(n)}(h.Collection.extend(_.Z));function j(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}E.prototype.types=[{id:'image',model:y,view:P,isType:function(t){return'string'==typeof t?{type:'image',src:t}:t}}];var D=function(t){(0,c.Z)(n,t);var e=j(n);function n(){return(0,l.Z)(this,n),e.apply(this,arguments)}return(0,s.Z)(n,[{key:"template",value:function(t){var e=t.pfx,n=t.ppfx,r=t.em,i='';return this.config.showUrlInput&&(i="\n
\n
\n \n
\n \n
\n
\n ")),"\n
\n
\n ").concat(i,"\n
\n
\n
\n
\n ")}},{key:"initialize",value:function(t){this.options=t,this.config=t.config,this.pfx=this.config.stylePrefix||'',this.ppfx=this.config.pStylePrefix||'',this.em=this.config.em;var e=this.collection;this.listenTo(e,'reset',this.renderAssets),this.listenTo(e,'add',this.addToAsset),this.listenTo(e,'remove',this.removedAsset),this.listenTo(e,'deselectAll',this.deselectAll)}},{key:"handleSubmit",value:function(t){t.preventDefault();var e=this.getAddInput(),n=e&&e.value.trim(),r=this.config.handleAdd;n&&(e.value='',this.getAssetsEl().scrollTop=0,r?r.bind(this)(n):this.options.globalCollection.add(n,{at:0}))}},{key:"getAssetsEl",value:function(){return this.el.querySelector(".".concat(this.pfx,"assets"))}},{key:"getAddInput",value:function(){return this.inputUrl&&this.inputUrl.value||(this.inputUrl=this.el.querySelector(".".concat(this.pfx,"add-asset input"))),this.inputUrl}},{key:"removedAsset",value:function(t){this.collection.length||this.toggleNoAssets()}},{key:"addToAsset",value:function(t){1==this.collection.length&&this.toggleNoAssets(1),this.addAsset(t)}},{key:"addAsset",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=e,r=this.collection,i=this.config,o=new t.typeView({model:t,collection:r,config:i}).render().el;if(n)n.appendChild(o);else{var a=this.getAssetsEl();a&&a.insertBefore(o,a.firstChild)}return o}},{key:"toggleNoAssets",value:function(t){var e=this.$el.find(".".concat(this.pfx,"assets"));if(t)e.empty();else{var n=this.config.noAssets;n&&e.append(n)}}},{key:"deselectAll",value:function(){var t=this.pfx;this.$el.find(".".concat(t,"highlight")).removeClass("".concat(t,"highlight"))}},{key:"renderAssets",value:function(){var t=this,e=document.createDocumentFragment(),n=this.$el.find(".".concat(this.pfx,"assets"));n.empty(),this.toggleNoAssets(this.collection.length),this.collection.each((function(n){return t.addAsset(n,e)})),n.append(e)}},{key:"render",value:function(){var t=this.options.fu.render().el;return this.$el.empty(),this.$el.append(t).append(this.template(this)),this.el.className="".concat(this.ppfx,"asset-manager"),this.renderAssets(),this}}]),n}(h.View);D.prototype.events={submit:'handleSubmit'};var R,A=n(7644);function M(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=function(t,e){if(!t)return;if("string"==typeof t)return Z(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Z(t,e)}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function Z(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n\n
","
\n \n
\n \n "])),e,n,r,i?'disabled':'',o?'multiple':'')}},{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.options=t;var e=t.config||{};this.module=t.module,this.config=e,this.em=this.config.em,this.pfx=e.stylePrefix||'',this.ppfx=e.pStylePrefix||'',this.target=this.options.globalCollection||{},this.uploadId=this.pfx+'uploadFile',this.disabled=void 0!==e.disableUpload?e.disableUpload:!e.upload&&!e.embedAsBase64,this.multiUpload=void 0===e.multiUpload||e.multiUpload,this.events=(0,r.Z)({},"change #".concat(this.uploadId),'uploadFile');var n=e.uploadFile;n?this.uploadFile=n.bind(this):!e.upload&&e.embedAsBase64&&(this.uploadFile=this.constructor.embedAsBase64),this.delegateEvents()}},{key:"onUploadStart",value:function(){var t=this.module;t&&t.__propEv('asset:upload:start')}},{key:"onUploadEnd",value:function(t){var e=this.$el,n=this.module;n&&n.__propEv('asset:upload:end',t);var r=e.find('input');r&&r.val('')}},{key:"onUploadError",value:function(t){var e=this.module;console.error(t),this.onUploadEnd(t),e&&e.__propEv('asset:upload:error',t)}},{key:"onUploadResponse",value:function(t,e){var n,r=this.module,i=this.config,o=this.target;try{n='string'==typeof t?JSON.parse(t):t}catch(e){n=t}r&&r.__propEv('asset:upload:response',n),i.autoAdd&&o&&o.add(n.data,{at:0}),this.onUploadEnd(t),e&&e(n)}},{key:"uploadFile",value:function(t,e){var n=this,r=t.dataTransfer?t.dataTransfer.files:t.target.files,i=this.config,o=i.beforeUpload;if(!1!==(o&&o(r))){var a=new FormData,s=i.params,l=i.customFetch;for(var c in s)a.append(c,s[c]);if(this.multiUpload)for(var u=0;u").concat(r.dropzoneContent,"")),f(),'draggable'in o&&[o,s].forEach((function(t){t.ondragover=h,t.ondragleave=d,t.ondrop=p}))}},{key:"render",value:function(){var t=this.$el,e=this.pfx,n=this.em;return t.html(this.template({title:n&&n.t('assetManager.uploadTitle'),uploadId:this.uploadId,disabled:this.disabled,multiUpload:this.multiUpload,pfx:e})),this.initDrop(),t.attr('class',e+'file-uploader'),this}}]),n}(h.View);function I(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function F(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},i=(s=F(F({},a),r)).pStylePrefix,o=s,l=o.em;return this.config=s,this.em=l,i&&(s.stylePrefix=i+s.stylePrefix),t=new E([]),e=new E([]),this.all=t,this.__initListen(),t.on('add',(function(t){return n.getAllVisible().add(t)})),t.on('remove',(function(t){return n.getAllVisible().remove(t)})),this},__propEv:function(t){for(var e,n,r=arguments.length,i=new Array(r>1?r-1:0),o=1;o0&&void 0!==arguments[0]?arguments[0]:{},e=this.em.get('Commands');e.run(l,F({types:['image'],select:function(){}},t))},close:function(){this.em.get('Commands').stop(l)},isOpen:function(){var t=this.em.get('Commands');return!(!t||!t.isActive(l))},add:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return void 0===n.at&&(n.at=0),t.add(e,n)},get:function(e){return t.where({src:e})[0]||null},getAll:function(){return t},getAllVisible:function(){return e},remove:function(t,e){return this.__remove(t,e)},store:function(){return this.getProjectData()},load:function(t){return this.loadProjectData(t)},getContainer:function(){return this.__getBehaviour().container||n&&n.el},getAssetsEl:function(){return n.el.querySelector('[data-el=assets]')},render:function(t){if(!this.getConfig('custom')){var r=t||this.getAll().models;if(!n){var i=this.__viewParams();i.fu=this.FileUploader();var o=n&&n.el;(n=new D(F({el:o},i))).render()}return e.reset(r),this.getContainer()}},__viewParams:function(){return{collection:e,globalCollection:t,config:s,module:this}},addType:function(t,e){this.getAll().addType(t,e)},getType:function(t){return this.getAll().getType(t)},getTypes:function(){return this.getAll().getTypes()},AssetsView:function(){return n},FileUploader:function(){return r||(r=new N(this.__viewParams())),r},onLoad:function(){var t=this;this.getAll().reset(s.assets);var e=this.em,n=this.events;e.on("run:".concat(l),(function(){return t.__propEv(n.open)})),e.on("stop:".concat(l),(function(){return t.__propEv(n.close)}))},postRender:function(t){s.dropzone&&r&&r.initDropzone(t)},setTarget:function(t){e.target=t},onSelect:function(t){e.onSelect=t},onClick:function(t){s.onClick=t},onDblClick:function(t){s.onDblClick=t},__behaviour:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._bhv=F(F({},this._bhv||{}),t)},__getBehaviour:function(){return this._bhv||{}},destroy:function(){t.stopListening(),e.stopListening(),t.reset(),e.reset(),r&&r.remove(),n&&n.remove(),[t,e,n,r].forEach((function(t){return null})),this._bhv={},this.all={},s={}}})}},796:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>$,evAdd:()=>I,evAll:()=>L,evCustom:()=>W,evDrag:()=>H,evDragStart:()=>z,evDragStop:()=>U,evPfx:()=>N,evRemove:()=>B,evRemoveBefore:()=>V,evUpdate:()=>F});var r=n(4942),i=n(9050),o=n(3821);const a={appendTo:'',appendOnClick:!1,blocks:[],custom:!1};var s=n(5671),l=n(3144),c=n(9340),u=n(2963),f=n(1120),h=n(6409);function d(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var p=function(t){(0,c.Z)(n,t);var e=d(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"defaults",value:function(){return{label:'',content:'',media:'',category:'',activate:!1,select:null,resetId:!1,disable:!1,onClick:null,attributes:{}}}},{key:"getId",value:function(){return this.id}},{key:"getLabel",value:function(){return this.get('label')}},{key:"getMedia",value:function(){return this.get('media')}},{key:"getContent",value:function(){return this.get('content')}},{key:"getCategoryLabel",value:function(){var t=this.get('category');return(0,i.isFunction)(t.get)?t.get('label'):t.label?t.label:t}}]),n}(h.Z),g=n(2316);function v(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var m=function(t){(0,c.Z)(n,t);var e=v(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n)}(g.Collection);function y(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}m.prototype.model=p;var b=function(t){(0,c.Z)(n,t);var e=y(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"defaults",value:function(){return{id:'',label:'',open:!0,attributes:{}}}}]),n}(h.Z);function w(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var k=function(t){(0,c.Z)(n,t);var e=w(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n)}(g.Collection);k.prototype.model=b;var x=n(3168);function O(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var C,S=function(t){(0,c.Z)(n,t);var e=O(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"events",value:function(){return{click:'handleClick',mousedown:'startDrag',dragstart:'handleDragStart',drag:'handleDrag',dragend:'handleDragEnd'}}},{key:"initialize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.model;this.em=e.em,this.config=e,this.endDrag=this.endDrag.bind(this),this.ppfx=e.pStylePrefix||'',this.listenTo(n,'destroy remove',this.remove),this.listenTo(n,'change',this.render)}},{key:"__getModule",value:function(){return this.em.get('BlockManager')}},{key:"handleClick",value:function(t){var e=this.config,n=this.model,r=this.em,o=n.get('onClick')||e.appendOnClick;if(r.trigger('block:click',n,t),o){if((0,i.isFunction)(o))return o(n,r.getEditor(),{event:t});var a,s,l=e.getSorter(),c=n.get('content'),u=r.getSelected();if(l.setDropContent(c),u)if(l.validTarget(u.getEl(),c).valid)a=u;else{var f=u.parent();l.validTarget(f.getEl(),c).valid&&(a=f,s=f.components().indexOf(u)+1)}if(!a){var h=r.getWrapper();l.validTarget(h.getEl(),c).valid&&(a=h)}var d=a&&a.append(c,{at:s})[0];d&&r.setSelected(d,{scroll:1})}}},{key:"startDrag",value:function(t){var e=this.config,n=this.em,r=this.model.get('disable');if(0===t.button&&e.getSorter&&!this.el.draggable&&!r){n.refreshCanvas();var i=e.getSorter();i.setDragHelper(this.el,t),i.setDropContent(this.model.get('content')),i.startSort(this.el),(0,x.on)(document,'mouseup',this.endDrag)}}},{key:"handleDragStart",value:function(t){this.__getModule().__startDrag(this.model,t)}},{key:"handleDrag",value:function(t){this.__getModule().__drag(t)}},{key:"handleDragEnd",value:function(){this.__getModule().__endDrag()}},{key:"endDrag",value:function(t){(0,x.off)(document,'mouseup',this.endDrag);var e=this.config.getSorter();e.moved=0,e.endMove()}},{key:"render",value:function(){var t=this.em,e=this.el,n=this.$el,r=this.ppfx,i=this.model,o=i.get('disable'),a=i.get('attributes')||{},s=a.class||'',l="".concat(r,"block"),c=t&&t.t("blockManager.labels.".concat(i.id))||i.get('label'),u=i.get('render'),f=i.get('media'),h=o?"".concat(l,"--disable"):"".concat(r,"four-color-h");n.attr(a),e.className="".concat(s," ").concat(l," ").concat(r,"one-bg ").concat(h).trim(),e.innerHTML="\n ".concat(f?"
").concat(f,"
"):'',"\n
").concat(c,"
\n "),e.title=a.title||e.textContent.trim(),e.setAttribute('draggable',!(!(0,x.hasDnd)(t)||o));var d=u&&u({el:e,model:i,className:l,prefix:r});return d&&(e.innerHTML=d),this}}]),n}(g.View),P=n(168),_=n(8595);function T(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var E=function(t){(0,c.Z)(n,t);var e=T(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"template",value:function(t){var e=t.pfx,n=t.label;return(0,_.Z)(C||(C=(0,P.Z)(["\n
\n \n ","\n
\n
\n "])),e,e,n,e)}},{key:"attributes",value:function(){return this.model.get('attributes')}},{key:"initialize",value:function(){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.config=t;var e=t.pStylePrefix||'';this.em=t.em,this.pfx=e,this.caretR='fa fa-caret-right',this.caretD='fa fa-caret-down',this.iconClass="".concat(e,"caret-icon"),this.activeClass="".concat(e,"open"),this.className="".concat(e,"block-category"),this.events={},this.events["click .".concat(e,"title")]='toggle',this.listenTo(this.model,'change:open',this.updateVisibility),this.delegateEvents(),this.model.view=this}},{key:"updateVisibility",value:function(){this.model.get('open')?this.open():this.close()}},{key:"open",value:function(){this.$el.addClass(this.activeClass),this.getIconEl().className="".concat(this.iconClass," ").concat(this.caretD),this.getBlocksEl().style.display=''}},{key:"close",value:function(){this.$el.removeClass(this.activeClass),this.getIconEl().className="".concat(this.iconClass," ").concat(this.caretR),this.getBlocksEl().style.display='none'}},{key:"toggle",value:function(){var t=this.model;t.set('open',!t.get('open'))}},{key:"getIconEl",value:function(){return this.iconEl||(this.iconEl=this.el.querySelector('.'+this.iconClass)),this.iconEl}},{key:"getBlocksEl",value:function(){return this.blocksEl||(this.blocksEl=this.el.querySelector('.'+this.pfx+'blocks-c')),this.blocksEl}},{key:"append",value:function(t){this.getBlocksEl().appendChild(t)}},{key:"render",value:function(){var t=this.em,e=this.el,n=this.$el,r=this.model,i=this.pfx,o=t.t("blockManager.categories.".concat(r.id))||r.get('label');return e.innerHTML=this.template({pfx:i,label:o}),n.addClass(this.className),n.css({order:r.get('order')}),this.updateVisibility(),this}}]),n}(g.View);function j(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function D(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.config=D(D({},this.config),t)}},{key:"getSorter",value:function(){if(this.em){if(!this.sorter){var t=this.em.get('Utils'),e=this.canvas;this.sorter=new t.Sorter({container:e.getBody(),placer:e.getPlacerEl(),containerSel:'*',itemSel:'*',pfx:this.ppfx,onStart:this.onDrag,onEndMove:this.onDrop,onMove:this.onMove,document:e.getFrameEl().contentDocument,direction:'a',wmargin:1,nested:1,em:this.em,canvasRelative:1})}return this.sorter}}},{key:"onDrag",value:function(t){this.em.stopDefault(),this.em.trigger('block:drag:start',t)}},{key:"onMove",value:function(t){this.em.trigger('block:drag:move',t)}},{key:"onDrop",value:function(t){var e=this.em;if(e.runDefault(),t&&t.get){var n='activeOnRender';t.get(n)&&(t.trigger('active'),t.unset(n)),e.trigger('block:drag:stop',t)}}},{key:"addTo",value:function(t){this.add(t)}},{key:"add",value:function(t,e){var n=this.config,r=e||null,o=new S({model:t,attributes:t.get('attributes')},n).render().el,a=t.get('category');if(a&&this.categories&&!n.ignoreCategories){(0,i.isString)(a)?a={id:a,label:a}:(0,i.isObject)(a)&&!a.id&&(a.id=a.label);var s=this.categories.add(a),l=s.get('id'),c=this.renderedCategories[l],u=this.getCategoriesEl();return t.set('category',s,{silent:!0}),!c&&u&&(c=new E({model:s},this.config).render(),this.renderedCategories[l]=c,u.appendChild(c.el)),void(c&&c.append(o))}r?r.appendChild(o):this.append(o)}},{key:"getCategoriesEl",value:function(){return this.catsEl||(this.catsEl=this.el.querySelector(".".concat(this.catsClass))),this.catsEl}},{key:"getBlocksEl",value:function(){return this.blocksEl||(this.blocksEl=this.el.querySelector(".".concat(this.noCatClass," .").concat(this.blockContClass))),this.blocksEl}},{key:"append",value:function(t){var e=this.getBlocksEl();e&&e.appendChild(t)}},{key:"render",value:function(){var t=this,e=this.ppfx,n=document.createDocumentFragment();this.catsEl=null,this.blocksEl=null,this.renderedCategories=[],this.el.innerHTML="\n
\n
\n
\n
\n "),this.collection.each((function(e){return t.add(e,n)})),this.append(n);var r="".concat(this.blockContClass,"s ").concat(e,"one-bg ").concat(e,"two-color");return this.$el.addClass(r),this.rendered=!0,this}}]),n}(g.View);function M(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Z(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},i=r=Z(Z({},a),n),o=i.em;return this.em=o,t=new m(r.blocks),e=new m(t.models),s=new k,this.all=t,this.__initListen(),t.on('add',(function(t){return e.add(t)})),t.on('remove',(function(t){return e.remove(t)})),t.on('reset',(function(t){return e.reset(t.models)})),this},__trgCustom:function(){this.em.trigger(this.events.custom,this.__customData())},__customData:function(){var t=this,e=this.__getBehaviour();return{bm:this,blocks:this.getAll().models,container:e.container,dragStart:function(e,n){return t.startDrag(e,n)},drag:function(e){return t.__drag(e)},dragStop:function(e){return t.endDrag(e)}}},__startDrag:function(e,n){var r=this.em,i=this.events,o=e.getContent?e.getContent():e;this._dragBlock=e,r.set({dragResult:null,dragContent:o}),[r,t].map((function(t){return t.trigger(i.dragStart,e,n)}))},__drag:function(e){var n=this.em,r=this.events,i=this._dragBlock;[n,t].map((function(t){return t.trigger(r.drag,i,e)}))},__endDrag:function(){var e=this.em,n=this.events,r=this._dragBlock,o=e.get('dragResult');if(this._dragBlock=null,o){var a='activeOnRender',s=o.get&&o.get(a),l=r.get('activate')||s,c=r.get('select'),u=(0,i.isArray)(o)?o[0]:o;(c||l&&!1!==c)&&e.setSelected(u),l&&(u.trigger('active'),s&&u.unset(a)),r.get('resetId')&&u.onAll((function(t){return t.resetId()}))}e.set({dragResult:null,dragContent:null}),[e,t].map((function(t){return t.trigger(n.dragEnd,o,r)}))},__getFrameViews:function(){return this.em.get('Canvas').getFrames().map((function(t){return t.view}))},__behaviour:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._bhv=Z(Z({},this._bhv||{}),t)},__getBehaviour:function(){return this._bhv||{}},startDrag:function(t,e){this.__startDrag(t,e),this.__getFrameViews().forEach((function(t){return t.droppable.startCustom()}))},endDrag:function(t){this.__getFrameViews().forEach((function(e){return e.droppable.endCustom(t)})),this.__endDrag()},getConfig:function(){return r},postRender:function(){n=new A({collection:e,categories:s},r);var t=this.getConfig().appendTo;if(t){var o=(0,i.isElement)(t)?t:document.querySelector(t);if(!o)return this.__logWarn('"appendTo" element not found');o.appendChild(this.render(e.models))}this.__trgCustom()},add:function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=n||{};return i.id=e,t.add(i,r)},get:function(e){return t.get(e)},getAll:function(){return t},getAllVisible:function(){return e},remove:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.__remove(t,e)},getCategories:function(){return s},getContainer:function(){return n.el},render:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=t||this.getAll().models;if(e.external){var o=new m(i);return new A({collection:o,categories:s},Z(Z({},r),e)).render().el}return n&&(n.updateConfig(e),n.collection.reset(i),n.rendered||(n.render(),n.rendered=1)),this.getContainer()},destroy:function(){var i=[t,e,s];i.map((function(t){return t.stopListening()})),i.map((function(t){return t.reset()})),n&&n.remove(),r={},t={},e={},n={},s=[],this.all={}}})}},6242:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>H});var r=n(2982),i=n(4942),o=n(9050),a=n(3168);const s={stylePrefix:'cv-',scripts:[],styles:[],customBadgeLabel:'',autoscrollLimit:50,extHl:0,notTextable:['button','a','input[type=checkbox]','input[type=radio]']};var l=n(5671),c=n(3144),u=n(9340),f=n(2963),h=n(1120),d=n(6409),p=n(9084),g=n(8445);function v(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,f.Z)(this,n)}}var m=function(t){(0,u.Z)(n,t);var e=v(n);function n(){return(0,l.Z)(this,n),e.apply(this,arguments)}return(0,c.Z)(n,[{key:"defaults",value:function(){return{frame:'',frames:'',rulers:!1,zoom:100,x:0,y:0,scripts:[],styles:[]}}},{key:"initialize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.em;this.config=e,this.em=n,this.set('frames',new g.Z),this.listenTo(this,'change:zoom',this.onZoomChange),this.listenTo(n,'change:device',this.updateDevice),this.listenTo(n,p.evPageSelect,this._pageUpdated)}},{key:"init",value:function(){var t=this.em.get('PageManager').getMain(),e=t.getMainFrame();this.set('frames',t.getFrames()),this.updateDevice({frame:e})}},{key:"_pageUpdated",value:function(t,e){var n=this.em;n.setSelected(),n.get('readyCanvas')&&n.stopDefault(),e&&e.getFrames().map((function(t){return t.disable()})),this.set('frames',t.getFrames())}},{key:"updateDevice",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.em,n=e.getDeviceModel(),r=t.frame||e.getCurrentFrameModel();if(r&&n){var i=n.attributes,o=i.width,a=i.height;r.set({width:o,height:a},{noUndo:1})}}},{key:"onZoomChange",value:function(){this.get('zoom')<1&&this.set('zoom',1)}}]),n}(d.Z),y=n(2316),b=n(827),w=n(9384),k=n(698);function x(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}var O=function(){function t(e,n){var r=this;(0,l.Z)(this,t),this.em=e;var i=n||e.get('Canvas').getFrames().map((function(t){return t.getComponent().getEl()})),a=Array.isArray(i)?i:[i];return this.el=i,this.counter=0,(0,o.bindAll)(this,'handleDragEnter','handleDragOver','handleDrop','handleDragLeave'),a.forEach((function(t){return r.toggleEffects(t,1)})),this}return(0,c.Z)(t,[{key:"toggleEffects",value:function(t,e){var n={on:a.on,off:a.off},r=e?'on':'off';n[r](t,'dragenter',this.handleDragEnter),n[r](t,'dragover',this.handleDragOver),n[r](t,'drop',this.handleDrop),n[r](t,'dragleave',this.handleDragLeave)}},{key:"__customTglEff",value:function(t){var e=t?a.on:a.off,n=this.el.ownerDocument,r=n.defaultView.frameElement;this.sortOpts=t?{onStart:function(t){var e=t.sorter;(0,a.on)(r,'pointermove',e.onMove)},onEnd:function(t){var e=t.sorter;(0,a.off)(r,'pointermove',e.onMove)},customTarget:function(t){var e=t.event;return n.elementFromPoint(e.clientX,e.clientY)}}:null,e(r,'pointerenter',this.handleDragEnter),e(r,'pointermove',this.handleDragOver),e(document,'pointerup',this.handleDrop),e(r,'pointerout',this.handleDragLeave)}},{key:"startCustom",value:function(){this.__customTglEff(!0)}},{key:"endCustom",value:function(t){this.over?this.endDrop(t):this.__customTglEff(!1)}},{key:"endDrop",value:function(t,e){var n=this.em,r=this.dragStop;this.counter=0,r&&r(t),this.__customTglEff(!1),n.trigger('canvas:dragend',e)}},{key:"handleDragLeave",value:function(t){this.updateCounter(-1,t)}},{key:"updateCounter",value:function(t,e){this.counter+=t,0===this.counter&&this.endDrop(1,e)}},{key:"handleDragEnter",value:function(t){var e=this,n=this.em,r=t.dataTransfer;if(this.updateCounter(1,t),!this.over){this.over=1;var o,a,s=n.get('Utils'),l=n.get('Canvas'),c=n.get('dragContent')||'
';if(n.stopDefault(),n.inAbsoluteMode()){var u=n.get('DomComponents').getWrapper(),f=u.append({})[0],h=n.get('Commands').run('core:component-drag',{event:t,guidesInfo:1,center:1,target:f,onEnd:function(t,n,i){var o;if(!i.cancelled){o=u.append(c)[0];var a=f.getStyle(),s=a.left,l=a.top,h=a.position;o.addStyle({left:s,top:l,position:h})}e.handleDragEnd(o,r),f.remove()}});o=function(e){return h.stop(t,{cancel:e})},a=function(t){return c=t}}else{var d=new s.Sorter(function(t){for(var e=1;e=0)a=t&&t.getData('text/html').replace(/<\/?meta[^>]*>/g,'');else if((0,o.indexOf)(n,'text/uri-list')>=0)a={type:'link',attributes:{href:a},content:a};else if((0,o.indexOf)(n,'text/json')>=0){var u=t&&t.getData('text/json');u&&(a=JSON.parse(u))}else 1===n.length&&'text/plain'===n[0]&&(a="
".concat(a,"
"));var f={content:a};return e.trigger('canvas:dragdata',t,f),f}}]),t}();function C(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function S(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return Object.keys(t).sort().map((function(e){return"[".concat(e,"=\"").concat(t[e],"\"]")})).join('')},s=function(t,e,n){t.forEach((function(t){var r=t.tag,i=t.attributes;!e.some((function(t){return t.tag===r&&a(t.attributes)===a(i)}))&&n.push(t)}))};s(i,o,r),s(o,i,n),n.forEach((function(t){var n=e.querySelector("".concat(t.tag).concat(a(t.attributes)));n&&n.parentNode.removeChild(n)})),(0,b.SJ)(e,r)}},{key:"getEl",value:function(){return this.el}},{key:"getCanvasModel",value:function(){return this.em.get('Canvas').getModel()}},{key:"getWindow",value:function(){return this.getEl().contentWindow}},{key:"getDoc",value:function(){return this.getEl().contentDocument}},{key:"getHead",value:function(){return this.getDoc().querySelector('head')}},{key:"getBody",value:function(){return this.getDoc().querySelector('body')}},{key:"getWrapper",value:function(){return this.getBody().querySelector('[data-gjs-type=wrapper]')}},{key:"getJsContainer",value:function(){return this.jsContainer||(this.jsContainer=(0,b.ut)('div',{class:"".concat(this.ppfx,"js-cont")})),this.jsContainer}},{key:"getToolsEl",value:function(){var t=this.config.frameWrapView;return t&&t.elTools}},{key:"getGlobalToolsEl",value:function(){return this.em.get('Canvas').getGlobalToolsEl()}},{key:"getHighlighter",value:function(){return this._getTool('[data-hl]')}},{key:"getBadgeEl",value:function(){return this._getTool('[data-badge]')}},{key:"getOffsetViewerEl",value:function(){return this._getTool('[data-offset]')}},{key:"getRect",value:function(){return this.rect||(this.rect=this.el.getBoundingClientRect()),this.rect}},{key:"getOffsetRect",value:function(){var t=this.el,e=this.getBody(),n=e.scrollTop,r=e.scrollLeft,i=t.offsetHeight,o=t.offsetWidth;return{top:t.offsetTop,left:t.offsetLeft,height:i,width:o,scrollTop:n,scrollLeft:r,scrollBottom:n+i,scrollRight:r+o}}},{key:"_getTool",value:function(t){var e=this.tools,n=this.getToolsEl();return e[t]||(e[t]=n.querySelector(t)),e[t]}},{key:"remove",value:function(){var t=this.wrapper;this._toggleEffects(),this.tools={},t&&t.remove(),y.View.prototype.remove.apply(this,arguments)}},{key:"startAutoscroll",value:function(){var t=this;this.lastMaxHeight=this.getWrapper().offsetHeight-this.el.offsetHeight,setTimeout((function(){t._toggleAutoscrollFx(1),requestAnimationFrame(t.autoscroll)}),0)}},{key:"autoscroll",value:function(){if(this.dragging){var t=this.lastClientY,e=this.em.get('Canvas'),n=this.getWindow(),r=this.getBody().scrollTop,i=t||0,a=e.getConfig().autoscrollLimit,s=this.getRect().height-a,l=r;if(is&&(l+=i-s),!(0,o.isUndefined)(t)&&l!==r&&l>0&&l0){var l=r.shift(),c=(0,b.ut)('script',S({type:'text/javascript'},(0,o.isString)(l)?{src:l}:l));c.onerror=c.onload=n.bind(null,r),e.contentDocument.head.appendChild(c)}else t.renderBody(),i&&i.trigger(a,s)};e.onload=function(){i&&i.trigger("".concat(a,":before"),s),c((0,r.Z)(l.get('scripts')))}}},{key:"renderStyles",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getHead(),n=this.getCanvasModel(),r=function(t){return t.map((function(t){return{tag:'link',attributes:S({rel:'stylesheet'},(0,o.isString)(t)?{href:t}:t)}}))},i=r(t.prev||n.previous('styles')),a=r(n.get('styles')),s=[],l=[],c=function(t,e,n){t.forEach((function(t){var r=t.attributes.href;!e.some((function(t){return t.attributes.href===r}))&&n.push(t)}))};c(a,i,l),c(i,a,s),s.forEach((function(t){var n=e.querySelector("link[href=\"".concat(t.attributes.href,"\"]"));n&&n.parentNode.removeChild(n)})),(0,b.SJ)(e,l)}},{key:"renderBody",value:function(){var t=this,e=this.config,n=this.model,r=this.ppfx,i=e.em,o=this.getDoc(),s=this.getBody(),l=this.getWindow(),c=i.get('Config');l._isEditor=!0,this.renderStyles({prev:[]});(0,b.R3)(s,""));var u=n.getComponent(),f=i.get('DomComponents').getType('wrapper').view;this.wrapper=new f({model:u,config:S(S({},u.config),{},{frameView:this})}).render(),(0,b.R3)(s,this.wrapper.el),(0,b.R3)(s,new k.Z({collection:n.getStyles(),config:S(S({},i.get('CssComposer').getConfig()),{},{frameView:this})}).render().el),(0,b.R3)(s,this.getJsContainer()),(0,a.on)(s,'click',(function(t){return t&&'A'==t.target.tagName&&t.preventDefault()})),(0,a.on)(s,'submit',(function(t){return t&&t.preventDefault()})),[{event:'keydown keyup keypress',class:'KeyboardEvent'},{event:'mousedown mousemove mouseup',class:'MouseEvent'},{event:'pointerdown pointermove pointerup',class:'PointerEvent'},{event:'wheel',class:'WheelEvent'}].forEach((function(e){return e.event.split(' ').forEach((function(n){o.addEventListener(n,(function(n){return t.el.dispatchEvent((0,b.t3)(n,e.class))}))}))})),this._toggleEffects(1),this.droppable=(0,a.hasDnd)(i)&&new O(i,this.wrapper.el),n.trigger('loaded')}},{key:"_toggleEffects",value:function(t){var e=t?a.on:a.off,n=this.getWindow();n&&e(n,"".concat(b.G1," resize"),this._emitUpdate)}},{key:"_emitUpdate",value:function(){this.model._emitUpdated()}}]),n}(y.View),T=n(1981);function E(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function j(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,o.bindAll)(this,'onScroll','frameLoaded','updateOffset','remove','startDrag');var n=this.model,r=j(j({},t.config||e),{},{frameWrapView:this}),i=r.canvasView,a=r.em;this.cv=i,this.config=r,this.em=a,this.canvas=a&&a.get('Canvas'),this.ppfx=r.pStylePrefix||'',this.frame=new _({model:n,config:r}),this.classAnim="".concat(this.ppfx,"frame-wrapper--anim"),this.updateOffset=(0,o.debounce)(this.updateOffset.bind(this)),this.updateSize=(0,o.debounce)(this.updateSize.bind(this)),this.listenTo(n,'loaded',this.frameLoaded),this.listenTo(n,'change:x change:y',this.updatePos),this.listenTo(n,'change:width change:height',this.updateSize),this.listenTo(n,'destroy remove',this.remove),this.updatePos(),this.setupDragger()}},{key:"setupDragger",value:function(){var t,e,n,r=this,i=this.canvas,o=this.model,a=function(t){i.toggleFramesEvents(t)};this.dragger=new T.Z({onStart:function(){var i=o.attributes,s=i.x,l=i.y;n=r.em.getZoomMultiplier(),t=s,e=l,a()},onEnd:function(){return a(1)},setPosition:function(r){o.set({x:t+r.x*n,y:e+r.y*n})}})}},{key:"startDrag",value:function(t){t&&this.dragger.start(t)}},{key:"__clear",value:function(t){var e=this.frame;e&&e.remove(t),(0,b.L_)(this.elTools)}},{key:"remove",value:function(t){var e=this;return this.__clear(t),y.View.prototype.remove.apply(this,arguments),['frame','dragger','cv','em','canvas','elTools'].forEach((function(t){return e[t]=0})),this}},{key:"updateOffset",value:function(){var t=this.em,e=this.$el,n=this.frame;t&&(t.runDefault({preserveSelected:1}),e.removeClass(this.classAnim),n.model._emitUpdated())}},{key:"updatePos",value:function(t){var e=this.model,n=this.el,r=e.attributes,i=r.x,o=r.y,a=n.style;this.frame.rect=0,a.left=isNaN(i)?i:"".concat(i,"px"),a.top=isNaN(o)?o:"".concat(o,"px"),t&&this.updateOffset()}},{key:"updateSize",value:function(){this.updateDim()}},{key:"updateDim",value:function(){var t=this.em,e=this.el,n=this.$el,r=this.model,i=this.classAnim,a=this.frame;if(a){a.rect=0,n.addClass(i);var s=this.__handleSize(),l=s.noChanges,c=s.width,u=s.height;((0,o.isNull)(c)||(0,o.isNull)(u))&&r.set(j(j({},c?{}:{width:e.offsetWidth}),u?{}:{height:e.offsetHeight}),{silent:1}),t.stopDefault({preserveSelected:1}),l?this.updateOffset():setTimeout(this.updateOffset,350)}}},{key:"onScroll",value:function(){var t=this.frame;this.em.trigger('frame:scroll',{frame:t,body:t.getBody(),target:t.getWindow()})}},{key:"frameLoaded",value:function(){this.frame.getWindow().onscroll=this.onScroll,this.updateDim()}},{key:"__handleSize",value:function(){var t=this.model,e=this.el.style,n=t.attributes,r=n.width,i=n.height,a=e.width||'',s=e.height||'',l=r||'',c=i||'',u=a==l&&s==c;return e.width=(0,o.isNumber)(l)?"".concat(l).concat("px"):l,e.height=(0,o.isNumber)(c)?"".concat(c).concat("px"):c,{noChanges:u,width:r,height:i,newW:l,newH:c}}},{key:"render",value:function(){var t=this.frame,e=this.$el,n=this.ppfx,r=this.cv,i=this.model,o=this.el,a=i.attributes.onRender;this.__clear(),this.__handleSize(),t.render(),e.empty().attr({class:"".concat(n,"frame-wrapper")}).append("\n
\n
\n ").concat(i.get('name')||'',"\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n ")).append(t.el);var s=(0,b.ut)('div',{class:"".concat(n,"tools"),style:'pointer-events:none; display: none'},"\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n "));this.elTools=s;var l=r.toolsWrapper;return l&&l.appendChild(s),a&&a({el:o,elTop:o.querySelector('[data-frame-top]'),elRight:o.querySelector('[data-frame-right]'),elBottom:o.querySelector('[data-frame-bottom]'),elLeft:o.querySelector('[data-frame-left]'),frame:i,frameWrapperView:this,remove:this.remove,startDrag:this.startDrag}),this}}]),n}(y.View);function A(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,h.Z)(t);if(e){var i=(0,h.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,f.Z)(this,n)}}var M,Z=function(t){(0,u.Z)(n,t);var e=A(n);function n(){var t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0;return(0,l.Z)(this,n),(t=e.call(this,r,i,!0)).listenTo(t.collection,'reset',t.render),t}return(0,c.Z)(n,[{key:"onRemoveBefore",value:function(t,e){t.forEach((function(t){return t.remove(e)}))}},{key:"onRender",value:function(){var t=this.config,e=this.$el,n=t.em;n&&e.attr({class:"".concat(n.getConfig('stylePrefix'),"frames")})}}]),n}(w.Z);function L(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function N(t){for(var e=1;e\n
\n ")}},{key:"initialize",value:function(t){(0,o.bindAll)(this,'clearOff','onKeyPress','onCanvasMove');var e=this.model;this.config=t.config||{},this.em=this.config.em||{},this.pfx=this.config.stylePrefix||'',this.ppfx=this.config.pStylePrefix||'',this.className=this.config.stylePrefix+'canvas';var n=this.em;this._initFrames(),this.listenTo(n,'change:canvasOffset',this.clearOff),this.listenTo(n,'component:selected',this.checkSelected),this.listenTo(e,'change:zoom change:x change:y',this.updateFrames),this.listenTo(e,'change:frames',this._onFramesUpdate),this.toggleListeners(1)}},{key:"_onFramesUpdate",value:function(){this._initFrames(),this._renderFrames()}},{key:"_initFrames",value:function(){var t=this.frames,e=this.model,n=this.config,r=this.em,i=e.get('frames');r.set('readyCanvas',0),i.once('loaded:all',(function(){return r.set('readyCanvas',1)})),t&&t.remove(),this.frames=new Z({collection:i,config:N(N({},n),{},{canvasView:this})})}},{key:"checkSelected",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.scroll,r=this.em.get('currentFrame');n&&t.views.forEach((function(t){t._getFrame()===r&&t.scrollIntoView(n)}))}},{key:"remove",value:function(){this.frames.remove(),this.frames={},y.View.prototype.remove.apply(this,arguments),this.toggleListeners()}},{key:"preventDefault",value:function(t){t&&(t.preventDefault(),t._parentEvent&&t._parentEvent.preventDefault())}},{key:"onCanvasMove",value:function(t){}},{key:"toggleListeners",value:function(t){this.el;var e=t?a.on:a.off;e(document,'keypress',this.onKeyPress),e(window,'scroll resize',this.clearOff)}},{key:"onKeyPress",value:function(t){var e=this.em;' '!==(0,a.getKeyChar)(t)||1===e.getZoomDecimal()||e.get('Canvas').isInputFocused()||(this.preventDefault(t),e.get('Editor').runCommand('core:canvas-move'))}},{key:"onWheel",value:function(t){if((t.ctrlKey||t.metaKey)&&this.em.getConfig('multiFrames')){this.preventDefault(t);var e=this.model,n=Math.max(-1,Math.min(1,t.wheelDelta||-t.detail)),r=e.get('zoom');e.set('zoom',r+2*n)}}},{key:"updateFrames",value:function(t){var e=this.em,n=this.model.attributes,r=n.x,i=n.y,o=this.getZoom(),a={preserveSelected:1},s=o?1/o:1;this.framesArea.style.transform="scale(".concat(o,") translate(").concat(r*s,"px, ").concat(i*s,"px)"),this.clearOff(),e.stopDefault(a),e.trigger('canvas:update',t),M&&clearTimeout(M),M=setTimeout((function(){return e.runDefault(a)}),300)}},{key:"getZoom",value:function(){return this.em.getZoomDecimal()}},{key:"isElInViewport",value:function(t){var e=(0,a.getElement)(t),n=(0,a.getElRect)(e),r=this.getFrameOffset(e),i=n.top,o=n.left;return i>=0&&o>=0&&i<=r.height&&o<=r.width}},{key:"offset",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(0,a.getElRect)(t),r=t.ownerDocument.body,i=e.noScroll;return{top:n.top+(i?0:r.scrollTop),left:n.left+(i?0:r.scrollLeft),width:n.width,height:n.height}}},{key:"clearOff",value:function(){this.frmOff=null,this.cvsOff=null}},{key:"getFrameOffset",value:function(t){if(!this.frmOff||t){var e=this.frame.el,n=t&&t.ownerDocument.defaultView,r=n?n.frameElement:e;this.frmOff=this.offset(r||e)}return this.frmOff}},{key:"getCanvasOffset",value:function(){return this.cvsOff||(this.cvsOff=this.offset(this.el)),this.cvsOff}},{key:"getElementPos",value:function(t,e){var n=this.getZoom(),r=e||{},i=this.getFrameOffset(t),o=this.getCanvasOffset(),a=this.offset(t,e),s=r.avoidFrameOffset?0:i.top,l=r.avoidFrameOffset?0:i.left;return{top:a.top*n+s-o.top,left:a.left*n+l-o.left,height:a.height*n,width:a.width*n,zoom:n,rect:a}}},{key:"getElementOffsets",value:function(t){var e=this;if(!t||(0,a.isTextNode)(t))return{};var n={},r=window.getComputedStyle(t);return['marginTop','marginRight','marginBottom','marginLeft','paddingTop','paddingRight','paddingBottom','paddingLeft'].forEach((function(t){n[t]=parseFloat(r[t])*e.getZoom()})),n}},{key:"getPosition",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.frame.el.contentDocument;if(e){var n=e.body,r=this.getZoom(),i=this.getFrameOffset(),o=this.getCanvasOffset(),a=t.noScroll;return{top:i.top+(a?0:n.scrollTop)*r-o.top,left:i.left+(a?0:n.scrollLeft)*r-o.left,width:o.width,height:o.height}}}},{key:"updateScript",value:function(t){var e=t.model,n=e.getId();t.scriptContainer||(t.scriptContainer=(0,b.ut)('div',{'data-id':n}),this.getJsContainer().appendChild(t.scriptContainer)),t.el.id=n,t.scriptContainer.innerHTML='';var r=document.createElement('script'),i=e.getScriptString(),o=e.get('script-props')?i:"function(){\n".concat(i,"\n;}"),a=JSON.stringify(e.__getScriptProps());r.innerHTML="\n setTimeout(function() {\n var item = document.getElementById('".concat(n,"');\n if (!item) return;\n (").concat(o,".bind(item))(").concat(a,")\n }, 1);"),setTimeout((function(){var e=t.scriptContainer;null==e||e.appendChild(r)}),0)}},{key:"getJsContainer",value:function(t){var e=this.getFrameView(t);return e&&e.getJsContainer()}},{key:"getFrameView",value:function(t){return t&&t._getFrame()||this.em.get('currentFrame')}},{key:"_renderFrames",value:function(){if(this.ready){var t=this.model,e=this.frames,n=this.em,r=this.framesArea,i=t.get('frames');i.listenToLoad(),e.render();var o=i.at(0),a=o&&o.view;n.setCurrentFrame(a),r&&r.appendChild(e.el),this.frame=a}}},{key:"render",value:function(){var t=this.el,e=this.$el,n=this.ppfx,r=this.config,i=this.em;e.html(this.template());var o=e.find('[data-frames]');this.framesArea=o.get(0);var s=e.find('[data-tools]');this.toolsWrapper=s.get(0),s.append("\n
\n
\n
\n
\n
\n
\n ").concat(r.extHl?"
"):'',"\n
\n
\n
\n
\n
\n
\n
\n "));var l=t.querySelector("#".concat(n,"tools"));return this.hlEl=t.querySelector(".".concat(n,"highlighter")),this.badgeEl=t.querySelector(".".concat(n,"badge")),this.placerEl=t.querySelector(".".concat(n,"placeholder")),this.ghostEl=t.querySelector(".".concat(n,"ghost")),this.toolbarEl=t.querySelector(".".concat(n,"toolbar")),this.resizerEl=t.querySelector(".".concat(n,"resizer")),this.offsetEl=t.querySelector(".".concat(n,"offset-v")),this.fixedOffsetEl=t.querySelector(".".concat(n,"offset-fixed-v")),this.toolsGlobEl=t.querySelector(".".concat(n,"tools-gl")),this.toolsEl=l,this.el.className=(0,a.getUiClass)(i,this.className),this.ready=1,this._renderFrames(),this}}]),n}(y.View);function B(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function V(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};n=V(V(V({},s),e),{},{module:this}),this.em=n.em;var r=n,i=r.scripts,o=r.styles,a=n.pStylePrefix;return a&&(n.stylePrefix=a+n.stylePrefix),t=new m({scripts:i,styles:o},e),this.model=t,this.startAutoscroll=this.startAutoscroll.bind(this),this.stopAutoscroll=this.stopAutoscroll.bind(this),this},onLoad:function(){this.model.init()},getModel:function(){return t},getConfig:function(){return n},getElement:function(){return e.el},getFrame:function(t){return this.getFrames()[t||0]},getFrameEl:function(){var t=(e||{}).frame;return t&&t.el},getFramesEl:function(){return e.framesArea},getWindow:function(){return this.getFrameEl().contentWindow},getDocument:function(){var t=this.getFrameEl();return t&&t.contentDocument},getBody:function(){var t=this.getDocument();return t&&t.body},_getCompFrame:function(t){return t&&t._getFrame()},_getLocalEl:function(t,e,n){var r=t,i=this._getCompFrame(e);return r=i?i[n]():r},getGlobalToolsEl:function(){return e.toolsGlobEl},getToolsEl:function(t){return this._getLocalEl(e.toolsEl,t,'getToolsEl')},getHighlighter:function(t){return this._getLocalEl(e.hlEl,t,'getHighlighter')},getBadgeEl:function(t){return this._getLocalEl(e.badgeEl,t,'getBadgeEl')},getPlacerEl:function(){return e.placerEl},getGhostEl:function(){return e.ghostEl},getToolbarEl:function(){return e.toolbarEl},getResizerEl:function(){return e.resizerEl},getOffsetViewerEl:function(t){return this._getLocalEl(e.offsetEl,t,'getOffsetViewerEl')},getFixedOffsetViewerEl:function(){return e.fixedOffsetEl},render:function(){return e&&e.remove(),(e=new F({model:t,config:n})).render().el},getOffset:function(){var t=this.offset(this.getFrameEl()),e=this.offset(this.getElement());return{top:t.top-e.top,left:t.left-e.left}},offset:function(t){return e.offset(t)},setCustomBadgeLabel:function(t){n.customBadgeLabel=t},getElementPos:function(t,n){return e.getElementPos(t,n)},getElementOffsets:function(t){return e.getElementOffsets(t)},getRect:function(){var t=e.getPosition(),n=t.top,r=t.left;return V(V({},e.getCanvasOffset()),{},{topScroll:n,leftScroll:r})},getTargetToElementDim:function(t,r){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=i||{},a=e.getPosition();if(a){var s=o.elPos||e.getElementPos(r),l=i.toRight||0,c=o.targetHeight||t.offsetHeight,u=o.targetWidth||t.offsetWidth,f=o.event||null,h=s.top-c,d=s.left;d+=l?s.width:0;var p=(d=l?d-u:d)s.top+s.height?s.top+s.height:g,left:p,elementTop:s.top,elementLeft:s.left,elementWidth:s.width,elementHeight:s.height,targetWidth:t.offsetWidth,targetHeight:t.offsetHeight,canvasTop:a.top,canvasLeft:a.left,canvasWidth:a.width,canvasHeight:a.height};return f&&n.em&&n.em.trigger(f,v),v}},canvasRectOffset:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=function(t){var e=t.defaultView;return e&&e.frameElement},o=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,o=arguments.length>2?arguments[2]:void 0,a=n.em.getZoomDecimal(),s=e?'top':'left',l=t.ownerDocument,c=r.offset?i(l):{},u=c.offsetTop,f=void 0===u?0:u,h=c.offsetLeft,d=void 0===h?0:h,p=l.body||{},g=p.scrollTop,v=void 0===g?0:g,m=p.scrollLeft,y=void 0===m?0:m,b=e?v:y,w=e?f:d;return o[s]-(b-w)*a};return{top:o(t,1,e),left:o(t,0,e)}},getTargetToElementFixed:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.pos||this.getElementPos(t),i=n.canvasOff||this.canvasRectOffset(t,r),a=e.offsetHeight||0,s=e.offsetWidth||0,l=r.left+r.width,c=this.getCanvasView(),u=c.getPosition(),f=c.getFrameOffset(t),h=n.event,d=-a,p=(0,o.isUndefined)(n.left)?r.width-s:n.left;p=r.left<-p?-r.left:p,p=l>u.width?p-(l-u.width):p;var g=r.height+a,v=g1&&void 0!==arguments[1]?arguments[1]:{},n=(0,a.getElement)(t),r=n&&(0,a.getViewEl)(n);r&&r.scrollIntoView(e)},startAutoscroll:function(t){var e=t&&t.view||this.em.getCurrentFrame();e&&e.startAutoscroll()},stopAutoscroll:function(t){var e=t&&t.view||this.em.getCurrentFrame();e&&e.stopAutoscroll()},setZoom:function(e){return t.set('zoom',parseFloat(e)),this},getZoom:function(){return parseFloat(t.get('zoom'))},setCoords:function(e,n){return t.set({x:parseFloat(e),y:parseFloat(n)}),this},getCoords:function(){var e=t.attributes;return{x:e.x,y:e.y}},getZoomDecimal:function(){return this.getZoom()/100},getZoomMultiplier:function(){var t=this.getZoomDecimal();return t?1/t:1},toggleFramesEvents:function(t){this.getFramesEl().style.pointerEvents=t?'':'none'},getFrames:function(){return t.get('frames').map((function(t){return t}))},addFrame:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.get('frames').add(V({},e),V(V({},n),{},{em:this.em}))},destroy:function(){var r=this;t.stopListening(),e&&e.remove(),[n,t,e].forEach((function(t){return{}})),['em','model','droppable'].forEach((function(t){return r[t]={}}))}}}},8445:(t,e,n)=>{"use strict";n.d(e,{Z:()=>O});var r=n(4942),i=n(5671),o=n(3144),a=n(9340),s=n(2963),l=n(1120),c=n(9050),u=n(2316),f=n(2982),h=n(6409),d=n(3168);function p(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function g(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},n=e.config,r=n.em,i=this.attributes,o=i.styles,a=i.component,s=r.get('DomComponents'),l=s.getConfig(),u=r.get('CssComposer').getAll(),f={};this.em=r;var h={em:r,config:l,frame:this,idMap:f};if(!(0,d.isComponent)(a)){var p=(0,d.isObject)(a)?a:{components:a};!p.type&&(p.type='wrapper');var g=s.getType('wrapper').model;this.set('component',new g(p,h))}if(o){if(!(0,d.isObject)(o)){var v=Object.keys(f);v.length&&Array.isArray(o)&&o.forEach((function(t){var e=t.selectors;if(e&&1==e.length){var n=e[0],r=n.name&&2===n.type&&n;if(r&&f[r.name])r.name=f[r.name];else if((0,c.isString)(n)&&'#'===n[0]){var i=n.substring(1);i&&f[i]&&(e[0]="#".concat(f[i]))}}})),u.add(o),this.set('styles',u)}}else this.set('styles',u);!t.width&&this.set(m,1),!t.height&&this.set(y,1)}},{key:"onRemove",value:function(){this.getComponent().remove({root:1})}},{key:"changesUp",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.temporary||t.noCount||t.avoidStore||this.set('changesCount',this.get('changesCount')+1)}},{key:"getComponent",value:function(){return this.get('component')}},{key:"getStyles",value:function(){return this.get('styles')}},{key:"disable",value:function(){this.trigger('disable')}},{key:"remove",value:function(){this.view=0;var t=this.collection;return t&&t.remove(this)}},{key:"getHead",value:function(){var t=this.get('head')||[];return(0,f.Z)(t)}},{key:"setHead",value:function(t){return this.set('head',(0,f.Z)(t))}},{key:"addHeadItem",value:function(t){var e=this.getHead();e.push(t),this.setHead(e)}},{key:"getHeadByAttr",value:function(t,e,n){return this.getHead().filter((function(r){return r.attributes&&r.attributes[t]==e&&(!n||n===r.tag)}))[0]}},{key:"removeHeadByAttr",value:function(t,e,n){var r=this.getHead(),i=this.getHeadByAttr(t,e,n),o=r.indexOf(i);o>=0&&(r.splice(o,1),this.setHead(r))}},{key:"addLink",value:function(t){var e='link';!this.getHeadByAttr('href',t,e)&&this.addHeadItem({tag:e,attributes:{href:t,rel:'stylesheet'}})}},{key:"removeLink",value:function(t){this.removeHeadByAttr('href',t,'link')}},{key:"addScript",value:function(t){var e='script';!this.getHeadByAttr('src',t,e)&&this.addHeadItem({tag:e,attributes:{src:t}})}},{key:"removeScript",value:function(t){this.removeHeadByAttr('src',t,'script')}},{key:"getPage",value:function(){var t=this.collection;return t&&t.page}},{key:"_emitUpdated",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.em.trigger('frame:updated',g({frame:this},t))}},{key:"toJSON",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=h.Z.prototype.toJSON.call(this,t),n=(0,c.result)(this,'defaults');return t.fromUndo&&delete e.component,delete e.styles,delete e.changesCount,e.__aw&&delete e.width,e.__ah&&delete e.height,(0,c.forEach)(e,(function(t,n){0===n.indexOf('_')&&delete e[n]})),(0,c.forEach)(n,(function(t,n){e[n]===t&&delete e[n]})),(0,c.forEach)(['attributes','head'],(function(t){(0,c.isEmpty)(e[t])&&delete e[t]})),e}}]),n}(h.Z);function w(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function k(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};(0,c.bindAll)(this,'itemLoaded'),this.config=e,this.on('reset',this.onReset),this.on('remove',this.onRemove)}},{key:"onReset",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.previousModels||[];r.map((function(t){return e.onRemove(t)}))}},{key:"onRemove",value:function(t){t&&t.onRemove()}},{key:"itemLoaded",value:function(){this.loadedItems++,this.loadedItems>=this.itemsToLoad&&(this.trigger('loaded:all'),this.listenToLoadItems(0))}},{key:"listenToLoad",value:function(){this.loadedItems=0,this.itemsToLoad=this.length,this.listenToLoadItems(1)}},{key:"listenToLoadItems",value:function(t){var e=this;this.forEach((function(n){return n[t?'on':'off']('loaded',e.itemLoaded)}))}},{key:"add",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.config;return u.Collection.prototype.add.call(this,t,k(k({},e),{},{config:n}))}}]),n}(u.Collection);O.prototype.model=b},8101:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>E});var r=n(9050);const i={stylePrefix:'cm-',inlineCss:!1};var o=n(5671),a=n(3144),s=n(9340),l=n(2963),c=n(1120),u=n(6409);function f(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,c.Z)(t);if(e){var i=(0,c.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,l.Z)(this,n)}}var h=function(t){(0,s.Z)(n,t);var e=f(n);function n(){return(0,o.Z)(this,n),e.apply(this,arguments)}return(0,a.Z)(n,[{key:"build",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={},r=e.em;if(e.cleanId&&r){var i=r.get('CssComposer').getAll(),o=i.toJSON().map((function(t){var e=t.selectors,n=e&&1===e.length&&e.models[0];return n&&n.isId()&&n.get('name')})).filter((function(t){return t}));n.attributes=function(t,e){var n=e.id;return n&&'i'===n[0]&&!t.get('script')&&!t.get('attributes').id&&o.indexOf(n)<0&&delete e.id,e}}return t.toHTML(n)}}]),n}(u.Z),d=n(8467),p=n(2316);function g(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,c.Z)(t);if(e){var i=(0,c.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,l.Z)(this,n)}}var v=function(t){(0,s.Z)(n,t);var e=g(n);function n(){return(0,o.Z)(this,n),e.apply(this,arguments)}return(0,a.Z)(n,[{key:"build",value:function(t){var e=t.toJSON();return this.beforeEach(e),(0,r.each)(e,(function(t,n){var r=e[n];if(r instanceof u.Z)e[n]=this.build(r);else if(r instanceof p.Collection){var i=r;e[n]=[],i.length&&i.each((function(t,r){e[n][r]=this.build(t)}),this)}}),this),e}},{key:"beforeEach",value:function(t){delete t.status}}]),n}(u.Z),m=n(4942);function y(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,c.Z)(t);if(e){var i=(0,c.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,l.Z)(this,n)}}var b,w=function(t){(0,s.Z)(n,t);var e=y(n);function n(){return(0,o.Z)(this,n),e.apply(this,arguments)}return(0,a.Z)(n,[{key:"mapModel",value:function(t){var e='',n=t.get('script-export')||t.get('script'),i=t.get('type'),o=t.get('components'),a=t.getId();if(n){var s=t.get('attributes');s=(0,r.extend)({},s,{id:a}),t.set('attributes',s,{silent:1});var l=t.getScriptString(n),c=t.get('script-props');if(t.get('scriptUpdated')&&!c)this.mapJs[i+'-'+a]={ids:[a],code:l};else{var u,f=this.mapJs[i];if(c&&(u=t.__getScriptProps()),f)f.ids.push(a),u&&(f.props[a]=u);else{var h={ids:[a],code:l};u&&(h.props=(0,m.Z)({},a,u)),this.mapJs[i]=h}}}return o.each((function(t){e+=this.mapModel(t)}),this),e}},{key:"build",value:function(t){this.mapJs={},this.mapModel(t);var e='';for(var n in this.mapJs){var r=this.mapJs[n];if(r.code)if(r.props){if(0===r.code.toString().match(/\{([\s\S]*)\}/m)[1].replace(/^\s*\/\/.*$/gm,'').trim().length)continue;e+="\n var props = ".concat(JSON.stringify(r.props),";\n var ids = Object.keys(props).map(function(id) { return '#'+id }).join(',');\n var els = document.querySelectorAll(ids);\n for (var i = 0, len = els.length; i < len; i++) {\n var el = els[i];\n (").concat(r.code,".bind(el))(props[el.id]);\n }")}else{var i='#'+r.ids.join(', #');e+="\n var items = document.querySelectorAll('".concat(i,"');\n for (var i = 0, len = items.length; i < len; i++) {\n (function(){\n").concat(r.code,"\n}.bind(items[i]))();\n }")}}return e}}]),n}(u.Z);function k(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function x(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,c.Z)(t);if(e){var i=(0,c.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,l.Z)(this,n)}}(0,n(3168).hasWin)()&&(b=n(4631),n(6531),n(6629),n(9210));var O=function(t){(0,s.Z)(n,t);var e=x(n);function n(){return(0,o.Z)(this,n),e.apply(this,arguments)}return(0,a.Z)(n,[{key:"defaults",value:function(){return{input:'',label:'',codeName:'',theme:'hopscotch',readOnly:!0,lineNumbers:!0}}},{key:"init",value:function(t){return(0,r.bindAll)(this,'onChange'),this.editor=b.fromTextArea(t,function(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},r=this.editor;r&&(r.setValue(t),r.autoFormatRange&&(b.commands.selectAll(r),r.autoFormatRange(r.getCursor(!0),r.getCursor(!1)),b.commands.goDocStart(r)),!n.noRefresh&&setTimeout((function(){return e.refresh()})))}}]),n}(u.Z);O.prototype.CodeMirror=b;var C,S=n(168),P=n(8595);function _(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,c.Z)(t);if(e){var i=(0,c.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,l.Z)(this,n)}}var T=function(t){(0,s.Z)(n,t);var e=_(n);function n(){return(0,o.Z)(this,n),e.apply(this,arguments)}return(0,a.Z)(n,[{key:"template",value:function(t){var e=t.pfx,n=t.codeName,r=t.label;return(0,P.Z)(C||(C=(0,S.Z)(["\n
\n
","
\n
\n
\n "])),e,e,n,e,r,e)}},{key:"initialize",value:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix}},{key:"render",value:function(){var t=this.model,e=this.pfx,n=this.$el,r=t.toJSON();return r.pfx=e,n.html(this.template(r)),n.attr('class',"".concat(e,"editor-c")),n.find("#".concat(e,"code")).append(t.get('input')),this}}]),n}(p.View);const E=function(){var t={},e={},n={},o={},a={},s='CodeMirror';return{getConfig:function(){return t},config:t,EditorView:T,name:'CodeManager',init:function(e){for(var r in t=e||{},i)r in t||(t[r]=i[r]);var o=t.pStylePrefix;return o&&(t.stylePrefix=o+t.stylePrefix),n.html=new h,n.css=new d.Z,n.json=new v,n.js=new w,a.CodeMirror=new O,this.loadDefaultGenerators().loadDefaultViewers(),this},addGenerator:function(t,n){return e[t]=n,this},getGenerator:function(t){return e[t]||null},getGenerators:function(){return e},addViewer:function(t,e){return o[t]=e,this},getViewer:function(t){return o[t]||null},getViewers:function(){return o},createViewer:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=(0,r.isUndefined)(t.type)?s:t.type,n=this.getViewer(e)&&this.getViewer(e).clone(),i=document.createElement('div'),o=document.createElement('textarea');return i.appendChild(o),n.set(t),n.init(o),n.setElement(i),n},updateViewer:function(t,e){t.setContent(e)},getCode:function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};r.em=t.em;var i=this.getGenerator(n);return i?i.build(e,r):''},loadDefaultGenerators:function(){for(var t in n)this.addGenerator(t,n[t]);return this},loadDefaultViewers:function(){for(var t in a)this.addViewer(t,a[t]);return this},destroy:function(){[t,e,n,o,a].forEach((function(t){return{}}))}}}},8467:(t,e,n)=>{"use strict";n.d(e,{U:()=>d,Z:()=>p});var r=n(5671),i=n(3144),o=n(9340),a=n(2963),s=n(1120),l=n(9050),c=n(6409),u=n(3168);function f(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var h=Number.MAX_VALUE,d=function(t){var e=/(-?\d*\.?\d+)\w{0,}/.exec(t);return e?e[0]:''},p=function(t){(0,o.Z)(n,t);var e=f(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"initialize",value:function(){(0,l.bindAll)(this,'sortRules'),this.compCls=[],this.ids=[]}},{key:"buildFromModel",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r='',i=this.em,o=i&&i.getConfig('avoidInlineStyle'),a=t.styleToString(),s=t.get('classes');this.ids.push("#".concat(t.getId())),s.each((function(t){return e.compCls.push(t.getFullName())})),!o&&a&&(r="#".concat(t.getId(),"{").concat(a,"}"));var l=t.components();return l.each((function(t){return r+=e.buildFromModel(t,n)})),r}},{key:"build",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.json,i=n.em||'',o=n.cssc||i&&i.get('CssComposer');this.em=i,this.compCls=[],this.ids=[],this.model=t;var a=[],s=t?this.buildFromModel(t,n):'',c=(0,l.isUndefined)(n.clearStyles)&&i?i.getConfig('clearStyles'):n.clearStyles;if(o){var f=n.rules||o.getAll(),h={},d=[];n.onlyMatched&&t&&(0,u.hasWin)()&&(f=this.matchedRules(t,f)),f.forEach((function(t){var i=t.getAtRule();if(i){var o=h[i];o?o.push(t):h[i]=[t]}else{var l=e.buildFromRule(t,d,n);r?a.push(l):s+=l}})),this.sortMediaObject(h).forEach((function(t){var i='',o=t.key;t.value.forEach((function(t){var l=e.buildFromRule(t,d,n);t.get('singleAtRule')?s+="".concat(o,"{").concat(l,"}"):i+=l,r&&a.push(l)})),i&&(s+="".concat(o,"{").concat(i,"}"))})),i&&c&&f.remove&&f.remove(d)}return r?a.filter((function(t){return t})):s}},{key:"buildFromRule",value:function(t,e){var n,r=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o='',a=this.model,s=t.selectorsToString({skipAdd:1}),l=t.get('selectorsAdd'),c=t.get('singleAtRule');if(t.get('selectors').each((function(t){var e=t.getFullName();(r.compCls.indexOf(e)>=0||r.ids.indexOf(e)>=0||i.keepUnusedStyles)&&(n=1)})),s&&n||l||c||!a){var u=t.getDeclaration({body:1});u&&(i.json?o=t:o+=u)}else e.push(t);return o}},{key:"matchedRules",value:function(t,e){var n=this,r=t.getEl(),i=[];return e.forEach((function(t){try{t.selectorsToString().split(',').some((function(t){return r.matches(n.__cleanSelector(t))}))&&i.push(t)}catch(t){}})),t.components().forEach((function(t){i=i.concat(n.matchedRules(t,e))})),i=i.filter((function(t,e){return i.indexOf(t)===e}))}},{key:"getQueryLength",value:function(t){var e=/(-?\d*\.?\d+)\w{0,}/.exec(t);return e?parseFloat(e[1]):h}},{key:"sortMediaObject",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=[];return(0,l.each)(e,(function(t,e){return n.push({key:e,value:t})})),n.sort((function(e,n){var r=[e.key,n.key].every((function(t){return-1!==t.indexOf('min-width')})),i=r?e.key:n.key,o=r?n.key:e.key;return t.getQueryLength(i)-t.getQueryLength(o)}))}},{key:"sortRules",value:function(t,e){var n=function(t){return t.get('mediaText')},r=[n(t),n(e)].every((function(t){return-1!==t.indexOf('min-width')})),i=n(r?t:e),o=n(r?e:t);return this.getQueryLength(i)-this.getQueryLength(o)}},{key:"__cleanSelector",value:function(t){return t.split(' ').map((function(t){return t.split(':')[0]})).join(' ')}}]),n}(c.Z)},6045:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>h});var r=n(2982),i=n(4942),o=n(9050),a=n(5884);const s={stylePrefix:'com-',defaults:[],strict:1};var l=n(4822);function c(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function u(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};e=u(u({},s),a),t=e.em;var h=e.pStylePrefix;return h&&(e.stylePrefix=h+e.stylePrefix),Object.keys(e.defaults).forEach((function(t){var n=e.defaults[t];n.id&&i.add(n.id,n)})),c['tlb-delete']={run:function(t){return t.runCommand('core:component-delete')}},c['tlb-clone']={run:function(t){t.runCommand('core:copy'),t.runCommand('core:paste',{action:'clone-component'})}},c['tlb-move']={run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=t.getModel(),a=n&&n.event,s=n.target,c=s||t.getSelected(),u=s?[s]:(0,r.Z)(t.getSelectedAll()),f=a&&'dragstart'==a.type,h={preserveSelected:1},d=['absolute','translate'];if(!c||!c.get('draggable'))return i.logWarning('The element is not draggable');var p=c.get('dmode')||i.get('dmode'),g=function(){return i.stopDefault(h)},v=(0,o.includes)(d,p);u.forEach((function(t){return t.trigger('disable')})),f?setTimeout(g,0):g();var m=function(t){i.trigger("".concat(l.OA,":start"),t)},y=function(t){i.trigger(l.OA,t)},b=function(e,n,r){u.forEach((function(t){return t.set('status','selected')})),t.select(u),c.emitUpdate(),i.trigger("".concat(l.OA,":end"),r),setTimeout((function(){return i.runDefault(h)})),(v||r.cancelled)&&i.set('_cmpDrag',1)};if(v)t.runCommand('core:component-drag',{guidesInfo:1,mode:p,target:c,onStart:m,onDrag:y,onEnd:b,event:a});else{f&&a.dataTransfer.setDragImage(c.view.el,0,0);var w=t.Commands.get('move-comp');w.onStart=m,w.onDrag=y,w.onEndMoveFromModel=b,w.initSorterFromModels(u)}u.forEach((function(t){return t.set('status','freezed-selected')}))}},c['core:undo']=function(t){return t.UndoManager.undo()},c['core:redo']=function(t){return t.UndoManager.redo()},f.forEach((function(e){var r=e[2],i=n(2828)("./".concat(e[1])).default,o="core:".concat(e[0]);c[o]=i,r&&(c[r]=i,['run','stop'].forEach((function(e){t.on("".concat(e,":").concat(r),(function(){for(var n,r=arguments.length,i=new Array(r),a=0;a1&&void 0!==arguments[1]?arguments[1]:{},n=this.get(t);if(n){var r=u(u({},n.constructor.prototype),e);this.add(t,r);var i=f.filter((function(e){return"core:".concat(e[0])===t&&e[2]}))[0];i&&this.add(i[2],r)}return this},has:function(t){return!!i[t]},getAll:function(){return i},run:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.runCommand(this.get(t),e)},stop:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.stopCommand(this.get(t),e)},isActive:function(t){return this.getActive().hasOwnProperty(t)},getActive:function(){return h},loadDefaultCommands:function(){for(var t in c)this.add(t,c[t]);return this},runCommand:function(n){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(n&&n.run){var o=n.id,a=t.get('Editor');this.isActive(o)&&!i.force&&e.strict||(r=a&&n.callRun(a,i),o&&n.stop&&!n.noStop&&!i.abort&&(h[o]=r))}return r},stopCommand:function(n){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(n&&n.run){var o=n.id,a=t.get('Editor');(this.isActive(o)||i.force||!e.strict)&&(o&&delete h[o],r=n.callStop(a,i))}return r},create:function(t){return t.stop||(t.noStop=1),new(a.default.extend(t))(e)},destroy:function(){[t,e,i,c,h].forEach((function(t){return{}}))}}}},9819:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t){t.DomComponents.clear(),t.CssComposer.clear()}}},2784:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>a});var r=n(9050),i=n(3168),o=n(1981);const a={run:function(t){(0,r.bindAll)(this,'onKeyUp','enableDragger','disableDragger'),this.editor=t,this.canvasModel=this.canvas.getCanvasView().model,this.toggleMove(1)},stop:function(t){this.toggleMove(),this.disableDragger()},onKeyUp:function(t){' '===(0,i.getKeyChar)(t)&&this.editor.stopCommand(this.id)},enableDragger:function(t){this.toggleDragger(1,t)},disableDragger:function(t){this.toggleDragger(0,t)},toggleDragger:function(t,e){var n=this.canvasModel,r=this.em,i=this.dragger,a=t?'add':'remove';this.getCanvas().classList[a]("".concat(this.ppfx,"is__grabbing")),i||(i=new o.Z({getPosition:function(){return{x:n.get('x'),y:n.get('y')}},setPosition:function(t){var e=t.x,r=t.y;n.set({x:e,y:r})},onStart:function(t,e){r.trigger('canvas:move:start',e)},onDrag:function(t,e){r.trigger('canvas:move',e)},onEnd:function(t,e){r.trigger('canvas:move:end',e)}}),this.dragger=i),t?i.start(e):i.stop()},toggleMove:function(t){var e=this.ppfx,n=t?'add':'remove',r=t?'on':'off',o={on:i.on,off:i.off},a=this.getCanvas(),s=["".concat(e,"is__grab")];!t&&s.push("".concat(e,"is__grabbing")),s.forEach((function(t){return a.classList[n](t)})),o[r](document,'keyup',this.onKeyUp),o[r](a,'mousedown',this.enableDragger),o[r](document,'mouseup',this.disableDragger)}}},5884:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>c});var r=n(5671),i=n(3144),o=n(9340),a=n(2963),s=n(1120);function l(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var c=function(t){(0,o.Z)(n,t);var e=l(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"initialize",value:function(t){this.config=t||{},this.editorModel=this.em=this.config.em||{},this.pfx=this.config.stylePrefix,this.ppfx=this.config.pStylePrefix,this.hoverClass=this.pfx+'hover',this.badgeClass=this.pfx+'badge',this.plhClass=this.pfx+'placeholder',this.freezClass=this.ppfx+'freezed',this.canvas=this.em.get&&this.em.get('Canvas'),this.init(this.config)}},{key:"onFrameScroll",value:function(t){}},{key:"getCanvas",value:function(){return this.canvas.getElement()}},{key:"getCanvasBody",value:function(){return this.canvas.getBody()}},{key:"getCanvasTools",value:function(){return this.canvas.getToolsEl()}},{key:"offset",value:function(t){var e=t.getBoundingClientRect();return{top:e.top+t.ownerDocument.body.scrollTop,left:e.left+t.ownerDocument.body.scrollLeft}}},{key:"init",value:function(t){}},{key:"callRun",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.id;if(t.trigger("run:".concat(n,":before"),e),!e||!e.abort){var r=e.sender||t,i=this.run(t,r,e);return t.trigger("run:".concat(n),i,e),t.trigger('run',n,i,e),i}t.trigger("abort:".concat(n),e)}},{key:"callStop",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.id,r=e.sender||t;t.trigger("stop:".concat(n,":before"),e);var i=this.stop(t,r,e);return t.trigger("stop:".concat(n),i,e),t.trigger('stop',n,i,e),i}},{key:"stopCommand",value:function(){this.em.get('Commands').stop(this.id)}},{key:"run",value:function(t,e){}},{key:"stop",value:function(t,e){}}]),n}(n(6409).Z)},7585:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(2982),i=n(9050);const o={run:function(t,e){var n=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=[],s=o.component||t.getSelectedAll();return(s=(0,i.isArray)(s)?(0,r.Z)(s):[s]).filter(Boolean).forEach((function(t){if(!t.get('removable'))return a.push(t),n.em.logWarning('The element is not removable',{component:t});t.remove()})),t.select(a),s}}},1035:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>c});var r=n(4942),i=n(9050),o=n(1981);function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function s(t){for(var e=1;e2&&void 0!==arguments[2]?arguments[2]:{};(0,i.bindAll)(this,'setPosition','onStart','onDrag','onEnd','getPosition','getGuidesStatic','renderGuide','getGuidesTarget');var a=r.target,c=r.event,u=r.mode,f=r.dragger,h=void 0===f?{}:f,d=a.getEl(),p=s({doc:d.ownerDocument,onStart:this.onStart,onEnd:this.onEnd,onDrag:this.onDrag,getPosition:this.getPosition,setPosition:this.setPosition,guidesStatic:function(){return n.guidesStatic},guidesTarget:function(){return n.guidesTarget}},h);this.setupGuides(),this.opts=r,this.editor=t,this.em=t.getModel(),this.target=a,this.isTran='translate'==u,this.guidesContainer=this.getGuidesContainer(),this.guidesTarget=this.getGuidesTarget(),this.guidesStatic=this.getGuidesStatic();var g=this.dragger;return g?g.setOptions(p):(g=new o.Z(p),this.dragger=g),c&&g.start(c),this.toggleDrag(1),this.em.trigger("".concat(l,":start"),this.getEventOpts()),g},getEventOpts:function(){return{mode:this.opts.mode,target:this.target,guidesTarget:this.guidesTarget,guidesStatic:this.guidesStatic}},stop:function(){this.toggleDrag()},setupGuides:function(){(this.guides||[]).forEach((function(t){var e=t.guide;e&&e.parentNode.removeChild(e)})),this.guides=[]},getGuidesContainer:function(){var t=this,e=this.guidesEl;if(!e){var n=this.editor,r=this.em,o=this.opts,a=n.getConfig('stylePrefix'),s=document.createElement('div'),l=document.createElement('div'),c="
\n
\n
");(e=document.createElement('div')).className="".concat(a,"guides"),s.className="".concat(a,"guide-info ").concat(a,"guide-info__x"),l.className="".concat(a,"guide-info ").concat(a,"guide-info__y"),s.innerHTML=c,l.innerHTML=c,e.appendChild(s),e.appendChild(l),n.Canvas.getGlobalToolsEl().appendChild(e),this.guidesEl=e,this.elGuideInfoX=s,this.elGuideInfoY=l,this.elGuideInfoContentX=s.querySelector(".".concat(a,"guide-info__content")),this.elGuideInfoContentY=l.querySelector(".".concat(a,"guide-info__content")),r.on('canvas:update frame:scroll',(0,i.debounce)((function(){t.updateGuides(),o.debug&&t.guides.forEach((function(e){return t.renderGuide(e)}))}),200))}return e},getGuidesStatic:function(){var t=this,e=[],n=this.target.getEl(),r=n.parentNode,o=void 0===r?{}:r;return(0,i.each)(o.children,(function(r){return e=e.concat(n!==r?t.getElementGuides(r):[])})),e.concat(this.getElementGuides(o))},getGuidesTarget:function(){return this.getElementGuides(this.target.getEl())},updateGuides:function(t){var e,n,r=this;(t||this.guides).forEach((function(t){var o=t.origin,a=e===o?n:r.getElementPos(o);e=o,n=a,(0,i.each)(r.getGuidePosUpdate(t,a),(function(e,n){return t[n]=e})),t.originRect=a}))},getGuidePosUpdate:function(t,e){var n={},r=e.top,i=e.height,o=e.left,a=e.width;switch(t.type){case't':n.y=r;break;case'b':n.y=r+i;break;case'l':n.x=o;break;case'r':n.x=o+a;break;case'x':n.x=o+a/2;break;case'y':n.y=r+i/2}return n},renderGuide:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.guide||document.createElement('div'),n='px',r=t.active?2:1,i=e.children[0];return e.style="position: absolute; background-color: ".concat(t.active?'green':'red',";"),e.children.length||((i=document.createElement('div')).style='position: absolute; color: red; padding: 5px; top: 0; left: 0;',e.appendChild(i)),t.y?(e.style.width='100%',e.style.height="".concat(r).concat(n),e.style.top="".concat(t.y).concat(n),e.style.left=0):(e.style.width="".concat(r).concat(n),e.style.height='100%',e.style.left="".concat(t.x).concat(n),e.style.top="0".concat(n)),!t.guide&&this.guidesContainer.appendChild(e),e},getElementPos:function(t){return this.editor.Canvas.getElementPos(t,{noScroll:1})},getElementGuides:function(t){var e=this,n=this.opts,r=this.getElementPos(t),i=r.top,o=r.height,a=r.left,l=r.width,c=[{type:'t',y:i},{type:'b',y:i+o},{type:'l',x:a},{type:'r',x:a+l},{type:'x',x:a+l/2},{type:'y',y:i+o/2}].map((function(i){return s(s({},i),{},{origin:t,originRect:r,guide:n.debug&&e.renderGuide(i)})}));return c.forEach((function(t){return e.guides.push(t)})),c},getTranslate:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'x',n=0;return(t||'').split(' ').forEach((function(t){var r=t.trim(),i="translate".concat(e.toUpperCase(),"(");0===r.indexOf(i)&&(n=parseFloat(r.replace(i,'')))})),n},setTranslate:function(t,e,n){var r="translate".concat(e.toUpperCase(),"("),i="".concat(r).concat(n,")"),o=(t||'').split(' ').map((function(t){return 0===t.trim().indexOf(r)&&(t=i),t})).join(' ');return o.indexOf(r)<0&&(o+=" ".concat(i)),o},getPosition:function(){var t=this.target,e=this.isTran,n=t.getStyle(),r=n.left,i=n.top,o=n.transform,a=0,s=0;return e?(a=this.getTranslate(o),s=this.getTranslate(o,'y')):(a=parseFloat(r||0),s=parseFloat(i||0)),{x:a,y:s}},setPosition:function(t){var e=t.x,n=t.y,r=t.end,o=t.position,a=t.width,s=t.height,l=this.target,c=this.isTran,u=this.em,f=r?'':1,h="".concat(e).concat("px"),d="".concat(n).concat("px"),p={};if(c){var g=l.getStyle().transform||'';g=this.setTranslate(g,'x',h),p={transform:g=this.setTranslate(g,'y',d),en:f},l.addStyle(p,{avoidStore:!r})}else{var v={position:o,width:a,height:s},m={left:h,top:d,en:f};(0,i.keys)(v).forEach((function(t){var e=v[t];e&&(m[t]=e)})),p=m,l.addStyle(p,{avoidStore:!r})}u.getSelected()&&(0,i.keys)(p).forEach((function(t){return u.trigger("update:component:style:".concat(t))}))},_getDragData:function(){var t=this.target;return{target:t,parent:t.parent(),index:t.index()}},onStart:function(t){var e=this.target,n=this.editor,r=this.isTran,i=this.opts,o=i.center,a=i.onStart,s=n.Canvas,l=e.getStyle(),c='absolute',u=[c,'relative'];if(a&&a(this._getDragData()),!r&&l.position!==c){var f,h=s.offset(e.getEl()),d=h.left,p=h.top,g=h.width,v=h.height,m=e.parent();do{var y=m.getStyle();f=u.indexOf(y.position)>=0?m:null,m=m.parent()}while(m&&!f);if(o){var b=s.getMouseRelativeCanvas(t);d=b.x,p=b.y}else if(f){var w=s.offset(f.getEl());d-=w.left,p-=w.top}this.setPosition({x:d,y:p,width:"".concat(g,"px"),height:"".concat(v,"px"),position:c})}},onDrag:function(){var t=this,e=this.guidesTarget,n=this.opts,r=n.onDrag;this.updateGuides(e),n.debug&&e.forEach((function(e){return t.renderGuide(e)})),n.guidesInfo&&this.renderGuideInfo(e.filter((function(t){return t.active}))),r&&r(this._getDragData())},onEnd:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.editor,i=this.opts,o=this.id,a=i.onEnd;a&&a(t,n,s(s({event:t},n),this._getDragData())),r.stopCommand(o),this.hideGuidesInfo(),this.em.trigger("".concat(l,":end"),this.getEventOpts())},hideGuidesInfo:function(){var t=this;['X','Y'].forEach((function(e){var n=t["elGuideInfo".concat(e)];n&&(n.style.display='none')}))},renderGuideInfo:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=this.guidesStatic;this.hideGuidesInfo(),e.forEach((function(e){var r=e.origin,o=e.x,a=t.getElementPos(r),c=(0,i.isUndefined)(o)?'y':'x',u='y'===c,f=a[u?'left':'top'],h=a.rect[u?'left':'top'],d=u?f+a.width:f+a.height,p=u?h+a.rect.width:h+a.rect.height,g=t["elGuideInfo".concat(c.toUpperCase())],v=t["elGuideInfoContent".concat(c.toUpperCase())],m=g.style,y=n.filter((function(t){return t.type===e.type})).map((function(t){var e=t.originRect,n=e.left,r=e.width,i=e.top,o=e.height,a=u?n+r:i+o;return{gap:a0})).sort((function(t,e){return t.gap-e.gap})).map((function(t){return t.guide}))[0];if(y){var b=y.originRect,w=b.left,k=b.width,x=b.top,O=b.height,C=b.rect,S=u?w{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t){if(t.Canvas.hasFocus()){var e=[];t.getSelectedAll().forEach((function(t){var n=t.components(),r=n&&n.filter((function(t){return t.get('selectable')}))[0];r&&e.push(r)})),e.length&&t.select(e)}}}},9666:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(t.Canvas.hasFocus()||n.force){var r=[];t.getSelectedAll().forEach((function(t){for(var e=t.parent();e&&!e.get('selectable');)e=e.parent();e&&r.push(e)})),r.length&&t.select(r)}}}},7350:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t){if(t.Canvas.hasFocus()){var e=[];t.getSelectedAll().forEach((function(t){var n=t.parent();if(n){var r,i=n.components().length,o=0,a=0;do{o++,r=(a=t.index()+o)<=i?n.getChildAt(a):null}while(r&&!r.get('selectable'));e.push(r||t)}})),e.length&&t.select(e)}}}},6572:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t){if(t.Canvas.hasFocus()){var e=[];t.getSelectedAll().forEach((function(t){var n=t.parent();if(n){var r,i=0,o=0;do{i++,r=(o=t.index()-i)>=0?n.getChildAt(o):null}while(r&&!r.get('selectable'));e.push(r||t)}})),e.length&&t.select(e)}}}},9097:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(9050);const i={run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=n.target,o=[];if(!i.get('styles'))return o;var a=i.get('type'),s=t.Pages.getAllWrappers(),l=(0,r.flatten)(s.map((function(t){return t.findType(a)}))).length;if(!l){var c=t.CssComposer.getAll();o=c.filter((function(t){return t.get('group')==="cmp:".concat(a)})),c.remove(o)}return o}}},515:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(2982);const i={run:function(t){var e=t.getModel(),n=(0,r.Z)(t.getSelectedAll());n.length&&e.set('clipboard',n)}}},2095:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>l});var r=n(9050),i=n(2316),o=n.n(i),a=n(7208),s=o().$;const l=(0,r.extend)({},a.default,{init:function(t){(0,r.bindAll)(this,'startDelete','stopDelete','onDelete'),this.hoverClass=this.pfx+'hover-delete',this.badgeClass=this.pfx+'badge-red'},enable:function(){this.$el.find('*').mouseover(this.startDelete).mouseout(this.stopDelete).click(this.onDelete)},startDelete:function(t){t.stopPropagation();var e=s(t.target);e.data('model').get('removable')&&(e.addClass(this.hoverClass),this.attachBadge(e.get(0)))},stopDelete:function(t){t.stopPropagation(),s(t.target).removeClass(this.hoverClass),this.badge&&this.badge.css({left:-1e3,top:-1e3})},onDelete:function(t){t.stopPropagation();var e=s(t.target);e.data('model').get('removable')&&(e.data('model').destroy(),this.removeBadge(),this.clean())},updateBadgeLabel:function(t){this.badge.html('Remove '+t.getName())}})},6949:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(2316),i=n.n(r)().$;const o={run:function(t,e){var n=this;e&&e.set&&e.set('active',0);var r=t.getConfig(),o=t.Modal,a=r.stylePrefix;if(this.cm=t.CodeManager||null,!this.$editors){var s=this.buildEditor('htmlmixed','hopscotch','HTML'),l=this.buildEditor('css','hopscotch','CSS');this.htmlEditor=s.el,this.cssEditor=l.el;var c=i("
"));c.append(s.$el).append(l.$el),this.$editors=c}o.open({title:r.textViewCode,content:this.$editors}).getModel().once('change:open',(function(){return t.stopCommand(n.id)})),this.htmlEditor.setContent(t.getHtml()),this.cssEditor.setContent(t.getCss())},stop:function(t){var e=t.Modal;e&&e.close()},buildEditor:function(t,e,n){var r=document.createElement('textarea');!this.codeMirror&&(this.codeMirror=this.cm.getViewer('CodeMirror'));var i=this.codeMirror.clone().set({label:n,codeName:t,theme:e,input:r}),o=new this.cm.EditorView({model:i,config:this.cm.getConfig()}).render().$el;return i.init(r),{el:i,$el:o}}}},6945:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(9050);const i={isEnabled:function(){var t=document;return t.fullscreenElement||t.webkitFullscreenElement||t.mozFullScreenElement?1:0},enable:function(t){var e='';return t.requestFullscreen?t.requestFullscreen():t.webkitRequestFullscreen?(e='webkit',t.webkitRequestFullscreen()):t.mozRequestFullScreen?(e='moz',t.mozRequestFullScreen()):t.msRequestFullscreen?t.msRequestFullscreen():console.warn('Fullscreen not supported'),e},disable:function(){var t=document;this.isEnabled()&&(t.exitFullscreen?t.exitFullscreen():t.webkitExitFullscreen?t.webkitExitFullscreen():t.mozCancelFullScreen?t.mozCancelFullScreen():t.msExitFullscreen&&t.msExitFullscreen())},fsChanged:function(t,e){document;var n=(t||'')+'fullscreenchange';this.isEnabled()||(this.stop(null,this.sender),document.removeEventListener(n,this.fsChanged))},run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.sender=e;var i=n.target,o=(0,r.isElement)(i)?i:document.querySelector(i),a=this.enable(o||t.getContainer());this.fsChanged=this.fsChanged.bind(this,a),document.addEventListener(a+'fullscreenchange',this.fsChanged),t.trigger('change:canvasOffset')},stop:function(t,e){e&&e.set&&e.set('active',!1),this.disable(),t&&t.trigger('change:canvasOffset')}}},5317:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>u});var r=n(9050),i=n(2316),o=n.n(i),a=n(3168),s=n(7208),l=n(1988),c=o().$;const u=(0,r.extend)({},l.default,s.default,{init:function(t){s.default.init.apply(this,arguments),(0,r.bindAll)(this,'initSorter','rollback','onEndMove'),this.opt=t,this.hoverClass=this.ppfx+'highlighter-warning',this.badgeClass=this.ppfx+'badge-warning',this.noSelClass=this.ppfx+'no-select'},enable:function(){for(var t=arguments.length,e=new Array(t),n=0;n{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(9050),i=n(827);const o={open:function(t){var e=this,n=this.editor,i=this.title,o=this.config,a=this.am,s=o.custom;if((0,r.isFunction)(s.open))return s.open(a.__customData());n.Modal.open({title:i,content:t}).onceClose((function(){return n.stopCommand(e.id)}))},close:function(){var t=this.config.custom;if((0,r.isFunction)(t.close))return t.close(this.am.__customData());var e=this.editor.Modal;e&&e.close()},run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=t.AssetManager,o=r.getConfig(),a=n.types,s=void 0===a?[]:a,l=n.accept,c=n.select;if(this.title=n.modalTitle||t.t('assetManager.modalTitle')||'',this.editor=t,this.config=o,this.am=r,r.setTarget(n.target),r.onClick(n.onClick),r.onDblClick(n.onDblClick),r.onSelect(n.onSelect),r.__behaviour({select:c,types:s,options:n}),o.custom)this.rendered=this.rendered||(0,i.ut)('div'),this.rendered.className="".concat(o.stylePrefix,"custom-wrp"),r.__behaviour({container:this.rendered}),r.__trgCustom();else{if(!this.rendered||s){var u=r.getAll().filter((function(t){return t}));s&&s.length&&(u=u.filter((function(t){return-1!==s.indexOf(t.get('type'))}))),r.render(u),this.rendered=r.getContainer()}if(l){var f=this.rendered.querySelector("input#".concat(o.stylePrefix,"uploadFile"));f&&f.setAttribute('accept',l)}}return this.open(this.rendered),this},stop:function(t){this.editor=t,this.close(this.rendered)}}},490:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(9050),i=n(827);const o={open:function(){var t=this.container,e=this.editor,n=this.bm,i=this.config,o=i.custom,a=i.appendTo;if((0,r.isFunction)(o.open))return o.open(n.__customData());if(this.firstRender&&!a){var s='views-container',l=e.Panels;(l.getPanel(s)||l.addPanel({id:s})).set('appendContent',t).trigger('change:appendContent'),o||t.appendChild(n.render())}t&&(t.style.display='block')},close:function(){var t=this.container,e=this.config.custom;if((0,r.isFunction)(e.close))return e.close(this.bm.__customData());t&&(t.style.display='none')},run:function(t){var e=t.Blocks;this.config=e.getConfig(),this.firstRender=!this.container,this.container=this.container||(0,i.ut)('div'),this.editor=t,this.bm=e;var n=this.container;e.__behaviour({container:n}),this.config.custom&&e.__trgCustom(),this.open()},stop:function(){this.close()}}},3403:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>r});const r={run:function(t){var e=t.LayerManager,n=t.Panels;if(!e.getConfig().appendTo){if(!this.layers){var r='views-container',i=document.createElement('div'),o=n.getPanel(r)||n.addPanel({id:r});i.appendChild(e.render()),o.set('appendContent',i).trigger('change:appendContent'),this.layers=i}this.layers.style.display='block'}},stop:function(){var t=this.layers;t&&(t.style.display='none')}}},9346:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(2316),i=n.n(r)().$;const o={run:function(t,e){if(this.sender=e,!this.$cn){var n=t.getConfig(),r=t.Panels,o='change:appendContent';this.$cn=i('
'),this.$cn2=i('
'),this.$cn.append(this.$cn2);var a=t.DeviceManager;if(a&&n.showDevices){var s=r.addPanel({id:'devices-c'}),l=a.render();s.set('appendContent',l).trigger(o)}var c=t.SelectorManager;this.slm=c;var u=c.getConfig();u.custom?c.__trgCustom({container:this.$cn2.get(0)}):u.appendTo||this.$cn2.append(c.render([]));var f=t.StyleManager;this.sm=f;var h=f.getConfig(),d=h.stylePrefix;this.$header=i("
").concat(t.t('styleManager.empty'),"
")),this.$cn.append(this.$header),h.custom?f.__trgCustom({container:this.$cn2.get(0)}):h.appendTo||this.$cn2.append(f.render());var p='views-container';this.panel=r.getPanel(p),this.panel||(this.panel=r.addPanel({id:p})),this.panel.set('appendContent',this.$cn).trigger(o),this.em=t.getModel(),this.listenTo(this.em,f.events.target,this.toggleSm)}this.toggleSm()},toggleSm:function(){var t,e,n,r,i=this.sender,o=this.sm;i&&i.get&&!i.get('active')||!o||(o.getSelected()?(null===(t=this.$cn2)||void 0===t||t.show(),null===(e=this.$header)||void 0===e||e.hide()):(null===(n=this.$cn2)||void 0===n||n.hide(),null===(r=this.$header)||void 0===r||r.show()))},stop:function(){var t,e;null===(t=this.$cn2)||void 0===t||t.hide(),null===(e=this.$header)||void 0===e||e.hide()}}},2643:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(2316),i=n.n(r)().$;const o={run:function(t,e){this.sender=e;var n=t.getModel(),r=t.Config.stylePrefix,o=t.TraitManager,a=o.getConfig();if(!a.appendTo){if(!this.$cn){this.$cn=i('
'),this.$cn2=i('
'),this.$cn.append(this.$cn2),this.$header=i('
').append("
").concat(n.t('traitManager.empty'),"
")),this.$cn.append(this.$header),this.$cn2.append("
").concat(n.t('traitManager.label'),"
")),this.$cn2.append(o.render());var s=t.Panels;(s.getPanel('views-container')?s.getPanel('views-container'):s.addPanel({id:'views-container'})).set('appendContent',this.$cn.get(0)).trigger('change:appendContent'),this.target=t.getModel(),this.listenTo(this.target,'component:toggled',this.toggleTm)}this.toggleTm()}},toggleTm:function(){var t=this.sender;t&&t.get&&!t.get('active')||(1===this.target.getSelectedAll().length?(this.$cn2.show(),this.$header.hide()):(this.$cn2.hide(),this.$header.show()))},stop:function(){this.$cn2&&this.$cn2.hide(),this.$header&&this.$header.hide()}}},5966:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(9050);const i={run:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=t.getModel(),o=i.get('clipboard'),a=t.getSelected();o&&a&&(t.getSelectedAll().forEach((function(e){if(e){var i=e.collection;if(i){var a,s={at:i.indexOf(e)+1,action:n.action||'paste-component'},l=o.filter((function(t){return t.get('copyable')}));a=(0,r.contains)(o,e)&&e.get('copyable')?i.add(e.clone(),s):i.add(l.map((function(t){return t.clone()})),s),(a=(0,r.isArray)(a)?a:[a]).forEach((function(e){return t.trigger('component:paste',e)}))}}})),a.emitUpdate())}}},2074:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>a});var r=n(2982),i=n(9050),o='sw-visibility';const a={getPanels:function(t){return this.panels||(this.panels=t.Panels.getPanels()),this.panels},preventDrag:function(t){t.abort=1},tglEffects:function(t){var e=this.em,n=t?'on':'off';if(e){var r=e.get('Canvas'),o=r.getBody(),a=r.getToolbarEl();a&&(a.style.display=t?'none':'');var s=o.querySelectorAll(".".concat(this.ppfx,"no-pointer"));(0,i.each)(s,(function(e){return e.style.pointerEvents=t?'all':''})),e[n]('run:tlb-move:before',this.preventDrag)}},run:function(t,e){var n=this;this.sender=e,this.selected=(0,r.Z)(t.getSelectedAll()),t.select(),this.shouldRunSwVisibility||(this.shouldRunSwVisibility=t.Commands.isActive(o)),this.shouldRunSwVisibility&&t.stopCommand(o),t.getModel().stopDefault();var i=this.getPanels(t),a=t.Canvas.getElement(),s=t.getEl(),l=t.Config.stylePrefix;if(!this.helper){var c=document.createElement('span');c.className="".concat(l,"off-prv fa fa-eye-slash"),s.appendChild(c),c.onclick=function(){return n.stopCommand()},this.helper=c}this.helper.style.display='inline-block',i.forEach((function(t){return t.set('visible',!1)}));var u=a.style;u.width='100%',u.height='100%',u.top='0',u.left='0',u.padding='0',u.margin='0',t.refresh(),this.tglEffects(1)},stop:function(t){var e=this.sender,n=void 0===e?{}:e,r=this.selected;n.set&&n.set('active',0);var i=this.getPanels(t);this.shouldRunSwVisibility&&(t.runCommand(o),this.shouldRunSwVisibility=!1),t.getModel().runDefault(),i.forEach((function(t){return t.set('visible',!0)})),t.Canvas.getElement().setAttribute('style',''),r&&t.select(r),delete this.selected,this.helper&&(this.helper.style.display='none'),t.refresh(),this.tglEffects()}}},3953:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(4942);function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}const o={run:function(t,e,n){var o=n||{},a=t.Canvas,s=a.getCanvasView(),l=function(t){for(var e=1;e{"use strict";n.r(e),n.d(e,{default:()=>_});var r=n(1002),i=n(4942),o=n(2316),a=n.n(o),s=n(9050),l=n(3168),c=n(827),u=n(3144),f=n(5671),h=n(9340),d=n(2963),p=n(1120),g=n(9384);function v(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function m(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=t.config,n=void 0===e?{}:e;this.em=n.em,this.editor=n.editor},handleClick:function(t){t.preventDefault(),t.stopPropagation();var e=this.editor,n=this.em,r=e.Canvas.getFrameEl().getBoundingClientRect(),i=r.left,o=r.top,a=m(m({},t),{},{clientX:t.clientX-i,clientY:t.clientY-o});n.trigger('toolbar:run:before'),this.execCommand(a)},execCommand:function(t){var e={event:t},n=this.model.get('command'),r=this.editor;'function'==typeof n&&n(r,null,e),'string'==typeof n&&r.runCommand(n,e)},render:function(){var t=this.editor,e=this.$el,n=this.model,r=n.get('id'),i=n.get('label'),o=t.getConfig('stylePrefix');return e.addClass("".concat(o,"toolbar-item")),r&&e.addClass("".concat(o,"toolbar-item__").concat(r)),i&&e.append(i),this}});function b(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,p.Z)(t);if(e){var i=(0,p.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,d.Z)(this,n)}}var w=function(t){(0,h.Z)(n,t);var e=b(n);function n(){var t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0;return(0,f.Z)(this,n),(t=e.call(this,r,i)).config={editor:r.editor||'',em:r.em},t.listenTo(t.collection,'reset',t.render),t}return(0,u.Z)(n)}(g.Z);w.prototype.itemView=y;const k=a().Model.extend({defaults:{command:'',attributes:{}}}),x=a().Collection.extend({model:k});function O(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function C(t){for(var e=1;e2&&void 0!==arguments[2]?arguments[2]:{},r=n.el||this.canvas.getToolsEl(e);return r&&(r.style.display=t?'':'none'),r||{}},showElementOffset:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};S&&this.editor.runCommand('show-offset',{el:t,elPos:e,view:n.view,force:1,top:0,left:0})},hideElementOffset:function(t){this.editor.stopCommand('show-offset',{view:t})},showFixedElementOffset:function(t,e){this.editor.runCommand('show-offset',{el:t,elPos:e,state:'Fixed'})},hideFixedElementOffset:function(t,e){this.editor&&this.editor.stopCommand('show-offset',{state:'Fixed'})},hideHighlighter:function(t){this.canvas.getHighlighter(t).style.opacity=0},onClick:function(t){t.stopPropagation(),t.preventDefault();var e=this.em;if(e.get('_cmpDrag'))return e.set('_cmpDrag');var n=P(t.target),r=n.data('model');if(!r)for(var i=n.parent();!r&&i.length&&!(0,c.Mx)(i[0]);)r=i.data('model'),i=i.parent();if(r){if(e.isEditing()&&!r.get('textable')&&r.isChildOf('text'))return;this.select(r,t)}},select:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t&&(this.editor.select(t,{event:e,useValid:!0}),this.initResize(t))},updateBadge:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.canvas,i=P(t).data('model');if(i&&i.get('badgable')){var o=this.getBadge(n);if(!n.posOnly){var a=this.canvas.getConfig(),s=i.getIcon(),l=a.pStylePrefix||'',c="".concat(l,"badge"),u=a.customBadgeLabel,f="".concat(s?"
").concat(s,"
"):'',"\n
").concat(i.getName(),"
");o.innerHTML=u?u(i):f}var h='px',d=o.style;d.display='block';var p=r.getTargetToElementFixed(t,o,{pos:e}),g=p.top,v=n.leftOff<0?-n.leftOff:0;d.top=g+h,d.left=v+h}},showHighlighter:function(t){this.canvas.getHighlighter(t).style.opacity=''},initResize:function(t){var e,n=this.em,i=this.canvas,o=n?n.get('Editor'):'',a=(n?n.get('Config'):'').stylePrefix||'',c="".concat(a,"resizing"),u=!(0,s.isElement)(t)&&(0,l.isTaggableNode)(t)?t:n.getSelected(),f=u&&u.get('resizable'),h={},d=function(t,e,n){var r=n.docs;r&&r.forEach((function(e){var n=e.body,r=n.className||'';n.className=('add'==t?"".concat(r," ").concat(c):r.replace(c,'')).trim()}))};if(o&&f){var p=(0,s.isElement)(t)?t:u.getEl();h={onStart:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=r.el,a=r.config,s=r.resizer,c=a.keyHeight,f=a.keyWidth,h=a.currentUnit,p=a.keepAutoHeight,g=a.keepAutoWidth;d('add',0,r),e=n.get('StyleManager').getModelToStyle(u),i.toggleFramesEvents();var v=getComputedStyle(o),m=e.getStyle(),y=m[f];a.autoWidth=g&&'auto'===y,isNaN(parseFloat(y))&&(y=v[f]);var b=m[c];a.autoHeight=p&&'auto'===b,isNaN(parseFloat(b))&&(b=v[c]),s.startDim.w=parseFloat(y),s.startDim.h=parseFloat(b),S=0,h&&(a.unitHeight=(0,l.getUnitFromValue)(b),a.unitWidth=(0,l.getUnitFromValue)(y))},onMove:function(){o.trigger('component:resize')},onEnd:function(t,e){d('remove',0,e),o.trigger('component:resize'),i.toggleFramesEvents(1),S=1},updateTarget:function(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var a=o.store,s=o.selectedHandler,l=o.config,c=l.keyHeight,u=l.keyWidth,f=l.autoHeight,h=l.autoWidth,d=l.unitWidth,p=l.unitHeight,g=['tc','bc'].indexOf(s)>=0,v=['cl','cr'].indexOf(s)>=0,m={},y=a?'':1;if(!g){var b=i.getBody().offsetWidth,w=r.w0&&void 0!==arguments[0]?arguments[0]:{};return this.canvas.getBadgeEl(t.view)},onFrameScroll:function(){this.updateTools()},updateTools:function(){this.updateLocalPos(),this.updateGlobalPos()},isCompSelected:function(t){return t&&'selected'===t.get('status')},updateToolsLocal:function(t){var e=t||this.getElHovered(),n=e.el,r=e.pos,i=e.view,o=e.component;if(n){var a=o.get('hoverable'),s=this.lastHovered!==n,l=s?{}:{posOnly:1};s&&a&&(this.lastHovered=n,this.showHighlighter(i),this.showElementOffset(n,r,{view:i})),this.isCompSelected(o)&&(this.hideHighlighter(i),this.hideElementOffset(i));var c='px',u=this.toggleToolsEl(1,i),f=u.style,h=this.canvas.canvasRectOffset(n,r),d=h.top,p=h.left;this.updateBadge(n,r,C(C({},l),{},{view:i,topOff:d,leftOff:p})),f.top=d+c,f.left=p+c,f.width=r.width+c,f.height=r.height+c,this._trgToolUp('local',{component:o,el:u,top:d,left:p,width:r.width,height:r.height})}else this.lastHovered=0},_upToolbar:(0,s.debounce)((function(){this.updateToolsGlobal({force:1})})),_trgToolUp:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.em.trigger('canvas:tools:update',C({type:t},e))},updateToolsGlobal:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getElSelected(),n=e.el,r=e.pos,i=e.component;if(!n)return this.toggleToolsEl(),void(this.lastSelected=0);var o=this.canvas,a=this.lastSelected!==n;(a||t.force)&&(this.lastSelected=n,this.updateToolbar(i));var s='px',l=this.toggleToolsEl(1),c=l.style,u=o.getTargetToElementFixed(n,o.getToolbarEl(),{pos:r}),f=u.canvasOffsetTop,h=u.canvasOffsetLeft;c.top=f+s,c.left=h+s,c.width=r.width+s,c.height=r.height+s,this.updateToolbarPos({top:u.top,left:u.left}),this._trgToolUp('global',{component:i,el:l,top:f,left:h,width:r.width,height:r.height})},updateAttached:(0,s.debounce)((function(){this.updateGlobalPos()})),onContainerChange:(0,s.debounce)((function(){this.em.refreshCanvas()}),150),getElementPos:function(t){return this.canvas.getCanvasView().getElementPos(t)},hideBadge:function(){this.getBadge().style.display='none'},cleanPrevious:function(t){t&&t.set({status:'',state:''})},getContentWindow:function(){return this.canvas.getWindow()},run:function(t){(0,l.hasWin)()&&(this.editor=t&&t.get('Editor'),this.enable())},stop:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if((0,l.hasWin)()){var r=this.em,i=this.editor;this.onHovered(),this.stopSelectComponent(),!n.preserveSelected&&r.setSelected(null),this.toggleToolsEl(),i&&i.stopCommand('resize')}}}},1988:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r=n(2316),i=n.n(r)().$;const o={startSelectPosition:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.isPointed=!1;var i=this.editorModel.get('Utils'),o=t.ownerDocument.body;i&&!this.sorter&&(this.sorter=new i.Sorter({container:o,placer:this.canvas.getPlacerEl(),containerSel:'*',itemSel:'*',pfx:this.ppfx,direction:'a',document:e,wmargin:1,nested:1,em:this.editorModel,canvasRelative:1,scale:function(){return n.em.getZoomDecimal()}})),r.onStart&&(this.sorter.onStart=r.onStart),t&&this.sorter.startSort(t,{container:o})},getOffsetDim:function(){var t=this.offset(this.canvas.getFrameEl()),e=this.offset(this.canvas.getElement());return{top:t.top-e.top,left:t.left-e.left}},stopSelectPosition:function(){this.posTargetCollection=null,this.posIndex='after'==this.posMethod&&0!==this.cDim.length?this.posIndex+1:this.posIndex,this.sorter&&(this.sorter.moved=0,this.sorter.endMove()),this.cDim&&(this.posIsLastEl=0!==this.cDim.length&&'after'==this.posMethod&&this.posIndex==this.cDim.length,this.posTargetEl=0===this.cDim.length?i(this.outsideElem):!this.posIsLastEl&&this.cDim[this.posIndex]?i(this.cDim[this.posIndex][5]).parent():i(this.outsideElem),this.posTargetModel=this.posTargetEl.data('model'),this.posTargetCollection=this.posTargetEl.data('model-comp'))},enable:function(){this.startSelectPosition()},nearFloat:function(t,e,n){var r=t||0,i=e||'before',o=n.length,a=0!==o&&'after'==i&&r==o;return 0!==o&&(!a&&!n[r][4]||n[r-1]&&!n[r-1][4]||a&&!n[r-1][4])?1:0},run:function(){this.enable()},stop:function(){this.stopSelectPosition(),this.$wrapper.css('cursor',''),this.$wrapper.unbind()}}},6069:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>u});var r=n(4942),i=n(2316),o=n.n(i),a=n(9050),s=n(3168);function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}var c=o().$;const u={getOffsetMethod:function(t){return'get'+(t||'')+'OffsetViewerEl'},run:function(t,e,n){var i=n||{},o=i.state||'',u=t.getConfig(),f=this.em.getZoomDecimal(),h=i.el||'';if(!u.showOffsets||(0,s.isTextNode)(h)||!u.showOffsetsSelected&&'Fixed'==o)t.stopCommand(this.id,n);else{var d=t.Canvas,p=function(t){for(var e=1;e")).get(0),D=c("
")).get(0),R=v+E+'-el',A="".concat(v+T+'-el'," ").concat(v+T),M="".concat(R," ").concat(v+E);b=c("
")).get(0),w=c("
")).get(0),k=c("
")).get(0),x=c("
")).get(0),O=c("
")).get(0),C=c("
")).get(0),S=c("
")).get(0),P=c("
")).get(0),this['marginT'+o]=b,this['marginB'+o]=w,this['marginL'+o]=k,this['marginR'+o]=x,this['padT'+o]=O,this['padB'+o]=C,this['padL'+o]=S,this['padR'+o]=P,j.appendChild(b),j.appendChild(w),j.appendChild(k),j.appendChild(x),D.appendChild(O),D.appendChild(C),D.appendChild(S),D.appendChild(P),y.appendChild(j),y.appendChild(D),this[m]='1'}var Z='px',L=parseFloat(g.marginLeft.replace(Z,''))*f,N=parseFloat(g.marginRight.replace(Z,''))*f,I=parseFloat(g.marginTop.replace(Z,''))*f,F=parseFloat(g.marginBottom.replace(Z,''))*f,B=b.style,V=w.style,H=k.style,z=x.style,U=O.style,W=C.style,$=S.style,q=P.style,G=parseFloat(p.left),K=parseFloat(g.width)*f+Z;B.height=I+Z,B.width=K,B.top=p.top-I+Z,B.left=G+Z,V.height=F+Z,V.width=K,V.top=p.top+p.height+Z,V.left=G+Z;var Y=p.height+I+F+Z,X=p.top-I+Z;H.height=Y,H.width=L+Z,H.top=X,H.left=G-L+Z,z.height=Y,z.width=N+Z,z.top=X,z.left=G+p.width+Z;var J=parseFloat(g.paddingTop)*f;U.height=J+Z;var Q=parseFloat(g.paddingBottom)*f;W.height=Q+Z;var tt=p.height-Q-J+Z,et=p.top+J+Z;$.height=tt,$.width=parseFloat(g.paddingLeft)*f+Z,$.top=et;var nt=parseFloat(g.paddingRight)*f;q.height=tt,q.width=nt+Z,q.top=et}},stop:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n||{},i=r.state||'',o=this.getOffsetMethod(i),a=t.Canvas,s=a[o](n.view);s.style.opacity=0}}},2927:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});var r=n(9050);const i={init:function(){(0,r.bindAll)(this,'_onFramesChange')},run:function(t){this.toggleVis(t)},stop:function(t){this.toggleVis(t,0)},toggleVis:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;if(!t.Commands.isActive('preview')){var r=t.Canvas,i=n?'on':'off';r.getFrames().forEach((function(t){return e._upFrame(t,n)})),r.getModel()[i]('change:frames',this._onFramesChange)}},_onFramesChange:function(t,e){var n=this;e.forEach((function(t){return n._upFrame(t,1)}))},_upFrame:function(t,e){var n=e?'add':'remove';t.view.getBody().classList[n]("".concat(this.ppfx,"dashed"))}}},3821:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var r=n(4942),i=n(2982),o=n(9050),a=n(3168);function s(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function l(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.all,r=e.onResult,i=e.reset,o=this.storageKey,s={action:'load'},l=n||this.getAll(),c=t[o];if('string'==typeof c)try{c=JSON.parse(c)}catch(t){this.__logWarn('Data parsing failed',{input:c})}return i&&c&&l.reset(null,s),r?c&&r(c,s):c&&(0,a.isDef)(c.length)&&l.reset(c,s),c},clear:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.all;return e&&e.reset(null,t),this},__getConfig:function(t){var e=this.config||{};return t?e[t]:e},getAll:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.all?t.array?(0,i.Z)(this.all.models):this.all:[]},getAllMap:function(){return this.getAll().reduce((function(t,e){return t[e.get(e.idAttribute)]=e,t}),{})},__initConfig:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.config=(0,a.deepMerge)(t,e),this.em=this.config.em,this.cls=[]},__initListen:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.all,n=this.em,r=this.events;e&&n&&e.on('add',(function(t,e,i){return n.trigger(r.add,t,i)})).on('remove',(function(t,e,i){return n.trigger(r.remove,t,i)})).on('change',(function(t,e){return n.trigger(r.update,t,t.changedAttributes(),e)})).on('all',this.__catchAllEvent,this),this.cls=[e].concat(t.collections||[]),(t.propagate||[]).forEach((function(t){var r=t.entity,i=t.event;r.on('all',(function(t,r,o,a){var s=l({event:t},a||o);[n,e].map((function(t){return t.trigger(i,r,s)}))}))}))},__remove:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em,i=(0,o.isString)(t)?this.get(t):t,a=function(){return i&&e.all.remove(i,n),i};return!n.silent&&r&&r.trigger(this.events.removeBefore,i,a,n),!n.abort&&a()},__catchAllEvent:function(t,e,n,r){var i=this.em,o=this.events,a=r||n;i&&o.all&&i.trigger(o.all,{event:t,model:e,options:a}),this.__onAllEvent()},__appendTo:function(){var t=this.getConfig().appendTo;if(t){var e=(0,o.isElement)(t)?t:document.querySelector(t);if(!e)return this.__logWarn('"appendTo" element not found');e.appendChild(this.render())}},__onAllEvent:function(){},__logWarn:function(t,e){this.em.logWarning("[".concat(this.name,"]: ").concat(t),e)},_createId:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,n=this.getAll(),r=n.length+e,i=this.getAllMap();do{t=(0,a.createId)(r)}while(i[t]);return t},__listenAdd:function(t,e){var n=this;t.on('add',(function(t,r,i){return n.em.trigger(e,t,i)}))},__listenRemove:function(t,e){var n=this;t.on('remove',(function(t,r,i){return n.em.trigger(e,t,i)}))},__listenUpdate:function(t,e){var n=this;t.on('change',(function(t,r){return n.em.trigger(e,t,t.changedAttributes(),r)}))},__destroy:function(){var t;this.cls.forEach((function(t){t.stopListening(),t.reset()})),this.em=0,this.config=0,null===(t=this.view)||void 0===t||t.remove(),this.view=0}}},799:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>j});var r=n(2982),i=n(4942),o=n(9050),a=n(3168),s=n(3821),l=n(2030),c=n(9985);const u={stylePrefix:'css-',rules:[],onBeforeStyle:null};var f=n(5671),h=n(3144),d=n(9340),p=n(2963),g=n(1120),v=n(6409),m=n(9707),y=n(8467);function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function w(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};this.config=t||{},this.opt=e,this.em=e.em,this.ensureSelectors(),this.on('change',this.__onChange)}},{key:"__onChange",value:function(t,e){var n=this.em,r=this.changedAttributes();!(0,a.isEmptyObj)(r)&&n&&n.changesUp(e)}},{key:"clone",value:function(){var t=w({},this.opt),e=w({},this.attributes);return e.selectors=this.get('selectors').map((function(t){return t.clone()})),new this.constructor(e,t)}},{key:"ensureSelectors",value:function(t,e,n){var i=this.em,a=i&&i.get('SelectorManager'),s=[this,'change:selectors',this.ensureSelectors],c=this.getSelectors();if(this.stopListening.apply(this,s),c.models&&(c=(0,r.Z)(c.models)),c=(0,o.isString)(c)?[c]:c,Array.isArray(c)){var u=c.filter((function(t){return t})).map((function(t){return a?a.add(t):t}));c=new l.Z(u)}this.set('selectors',c,n),this.listenTo.apply(this,s)}},{key:"getAtRule",value:function(){var t=this.get('atRuleType'),e=this.get('mediaText'),n=t?"@".concat(t):e?'@media':'';return n+(e&&n?" ".concat(e):'')}},{key:"selectorsToString",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=[],n=this.get('state'),r=this.get('selectorsAdd'),i={escape:function(t){return x&&x.escape?x.escape(t):t}},o=this.get('selectors').getFullString(0,i),a=n&&!t.skipState?":".concat(n):'';return o&&e.push("".concat(o).concat(a)),r&&!t.skipAdd&&e.push(r),e.join(', ')}},{key:"getDeclaration",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e='',n=this.selectorsToString(t),r=this.styleToString(t),i=this.get('singleAtRule');return(n||i)&&(r||t.allowEmpty)&&(e=i?r:"".concat(n,"{").concat(r,"}")),e}},{key:"getDevice",value:function(){var t=this.em,e=this.attributes,n=e.atRuleType,r=e.mediaText,i=(null==t?void 0:t.get('DeviceManager').getDevices())||[],o=i.filter((function(t){return''===t.getWidthMedia()}))[0];return'media'===n&&r?i.filter((function(t){return t.getWidthMedia()===(0,y.U)(r)}))[0]||null:o||null}},{key:"getState",value:function(){var t=this.em,e=this.get('state');return(t.get('SelectorManager').getStates()||[]).filter((function(t){return t.getName()===e}))[0]||null}},{key:"getComponent",value:function(){var t,e=this.getSelectors(),n=1==e.length&&e.at(0),r=n&&n.isId()&&n.get('name');return r&&(null===(t=this.em)||void 0===t?void 0:t.get('DomComponents').getById(r))||null}},{key:"toCSS",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e='',n=this.getAtRule(),r=this.getDeclaration(t);return(r||t.allowEmpty)&&(e=r),n&&e&&(e="".concat(n,"{").concat(e,"}")),e}},{key:"toJSON",value:function(){for(var t=arguments.length,e=new Array(t),n=0;n3&&void 0!==arguments[3]?arguments[3]:{},i=e||'',a=n||'',s=r.selectorsAdd||'',l=r.atRuleType||'',c=(0,o.isArray)(t)||t.models?t.models||t:[t];a&&!l&&(l='media');var u=c.map((function(t){return t.getFullName()})),f=this.get('selectors').map((function(t){return t.getFullName()})),h=u.slice().sort(),d=f.slice().sort();return!(u.length!==f.length||!h.every((function(t,e){return t===d[e]})))&&(this.get('state')===i&&this.get('mediaText')===a&&this.get('selectorsAdd')===s&&this.get('atRuleType')===l)}}]),n}(v.Z.extend(m.Z)),C=n(2316);function S(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,g.Z)(t);if(e){var i=(0,g.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,p.Z)(this,n)}}var P=function(t){(0,d.Z)(n,t);var e=S(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n,[{key:"initialize",value:function(t,e){var n=this;e&&e.em&&(this.editor=e.em),setTimeout((function(){n.on('remove',n.onRemove),n.on('add',n.onAdd)}))}},{key:"toJSON",value:function(t){return C.Collection.prototype.toJSON.call(this,t).filter((function(t){return t.style&&!t.shallow}))}},{key:"onAdd",value:function(t,e,n){t.ensureSelectors(t,e,n)}},{key:"onRemove",value:function(t){var e=this.editor;e.stopListening(t),e.get('UndoManager').remove(t)}},{key:"add",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return'string'==typeof t&&(t=this.editor.get('Parser').parseCss(t)),e.em=this.editor,C.Collection.prototype.add.apply(this,[t,e])}}]),n}(C.Collection);P.prototype.model=O;var _=n(698);function T(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function E(t){for(var e=1;e3&&void 0!==arguments[3]?arguments[3]:{},a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},s=n||'',l=r||'',c=E({},o),u=this.get(t,s,l,c);return u&&u.config&&!u.config.singleAtRule||(c.state=s,c.mediaText=l,c.selectors=[],l&&(c.atRuleType='media'),(u=new O(c,i)).get('selectors').add(t,a),e.add(u,a)),u},get:function(n,r,i,a){var s=n;if((0,o.isString)(n)){var l=t.get('SelectorManager'),c=n.split(',')[0].trim(),u=t.get('Parser').parserCss.checkNode({selectors:c})[0];s=l.get(u.selectors)}return e.find((function(t){return t.compare(s,r,i,a)}))||null},getAll:function(){return e},addCollection:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=[];(0,o.isString)(e)&&(e=t.get('Parser').parseCss(e));for(var l=e instanceof Array?e:[e],c=0,u=l.length;c2&&void 0!==arguments[2]?arguments[2]:{},i=r.atRuleType,o=r.atRuleParams,a=t.get('Parser').parserCss.checkNode({selectors:e,style:n})[0],s=a.state,l=a.selectorsAdd,c=t.get('SelectorManager'),u=c.add(a.selectors),f=this.add(u,s,o,{selectorsAdd:l,atRule:i});return f.setStyle(n,r),f},getRule:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.get('SelectorManager'),i=t.get('Parser').parserCss.checkNode({selectors:e})[0],o=r.get(i.selectors),a=i.state,s=i.selectorsAdd,l=n.atRuleType,c=n.atRuleParams;return o&&this.get(o,a,c,{selectorsAdd:s,atRule:l})},getRules:function(t){var e=this.getAll();if(!t)return(0,r.Z)(e.models);var n=(0,o.isString)(t)?t.split(',').map((function(t){return t.trim()})):t;return e.filter((function(t){return n.indexOf(t.getSelectors().getFullString())>=0}))},setIdRule:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.addOpts,a=void 0===i?{}:i,s=r.mediaText,l=r.state||'',u=(0,o.isUndefined)(s)?t.getCurrentMedia():s,f=t.get('SelectorManager'),h=f.add({name:e,type:c.Z.TYPE_ID},a),d=this.add(h,l,u,{},a);return d.setStyle(n,E(E({},r),a)),d},getIdRule:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.mediaText,i=n.state||'',a=(0,o.isUndefined)(r)?t.getCurrentMedia():r,s=t.get('SelectorManager').get(e,c.Z.TYPE_ID);return s&&this.get(s,i,a)},setClassRule:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.state||'',o=r.mediaText||t.getCurrentMedia(),a=t.get('SelectorManager'),s=a.add({name:e,type:c.Z.TYPE_CLASS}),l=this.add(s,i,o);return l.setStyle(n,r),l},getClassRule:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.state||'',i=n.mediaText||t.getCurrentMedia(),o=t.get('SelectorManager').get(e,c.Z.TYPE_CLASS);return o&&this.get(o,r,i)},remove:function(t,e){var n=(0,o.isString)(t)?this.getRules(t):t,r=this.getAll().remove(n,e);return(0,o.isArray)(r)?r:[r]},clear:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.getAll().reset(null,t),this},getComponentRules:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.state,i=n.mediaText,a=n.current;a&&(r=t.get('state')||'',i=t.getCurrentMedia());var s=e.getId(),l=this.getAll().filter((function(t){if(((0,o.isUndefined)(r)||t.get('state')===r)&&((0,o.isUndefined)(i)||t.get('mediaText')===i))return t.getSelectorsString()==="#".concat(s)}));return l},render:function(){return n&&n.remove(),(n=new _.Z({collection:e,config:i})).render().el},destroy:function(){e.reset(),e.stopListening(),n&&n.remove(),[t,e,n].forEach((function(t){return null})),i={}}})}},698:(t,e,n)=>{"use strict";n.d(e,{Z:()=>v});var r=n(5671),i=n(3144),o=n(9340),a=n(2963),s=n(1120),l=n(2316),c=n(827);function u(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var f=function(t){(0,o.Z)(n,t);var e=u(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"tagName",value:function(){return'style'}},{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.config=t.config||{};var e=this.model;this.listenTo(e,'change',this.render),this.listenTo(e,'destroy remove',this.remove),this.listenTo(e.get('selectors'),'change',this.render)}},{key:"render",value:function(){var t=this.model,e=this.el,n=t.get('important');return e.innerHTML=t.toCSS({important:n}),this}}]),n}(l.View);function h(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var d=function(t){(0,o.Z)(n,t);var e=h(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"_createElement",value:function(){return document.createTextNode('')}},{key:"render",value:function(){var t=this.model,e=t.get('important');return this.el.textContent=t.getDeclaration({important:e}),this}}]),n}(f);function p(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var g=function(t,e){return"".concat(t).concat(e?"-".concat(parseFloat(e)):'')},v=function(t){(0,o.Z)(n,t);var e=p(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"initialize",value:function(t){var e=t.config||{};this.atRules={},this.config=e,this.em=e.em,this.pfx=e.stylePrefix||'',this.className=this.pfx+'rules';var n=this.collection;this.listenTo(n,'add',this.addTo),this.listenTo(n,'reset',this.render)}},{key:"addTo",value:function(t){this.addToCollection(t)}},{key:"addToCollection",value:function(t,e){if(this.renderStarted){var n,r,i=e||null,o={model:t,config:this.config};if('keyframes'===t.get('atRuleType')){var a=t.getAtRule(),s=this.atRules[a];if(!s){var l=document.createElement('style');s=document.createTextNode(''),l.appendChild(document.createTextNode("".concat(a,"{"))),l.appendChild(s),l.appendChild(document.createTextNode("}")),this.atRules[a]=s,n=l}r=new d(o),s.appendData(r.render().el.textContent)}else n=(r=new f(o)).render().el;var c=this.className,u=t.get('mediaText'),h=g(c),p=h;if(u&&(p=g(c,this.getMediaWidth(u))),n){var v,m=i||this.el;try{v=m.querySelector("#".concat(p))}catch(t){}v||(v=m.querySelector("#".concat(h))),v.appendChild(n)}return n}}},{key:"getMediaWidth",value:function(t){return t&&t.replace("(".concat(this.em.getConfig('mediaCondition'),": "),'').replace(')','')}},{key:"render",value:function(){var t=this;this.renderStarted=1,this.atRules={};var e=this.em,n=this.$el,r=this.className,i=this.collection,o=document.createDocumentFragment();n.empty();var a=e.get('DeviceManager').getAll().pluck('priority');return a.every((function(t){return t}))&&a.unshift(0),a.forEach((function(t){return o.appendChild((0,c.ut)('div',{id:g(r,t)}))})),i.each((function(e){return t.addToCollection(e,o)})),n.append(o),n.attr('class',r),this}}]),n}(l.View)},7001:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>M,evAdd:()=>E,evAddBefore:()=>j,evAll:()=>C,evPfx:()=>S,evRemove:()=>D,evRemoveBefore:()=>R,evSelect:()=>P,evSelectBefore:()=>_,evUpdate:()=>T});var r=n(4942),i=n(9050),o=n(3821);const a={default:null,devices:[{id:'desktop',name:'Desktop',width:''},{id:'tablet',name:'Tablet',width:'770px',widthMedia:'992px'},{id:'mobileLandscape',name:'Mobile landscape',width:'568px',widthMedia:'768px'},{id:'mobilePortrait',name:'Mobile portrait',width:'320px',widthMedia:'480px'}]};var s=n(5671),l=n(3144),c=n(9340),u=n(2963),f=n(1120);function h(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var d=function(t){(0,c.Z)(n,t);var e=h(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"defaults",value:function(){return{name:'',width:null,height:'',widthMedia:null,priority:null}}},{key:"initialize",value:function(){var t=this;null===this.get('widthMedia')&&this.set('widthMedia',this.get('width')),null===this.get('width')&&this.set('width',this.get('widthMedia')),!this.get('priority')&&this.set('priority',parseFloat(this.get('widthMedia'))||0);['width','height','widthMedia'].forEach((function(e){return t.checkUnit(e)}))}},{key:"checkUnit",value:function(t){var e=this.get(t)||'';(parseFloat(e)||0).toString()===e.toString()&&this.set(t,"".concat(e,"px"))}},{key:"getName",value:function(){return this.get('name')||this.get('id')}},{key:"getWidthMedia",value:function(){return this.get('widthMedia')||''}}]),n}(n(6409).Z),p=n(2316);function g(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var v=function(t){(0,c.Z)(n,t);var e=g(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"comparator",value:function(t,e){var n=Number.MAX_VALUE;return(e.get('priority')||n)-(t.get('priority')||n)}},{key:"getSorted",value:function(){return this.sort()}}]),n}(p.Collection);v.prototype.model=d;var m,y=n(168),b=n(8595);function w(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var k=function(t){(0,c.Z)(n,t);var e=w(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"template",value:function(t){var e=t.ppfx,n=t.label;return(0,b.Z)(m||(m=(0,y.Z)(["\n
","
\n
\n \n \n \n
\n
\n
\n
\n \n "])),e,n,e,e,e,e,e,e,e)}},{key:"events",value:function(){return{change:'updateDevice'}}},{key:"initialize",value:function(t){this.config=t.config||{},this.em=this.config.em,this.ppfx=this.config.pStylePrefix||'',this.events['click .'+this.ppfx+'add-trasp']=this.startAdd,this.listenTo(this.em,'change:device',this.updateSelect),this.delegateEvents()}},{key:"startAdd",value:function(){}},{key:"updateDevice",value:function(){var t=this.em;if(t){var e=this.devicesEl,n=e?e.val():'';t.set('device',n)}}},{key:"updateSelect",value:function(){var t=this.em,e=this.devicesEl;if(t&&t.getDeviceModel&&e){var n=t.getDeviceModel(),r=n?n.get('id'):'';e.val(r)}}},{key:"getOptions",value:function(){var t=this.collection,e=this.em,n='';return t.each((function(t){var r=t.attributes,i=r.name,o=r.id,a=e&&e.t&&e.t("deviceManager.devices.".concat(o))||i;n+="")})),n}},{key:"render",value:function(){var t=this.em,e=this.ppfx,n=this.$el,r=this.el,i=t&&t.t&&t.t('deviceManager.device');return n.html(this.template({ppfx:e,label:i})),this.devicesEl=n.find(".".concat(e,"devices")),this.devicesEl.append(this.getOptions()),this.devicesEl.val(t.get('device')),r.className="".concat(e,"devices-c"),this}}]),n}(p.View);function x(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function O(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},i=n=O(O({},a),r),o=i.em;return t=new v,n.devices.forEach((function(t){return e.add(t)})),this.em=o,this.all=t,this.select(n.default||t.at(0)),this.__initListen(),o.on(A,this._onSelect,this),this},_onSelect:function(t,e,n){var r=this.em,i=this.events,o=t.previous('device'),a=this.get(e),s=i.select;r.trigger(s,a,this.get(o)),this.__catchAllEvent(s,a,n)},add:function(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=r;if((0,i.isString)(e)){var a=r;n=O(O({},o=arguments[2]||{}),{},{id:e,name:o.name||e,width:a})}else n=e;return n.id||(n.id=n.name||this._createId()),t.add(n,o)},get:function(e){return this.getAll().filter((function(t){return t.get('name')===e}))[0]||t.get(e)||null},remove:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.__remove(t,e)},getDevices:function(){return t.models},select:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(0,i.isString)(t)?this.get(t):t;return n&&this.em.set('device',n.get('id'),e),this},getSelected:function(){return this.get(this.em.get('device'))},getAll:function(){return t},render:function(){return e&&e.remove(),(e=new k({collection:t,config:n})).render().el},destroy:function(){t.stopListening(),t.reset(),e&&e.remove(),[t,e].forEach((function(t){return null})),n={}}})}},6510:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>de});var r=n(1002),i=n(4925),o=n(4942),a=n(9050);const s={stylePrefix:'comp-',components:[],draggableComponents:1,processor:0,voidElements:['area','base','br','col','embed','hr','img','input','keygen','link','menuitem','meta','param','source','track','wbr']};var l=n(4822),c=n(9256),u=n(274),f=n(5671),h=n(3144),d=n(9340),p=n(2963),g=n(1120);function v(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,g.Z)(t);if(e){var i=(0,g.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,p.Z)(this,n)}}var m=function(t){(0,d.Z)(n,t);var e=v(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n,[{key:"tagName",value:function(){return'div'}}]),n}(u.Z),y=n(2586),b=n(3168);function w(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function k(t){for(var e=1;e=0}}),O=u.Z.extend({});function C(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function S(t){for(var e=1;e\n \n "),fallback:"\n \n "),file:''}),initialize:function(t,e){l.ZP.prototype.initialize.apply(this,arguments);var n=this.get('attributes'),r=n.src;r&&this.set('src',r,{silent:1})},initToolbar:function(){for(var t=arguments.length,e=new Array(t),n=0;n0&&void 0!==arguments[0]?arguments[0]:{},e=this.get(t.fallback?'fallback':'src')||'',n=e;return e&&'1&&void 0!==arguments[1]?arguments[1]:{};if('a'===(0,b.toLowerCase)(t.tagName)){var r=n.textTags||[];e={type:ut,editable:!1};var i=t.childNodes,o=i.length;o||delete e.editable,(0,a.forEach)(i,(function(t){var n=t.tagName;(3==t.nodeType&&''!==t.textContent.trim()||n&&r.indexOf((0,b.toLowerCase)(n))>=0)&&delete e.editable}))}return e};var ht=n(5861),dt=n(7757),pt=n.n(dt);function gt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function vt(t){for(var e=1;e2&&void 0!==arguments[2]?arguments[2]:{};!n.fromDisable&&this.disableEditing()},canActivate:function(){var t,e=this.model,n=this.rteEnabled,r=this.em,i=(null==r?void 0:r.getEditing())===e,o=!0,a=!1;if((n||!e.get('editable')||i||(a=e.isChildOf('text')))&&(o=!1,a&&!e.get('textable'))){for(var s=e.parent();s&&!s.isInstanceOf('text');)s=s.parent();s&&s.get('editable')?t=s:o=!0}return{result:o,delegate:t}},onActive:function(t){var e=this;return(0,ht.Z)(pt().mark((function n(){var r,i,o,a,s,l,c;return pt().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(i=e.rte,o=e.em,a=e.canActivate(),s=a.result,l=a.delegate,s){n.next=5;break}return l&&(null==t||null===(c=t.stopPropagation)||void 0===c||c.call(t),o.setSelected(l),l.trigger('active',t)),n.abrupt("return");case 5:if(null==t||null===(r=t.stopPropagation)||void 0===r||r.call(t),e.lastContent=e.getContent(),!i){n.next=17;break}return n.prev=8,n.next=11,i.enable(e,e.activeRte,{event:t});case 11:e.activeRte=n.sent,n.next=17;break;case 14:n.prev=14,n.t0=n.catch(8),o.logError(n.t0);case 17:e.toggleEvents(1);case 18:case"end":return n.stop()}}),n,null,[[8,14]])})))()},onDisable:function(){this.disableEditing()},disableEditing:function(){var t=arguments,e=this;return(0,ht.Z)(pt().mark((function n(){var r,i,o,a,s,l;return pt().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(r=t.length>0&&void 0!==t[0]?t[0]:{},i=e.model,o=e.rte,a=e.activeRte,s=e.em,l=i&&i.get('editable'),!o){n.next=13;break}return n.prev=4,n.next=7,o.disable(e,a);case 7:n.next=12;break;case 9:n.prev=9,n.t0=n.catch(4),s.logError(n.t0);case 12:l&&e.getContent()!==e.lastContent&&(e.syncContent(r),e.lastContent='');case 13:e.toggleEvents();case 14:case"end":return n.stop()}}),n,null,[[4,9]])})))()},getContent:function(){var t=this.activeRte;return t&&'function'==typeof t.getContent?t.getContent():this.getChildrenContainer().innerHTML},syncContent:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.model,n=this.rte,r=this.rteEnabled;if(r||t.force){var i=this.getContent(),o=e.components(),a=vt({fromDisable:1},t);e.set('content','',a),n.customRte?(o.length&&o.reset(null,t),e.set('content',i,a)):o.resetFromString(i,t)}},insertComponent:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.model,r=this.el,i=r.ownerDocument,o=i.getSelection();if(null!=o&&o.rangeCount){var a,s=o.getRangeAt(0),l=s.startContainer,c=s.startOffset,u=(0,b.getModel)(l),f=[];if(u&&null!==(a=u.is)&&void 0!==a&&a.call(u,'textnode')){var h=u.collection;h.forEach((function(e){if(e===u){var n='textnode',r=e.get('content');f.push({type:n,content:r.slice(0,c)}),f.push(t),f.push({type:n,content:r.slice(c)})}else f.push(e)}));var d=f.filter(Boolean),p=d.indexOf(t);return h.reset(d,e),h.at(p)}}return n.append(t,e)},onInput:function(){var t=this.em,e='component',n=["".concat(e,":update"),"".concat(e,":input")].join(' ');t&&t.trigger(n,this.model)},disablePropagation:function(t){t.stopPropagation()},toggleEvents:function(t){var e=this.em,n=this.model,r=this.$el,i={on:b.on,off:b.off},o=t?'on':'off';e.setEditing(t?this:0),this.rteEnabled=!!t;var a=[this.el.ownerDocument,document];if(i.off(a,'mousedown',this.onDisable),i[o](a,'mousedown',this.onDisable),e[o]('toolbar:run:before',this.onDisable),n&&(n[o]('removed',this.onDisable),n.trigger("rte:".concat(t?'enable':'disable'))),r&&r.off('mousedown',this.disablePropagation),r&&r[o]('mousedown',this.disablePropagation),this.config.draggableComponents)for(var s=this.el;s;)s.draggable=!t,(s=s.parentNode)&&'BODY'==s.tagName&&(s=0)}}),bt=yt.extend({render:function(){for(var t=arguments.length,e=new Array(t),n=0;n1&&void 0!==arguments[1]?arguments[1]:{};return!!e.inSvg}}),Wt=u.Z.extend({_createElement:function(t){return document.createElementNS('http://www.w3.org/2000/svg',t)}});function $t(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function qt(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};return this.getComponents().add(t,e)},render:function(){return n.render().el},clear:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.getComponents().map((function(t){return t})).forEach((function(e){return e.remove(t)})),this},setComponents:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.clear(e).addComponent(t,e)},addType:function(t,e){var n=this.em,i=e.model,o=void 0===i?{}:i,s=e.view,l=void 0===s?{}:s,c=e.isComponent,u=e.extend,f=e.extendView,d=e.extendFn,p=void 0===d?[]:d,g=e.extendFnView,v=void 0===g?[]:g,m=this.getType(t),y=this.getType(u),b=this.getType(f),w=y||(m||this.getType('default')),k=w.model,x=b?b.view:w.view,O=function(t,e,n){return t.reduce((function(t,r){var i=e[r],o=n.prototype[r];return i&&o&&(t[r]=function(){o.bind(this).apply(void 0,arguments),i.bind(this).apply(void 0,arguments)}),t}),{})};'object'===(0,r.Z)(o)&&(e.model=k.extend(he(he(he({},o),O(p,o,k)),{},{defaults:he(he({},(0,a.result)(k.prototype,'defaults')||{}),(0,a.result)(o,'defaults')||{})}),{isComponent:!m||y||c?c||function(){return 0}:k.isComponent})),'object'===(0,r.Z)(l)&&(e.view=x.extend(he(he({},l),O(v,l,x)))),m?(m.model=e.model,m.view=e.view):(e.id=t,h.unshift(e));var C="component:type:".concat(m?'update':'add');return n&&n.trigger(C,m||e),this},getType:function(t){for(var e=h,n=0;n1&&void 0!==arguments[1]?arguments[1]:{};t&&(t.set({status:'selected'}),['component:selected','component:toggled'].forEach((function(r){return e.em.trigger(r,t,n)})))},selectRemove:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t){this.em;t.set({status:'',state:''}),['component:deselected','component:toggled'].forEach((function(r){return e.em.trigger(r,t,n)}))}},componentHovered:function(){var t=o.em,e=t.get('componentHovered'),n=t.previous('componentHovered'),r='hovered';n&&n.get('status')==r&&n.set({status:'',state:''}),e&&(0,a.isEmpty)(e.get('status'))&&e.set('status',r)},getShallowWrapper:function(){var t=this.shallow,e=this.em;if(!t&&e){var n=e.get('shallow');if(!n)return;var r=n.get('DomComponents');if(r.componentTypes=this.componentTypes,t=r.getWrapper()){var i=[l.GN,l.xH].join(' ');t.on(i,(0,a.debounce)((function(){return t.components('')}),100))}this.shallow=t}return t},canMove:function(t,e,n){var r=n||0===n?n:null,i={result:!1,reason:0,target:t,source:null};if(!e)return i;var o=null!=e&&e.toHTML?e:null;if(!o){var s=this.getShallowWrapper();o=null==s?void 0:s.append(e)[0]}if(i.source=o,!o)return i;var l=o.get('draggable');if((0,a.isFunction)(l))l=!!l(o,t,r);else{var c=t.getEl();l=(0,a.isArray)(l)?l.join(','):l,l=(0,a.isString)(l)?null==c?void 0:c.matches(l):l}if(!l)return he(he({},i),{},{reason:1});var u=t.get('droppable');if((0,a.isFunction)(u))u=!!u(o,t,r);else if(!1===u&&t.isInstanceOf('text')&&o.get('textable'))u=!0;else{var f=o.getEl();u=(0,a.isArray)(u)?u.join(','):u,u=(0,a.isString)(u)?null==f?void 0:f.matches(u):u}return he(he({},i),{},u?{result:!0}:{reason:2})},allById:function(){return f},getById:function(t){return f[t]||null},destroy:function(){var r=this.allById();Object.keys(r).forEach((function(t){return r[t]&&r[t].remove()})),n&&n.remove(),[o,t,f,e,n].forEach((function(t){return{}})),this.em={}}})}},4822:(t,e,n)=>{"use strict";n.d(e,{ZP:()=>N,OA:()=>D,GN:()=>Z,xH:()=>L});var r=n(1002),i=n(2982),o=n(885),a=n(4942),s=n(5671),l=n(3144),c=n(9340),u=n(2963),f=n(1120),h=n(9050),d=n(3168),p=n(9707),g=n(2316),v=n(9256),m=n(9985),y=n(2030);function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function w(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},n=e.locale,r=void 0===n||n,i=this.getId(),o=this.get('label')||this.getName();return r&&(null===(t=this.em)||void 0===t?void 0:t.t("traitManager.traits.labels.".concat(i)))||o}},{key:"getValue",value:function(){return this.getTargetValue()}},{key:"setValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={};e.partial&&(n.avoidStore=!0),this.setTargetValue(t,n),!1===e.partial&&(this.setTargetValue(''),this.setTargetValue(t))}},{key:"props",value:function(){return this.attributes}},{key:"targetUpdated",value:function(){var t,e=this.getTargetValue();this.set({value:e},{fromTarget:1}),null===(t=this.em)||void 0===t||t.trigger('trait:update',{trait:this,component:this.target})}},{key:"getTargetValue",value:function(){var t,e=this.get('name'),n=this.target;return t=this.get('changeProp')?n.get(e):n.getAttributes()[e],(0,h.isUndefined)(t)?'':t}},{key:"setTargetValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.target,r=this.get('name');if(!(0,h.isUndefined)(t)){var i=t;if('false'===t?i=!1:'true'===t&&(i=!0),this.get('changeProp'))n.set(r,i,e);else{var o=w({},n.get('attributes'));o[r]=i,n.set('attributes',o,e)}}}},{key:"setValueFromInput",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={value:t};this.set(r,w(w({},n),{},{avoidStore:1})),e&&(this.set('value','',n),this.set(r,n))}},{key:"getInitValue",value:function(){var t,e=this.target,n=this.get('name');if(e){var r=e.get('attributes');t=this.get('changeProp')?e.get(n):r[n]}return t||this.get('value')||this.get('default')}}]),n}(n(6409).Z);x.prototype.defaults={type:'text',label:'',name:'',min:'',max:'',unit:'',step:1,value:'',target:'',default:'',placeholder:'',changeProp:0,options:[]};function O(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var C,S=function(t){(0,c.Z)(n,t);var e=O(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"initialize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.em=e.em,this.listenTo(this,'add',this.handleAdd),this.listenTo(this,'reset',this.handleReset)}},{key:"handleReset",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.previousModels,r=void 0===n?[]:n;r.forEach((function(t){return t.trigger('remove')}))}},{key:"handleAdd",value:function(t){t.em=this.em;var e=this.target;e&&(t.target=e)}},{key:"setTarget",value:function(t){this.target=t}},{key:"add",value:function(t,e){var n=this.em;if((0,h.isString)(t)||(0,h.isArray)(t)){var r=n&&n.get&&n.get('TraitManager'),i=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{build:function(e){var n=[];'string'==typeof e&&(e=[e]);for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,h.bindAll)(this,'__upSymbProps','__upSymbCls','__upSymbComps');var i=r.em,o=this.parent(),a=o&&o.attributes,s=this.get('propagate');if(s&&this.set('propagate',(0,h.isArray)(s)?s:[s]),a&&a.propagate&&!s){var l={},c=a.propagate;c.forEach((function(t){return l[t]=o.get(t)})),l.propagate=c,this.set(_(_({},l),e))}if(r&&r.config&&r.config.voidElements.indexOf(this.get('tagName'))>=0&&this.set('void',!0),r.em=i,this.opt=r,this.em=i,this.frame=r.frame,this.config=r.config||{},this.set('attributes',_(_({},(0,h.result)(this,'defaults').attributes||{}),this.get('attributes')||{})),this.ccid=n.createId(this,r),this.initClasses(),this.initTraits(),this.initComponents(),this.initToolbar(),this.initScriptProps(),this.listenTo(this,'change:script',this.scriptUpdated),this.listenTo(this,'change:tagName',this.tagUpdated),this.listenTo(this,'change:attributes',this.attrUpdated),this.listenTo(this,'change:attributes:id',this._idUpdated),this.on('change:toolbar',this.__emitUpdateTlb),this.on('change',this.__onChange),this.on(L,this.__propToParent),this.set('status',''),this.views=[],['classes','traits','components'].forEach((function(e){var n="add remove ".concat('components'!==e?'change':'');t.listenTo(t.get(e),n.trim(),(function(){for(var n=arguments.length,r=new Array(n),i=0;i0&&void 0!==arguments[0]?arguments[0]:{},e=this.em,n=e&&e.get('UndoManager'),r=this.components();n&&!this.__hasUm&&(n.add(r),n.add(this.getSelectors()),this.__hasUm=1),t.recursive&&r.map((function(e){return e.__postAdd(t)}))}},{key:"__postRemove",value:function(){var t=this.em,e=t&&t.get('UndoManager');e&&(e.remove(this.components()),e.remove(this.getSelectors()),delete this.__hasUm)}},{key:"__onChange",value:function(t,e){var n=this.changedAttributes();['status','open','toolbar','traits'].forEach((function(t){return delete n[t]})),(0,d.isEmptyObj)(n)||(this.__changesUp(e),this.__propSelfToParent({component:this,changed:n,options:e}))}},{key:"__changesUp",value:function(t){var e=this.em;[this.frame,e].forEach((function(e){return e&&e.changesUp(t)}))}},{key:"__propSelfToParent",value:function(t){this.trigger(Z,t),this.__propToParent(t)}},{key:"__propToParent",value:function(t){var e=this.parent();e&&e.trigger(L,t)}},{key:"__emitUpdateTlb",value:function(){this.emitUpdate('toolbar')}},{key:"is",value:function(t){return!(this.get('type')!=t)}},{key:"props",value:function(){return this.attributes}},{key:"index",value:function(){var t=this.collection;return t?t.indexOf(this):0}},{key:"setDragMode",value:function(t){return this.set('dmode',t)}},{key:"find",value:function(t){var e=[],n=this.view.$el.find(t);return n.each((function(t){var r=n.eq(t).data('model');r&&e.push(r)})),e}},{key:"findType",value:function(t){var e=[];return function n(r){return r.forEach((function(r){r.is(t)&&e.push(r),n(r.components())}))}(this.components()),e}},{key:"closest",value:function(t){var e=this.view.$el.closest(t);return e.length&&e.data('model')}},{key:"closestType",value:function(t){for(var e=this.parent();e&&!e.is(t);)e=e.parent();return e}},{key:"contains",value:function(t){var e=!1;if(!t)return e;var n=function n(r){!e&&r.forEach((function(r){r===t&&(e=!0),!e&&n(r.components())}))};return n(this.components()),e}},{key:"tagUpdated",value:function(){this.trigger('rerender')}},{key:"replaceWith",value:function(t){var e=this.collection,n=e.indexOf(this);return e.remove(this),e.add(t,{at:n})}},{key:"attrUpdated",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this.get('attributes'),o=i.class;o&&this.setClass(o),delete i.class;var a=i.style;a&&this.setStyle(a),delete i.style;var s=_({},this.previous('attributes')),l=(0,d.shallowDiff)(s,this.get('attributes'));(0,h.keys)(l).forEach((function(t){return n.trigger("change:attributes:".concat(t),n,l[t],r)}))}},{key:"setAttributes",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.set('attributes',_({},t),e),this}},{key:"addAttributes",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.setAttributes(_(_({},this.getAttributes({noClass:1})),t),e)}},{key:"removeAttributes",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Array.isArray(t)?t:[t],r=this.getAttributes();return n.map((function(t){return delete r[t]})),this.setAttributes(r,e)}},{key:"getStyle",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.em,r=(0,h.isString)(t)?t:'',i=r?e:t;if(n&&n.getConfig('avoidInlineStyle')&&!i.inline){var o=n.get('state'),a=n.get('CssComposer'),s=a.getIdRule(this.getId(),_({state:o},i));if(this.rule=s,s)return s.getStyle(r)}return p.Z.getStyle.call(this,r)}},{key:"setStyle",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em,i=this.opt;if(r&&r.getConfig('avoidInlineStyle')&&!i.temporary&&!n.inline){var o=this.get('style')||{};e=_(_({},e=(0,h.isString)(e)?this.parseStyle(e):e),o);var a=r.get('state'),s=r.get('CssComposer'),l=this.getStyle(n);this.rule=s.setIdRule(this.getId(),e,_(_({},n),{},{state:a}));var c=(0,d.shallowDiff)(l,e);this.set('style','',{silent:1}),(0,h.keys)(c).forEach((function(e){return t.trigger("change:style:".concat(e))}))}else e=p.Z.setStyle.apply(this,arguments);return e}},{key:"getAttributes",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.em,r=[],i=_({},this.get('attributes')),o=n&&n.get('SelectorManager'),a=this.getId();if(e.noClass||(this.get('classes').forEach((function(t){return r.push((0,h.isString)(t)?t:t.get('name'))})),r.length&&(i.class=r.join(' '))),!e.noStyle){var s=this.get('style');(0,d.isObject)(s)&&!(0,d.isEmptyObj)(s)&&(i.style=this.styleToString({inline:1}))}(0,h.has)(i,'id')||(j(n)?t=o&&o.get(a,o.Selector.TYPE_ID):(0,h.isEmpty)(this.getStyle())||(t=1),(this.__getSymbol()||this.__getSymbols())&&(t=1),t&&(i.id=a));return i}},{key:"addClass",value:function(t){var e=this.em.get('SelectorManager').addClass(t);return this.get('classes').add(e)}},{key:"setClass",value:function(t){return this.get('classes').reset(),this.addClass(t)}},{key:"removeClass",value:function(t){var e=[];t=(0,h.isArray)(t)?t:[t];var n=this.get('classes'),r=m.Z.TYPE_CLASS;return t.forEach((function(t){t.split(' ').forEach((function(t){var i=n.where({name:t,type:r})[0];i&&e.push(n.remove(i))}))})),e}},{key:"getClasses",value:function(){var t=this.getAttributes().class;return t?t.split(' '):[]}},{key:"__logSymbol",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.__getSymbol(),i=this.__getSymbols();(r||i)&&this.em.log(t,{model:this,toUp:e,context:'symbols',opts:n})}},{key:"__initSymb",value:function(){this.__symbReady||(this.on('change',this.__upSymbProps),this.__symbReady=1)}},{key:"__isSymbol",value:function(){return(0,h.isArray)(this.get(R))}},{key:"__isSymbolOrInst",value:function(){return!(!this.__isSymbol()&&!this.get(A))}},{key:"__isSymbolTop",value:function(){var t=this.parent();return this.__isSymbolOrInst()&&(!t||t&&!t.__isSymbol()&&!t.__getSymbol())}},{key:"__isSymbolNested",value:function(){if(!this.__isSymbolOrInst()||this.__isSymbolTop())return!1;var t=(this.__isSymbol()?this:this.__getSymbol()).__getSymbTop(),e=this.__getSymbTop();return(e.__isSymbol()?e:e.__getSymbol())!==t}},{key:"__getAllById",value:function(){var t=this.em;return t?t.get('DomComponents').allById():{}}},{key:"__getSymbol",value:function(){var t=this.get(A);if(t&&(0,h.isString)(t)){var e=this.__getAllById()[t];e?(t=e,this.set(A,e)):t=0}return t}},{key:"__getSymbols",value:function(){var t=this,e=this.get(R);return e&&(0,h.isArray)(e)&&(e.forEach((function(n,r){n&&(0,h.isString)(n)&&(e[r]=t.__getAllById()[n])})),e=e.filter((function(t){return t&&!(0,h.isString)(t)}))),e}},{key:"__isSymbOvrd",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',e=this.get(M),n=t.split(':'),r=(0,o.Z)(n,1),i=r[0],a=t!==i?[t,i]:[t];return!0===e||(0,h.isArray)(e)&&a.some((function(t){return e.indexOf(t)>=0}))}},{key:"__getSymbToUp",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=[],r=this.em,o=e.changed,a=r&&r.get('symbols');if(e.fromInstance||e.noPropagate||e.fromUndo||!a||o&&this.__isSymbOvrd(o))return n;var s=this.__getSymbols()||[],l=this.__getSymbol(),c=l?[l].concat((0,i.Z)(l.__getSymbols()||[])):s;return n=c.filter((function(e){return e!==t})).filter((function(t){return!(o&&t.__isSymbOvrd(o))}))}},{key:"__getSymbTop",value:function(t){for(var e=this,n=this.parent(t);n&&(n.__isSymbol()||n.__getSymbol());)e=n,n=n.parent(t);return e}},{key:"__upSymbProps",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.changedAttributes(),i=r.attributes||{};if(delete r.status,delete r.open,delete r.__symbols,delete r.__symbol,delete r.__symbol_ovrd,delete r.attributes,delete i.id,(0,d.isEmptyObj)(i)||(r.attributes=i),!(0,d.isEmptyObj)(r)){var o=this.__getSymbToUp(n);(0,h.keys)(r).map((function(t){e.__isSymbOvrd(t)&&delete r[t]})),this.__logSymbol('props',o,{opts:n,changed:r}),o.forEach((function(t){var i=_({},r);(0,h.keys)(i).map((function(e){t.__isSymbOvrd(e)&&delete i[e]})),t.set(i,_({fromInstance:e},n))}))}}},{key:"__upSymbCls",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=this.__getSymbToUp(r);this.__logSymbol('classes',i,{opts:r}),i.forEach((function(t){t.set('classes',n.get('classes'),{fromInstance:n})})),this.__changesUp(r)}},{key:"__upSymbComps",value:function(t,e,n){var r=this,o=n||e||{},a={fromInstance:o.fromInstance,fromUndo:o.fromUndo},s=t.opt.temporary;if(n)if(n.add){var l=[],c=!!this.__getSymbols(),u=this.__getSymbToUp(_(_({},a),{},{changed:'components:add'}));if(u.length){var f=t.__getSymbol();l=(f?f.__getSymbols():t.__getSymbols())||[],(l=(0,i.Z)(l)).push(f||t)}!s&&this.__logSymbol('add',u,{opts:n,addedInstances:l.map((function(t){return t.cid})),added:t.cid}),u.forEach((function(e){var i=e.__getSymbTop(),o=l.filter((function(t){var e=t.__getSymbTop({prev:1});return i&&e&&e===i}))[0]||t.clone({symbol:1,symbolInv:c});e.append(o,_({fromInstance:r},n))}))}else{var h=t.__getSymbol();if(h&&!n.temporary&&h.set(R,h.__getSymbols().filter((function(e){return e!==t}))),!t.__isSymbolTop()){var d='components:remove',p=n.index,g=t.parent(),v=_({fromInstance:t},n),m=t.__isSymbolNested(),y=function(t){var e=t.parent();e&&!e.__isSymbOvrd(d)&&t.remove(v)},b=g.__isSymbOvrd(d)?[]:t.__getSymbToUp(a);m&&(b=g.__getSymbToUp(_(_({},a),{},{changed:d})),y=function(t){var e=t.components().at(p);e&&e.remove(_({fromInstance:g},v))}),!s&&this.__logSymbol('remove',b,{opts:n,removed:t.cid,isSymbNested:m}),b.forEach(y)}}else{var w=this.__getSymbToUp(_(_({},a),{},{changed:'components:reset'}));this.__logSymbol('reset',w,{components:t.models}),w.forEach((function(n){var i=t.models.map((function(t){return t.clone({symbol:1})}));n.components().reset(i,_({fromInstance:r},e))}))}this.__changesUp(o)}},{key:"initClasses",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r='change:classes',i=this.get('attributes').class||[],o=[this,r,this.initClasses],a=this.get('classes')||i,s=(0,h.isString)(a)?a.split(' '):a;this.stopListening.apply(this,o);var l=this.normalizeClasses(s),c=new y.Z([]);return this.set('classes',c,n),c.add(l),c.on('add remove reset',this.__upSymbCls),this.listenTo.apply(this,o),this}},{key:"initComponents",value:function(){var t=[this,'change:components',this.initComponents];this.stopListening.apply(this,t);var e=new v.Z(null,this.opt);e.parent=this;var n=this.get('components'),r=!this.opt.avoidChildren;return this.set('components',e),r&&n&&e.add((0,h.isFunction)(n)?n(this):n,this.opt),e.on('add remove reset',this.__upSymbComps),this.listenTo.apply(this,t),this}},{key:"initTraits",value:function(t){var e=this.em,n='change:traits';this.off(n,this.initTraits),this.__loadTraits();var r=_({},this.get('attributes')),i=this.get('traits');return i.each((function(t){if(!t.get('changeProp')){var e=t.get('name'),n=t.getInitValue();e&&n&&(r[e]=n)}})),i.length&&this.set('attributes',r),this.on(n,this.initTraits),t&&e&&e.trigger('component:toggled'),this}},{key:"initScriptProps",value:function(){if(!this.opt.temporary){var t='script-props',e=["change:".concat(t),this.initScriptProps];this.off.apply(this,e);var n=this.previous(t)||[],r=this.get(t)||[],i=n.map((function(t){return"change:".concat(t)})).join(' '),o=r.map((function(t){return"change:".concat(t)})).join(' ');i&&this.off(i,this.__scriptPropsChange),o&&this.on(o,this.__scriptPropsChange),this.on.apply(this,e)}}},{key:"__scriptPropsChange",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};n.avoidStore||this.trigger('rerender')}},{key:"append",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(0,h.isArray)(t)?t:[t],r=n.map((function(t){return(0,h.isString)(t)||t.collection&&t.collection.remove(t,{temporary:1}),t})),i=this.components().add(r,e);return(0,h.isArray)(i)?i:[i]}},{key:"components",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.get('components');return(0,h.isUndefined)(t)?n:(n.reset(null,e),t?this.append(t,e):[])}},{key:"getChildAt",value:function(t){return this.components().at(t||0)||null}},{key:"getLastChild",value:function(){var t=this.components();return t.at(t.length-1)||null}},{key:"empty",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.components().reset(null,t),this}},{key:"parent",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.collection||t.prev&&this.prevColl;return e?e.parent:null}},{key:"scriptUpdated",value:function(){this.set('scriptUpdated',1)}},{key:"initToolbar",value:function(){var t=this.em,e=this,n=t&&t.getConfig('stylePrefix')||'';if(!e.get('toolbar')&&t){var r=[];e.collection&&r.push({label:t.getIcon('arrowUp'),command:function(t){return t.runCommand('core:component-exit',{force:1})}}),e.get('draggable')&&r.push({attributes:{class:"".concat(n,"no-touch-actions"),draggable:!0},label:t.getIcon('move'),command:'tlb-move'}),e.get('copyable')&&r.push({label:t.getIcon('copy'),command:'tlb-clone'}),e.get('removable')&&r.push({label:t.getIcon('delete'),command:'tlb-delete'}),e.set('toolbar',r)}}},{key:"__loadTraits",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t||this.get('traits');if(!(n instanceof S)){n=(0,h.isFunction)(n)?n(this):n;var r=new S([],this.opt);r.setTarget(this),n.length&&(n.forEach((function(t){return t.attributes&&delete t.attributes.value})),r.add(n)),this.set({traits:r},e)}return this}},{key:"getTraits",value:function(){return this.__loadTraits(),(0,i.Z)(this.get('traits').models)}},{key:"setTraits",value:function(t){var e=(0,h.isArray)(t)?t:[t];return this.set({traits:e}),this.getTraits()}},{key:"getTrait",value:function(t){return this.getTraits().filter((function(e){return e.get('id')===t||e.get('name')===t}))[0]||null}},{key:"updateTrait",value:function(t,e){var n,r=this.getTrait(t);return r&&r.set(e),null===(n=this.em)||void 0===n||n.trigger('component:toggled'),this}},{key:"getTraitIndex",value:function(t){var e=this.getTrait(t);return e?this.get('traits').indexOf(e):-1}},{key:"removeTrait",value:function(t){var e,n=this,r=((0,h.isArray)(t)?t:[t]).map((function(t){return n.getTrait(t)})),i=this.get('traits'),o=r.length?i.remove(r):[];return null===(e=this.em)||void 0===e||e.trigger('component:toggled'),(0,h.isArray)(o)?o:[o]}},{key:"addTrait",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.__loadTraits();var r=this.get('traits').add(t,n);return null===(e=this.em)||void 0===e||e.trigger('component:toggled'),(0,h.isArray)(r)?r:[r]}},{key:"normalizeClasses",value:function(t){var e=[],n=this.em,r=n&&n.get('SelectorManager');if(r)return t.models?(0,i.Z)(t.models):(t.forEach((function(t){return e.push(r.add(t))})),e)}},{key:"clone",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.em,n=_({},this.attributes),r=_({},this.opt),o=this.getId(),a=e&&e.get('CssComposer');n.attributes=_({},n.attributes),delete n.attributes.id,n.components=[],n.classes=[],n.traits=[],this.__isSymbolTop()&&(t.symbol=1),this.get('components').each((function(e,r){n.components[r]=e.clone(_(_({},t),{},{_inner:1}))})),this.get('traits').each((function(t,e){n.traits[e]=t.clone()})),this.get('classes').each((function(t,e){n.classes[e]=t.get('name')})),n.status='',r.collection=null;var s=new this.constructor(n,r),l="#".concat(s.getId()),c=a?a.getRules("#".concat(o)):[];c.forEach((function(t){var e=t.clone();e.set('selectors',[l]),a.getAll().add(e)})),s.set(R,0);var u=this.__getSymbol(),f=this.__getSymbols();t.symbol||!u&&!f?u?(u.set(R,[].concat((0,i.Z)(u.__getSymbols()),[s])),s.__initSymb()):t.symbol&&(this.__isSymbol()?(this.set(R,[].concat((0,i.Z)(f),[s])),s.set(A,this),s.__initSymb()):t.symbolInv?(this.set(R,[s]),s.set(A,this),[this,s].map((function(t){return t.__initSymb()}))):(s.set(R,[this]),[this,s].map((function(t){return t.__initSymb()})),this.set(A,s))):(s.set(A,0),s.set(R,0));var h='component:clone';return e&&e.trigger(h,s),this.trigger(h,s),s}},{key:"getName",value:function(){var t=this.em,e=this.attributes,n=e.type,r=e.tagName,i=e.name,o=n||r,a=!n&&r,s='domComponents.names.',l=i&&(null==t?void 0:t.t("".concat(s).concat(i))),c=a&&(null==t?void 0:t.t("".concat(s).concat(a))),u=t&&(t.t("".concat(s).concat(n))||t.t("".concat(s).concat(r)));return this.get('custom-name')||l||i||c||(0,d.capitalize)(a)||u||(0,d.capitalize)(o)}},{key:"getIcon",value:function(){var t=this.get('icon');return t?t+' ':''}},{key:"toHTML",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this,n=[],r=t.tag,i=r||e.get('tagName'),o=e.get('void'),a=t.attributes,s=this.getAttrToHTML();if(delete t.tag,a&&((0,h.isFunction)(a)?s=a(e,s)||{}:(0,d.isObject)(a)&&(s=a)),t.withProps){var l=this.toJSON();(0,h.forEach)(l,(function(t,e){'_'!==e[0]&&['classes','attributes','components'].indexOf(e)<0&&(s["data-gjs-".concat(e)]=(0,h.isArray)(t)||(0,d.isObject)(t)?JSON.stringify(t):t)}))}for(var c in s){var u=s[c];if(!(0,h.isUndefined)(u)&&null!==u)if((0,h.isBoolean)(u))u&&n.push(c);else{var f='';if(t.altQuoteAttr&&(0,h.isString)(u)&&u.indexOf('"')>=0)f="'".concat(u.replace(/'/g,'''),"'");else{var p=(0,h.isString)(u)?u.replace(/"/g,'"'):u;f="\"".concat(p,"\"")}n.push("".concat(c,"=").concat(f))}}var g=n.length?" ".concat(n.join(' ')):'',v=e.getInnerHTML(t),m="<".concat(i).concat(g).concat(o?'/':'',">").concat(v);return!o&&(m+="")),m}},{key:"getInnerHTML",value:function(t){return this.__innerHTML(t)}},{key:"__innerHTML",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.components();return e.length?e.map((function(e){return e.toHTML(t)})).join(''):this.get('content')}},{key:"getAttrToHTML",value:function(){var t=this.getAttributes();return delete t.style,t}},{key:"toJSON",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=g.Model.prototype.toJSON.call(this,t);if(e.attributes=this.getAttributes(),delete e.attributes.class,delete e.toolbar,delete e.traits,delete e.status,delete e.open,!t.fromUndo){var n=e.__symbol,r=e.__symbols;r&&(0,h.isArray)(r)&&(e.__symbols=r.filter((function(t){return t})).map((function(t){return t.getId?t.getId():t}))),n&&!(0,h.isString)(n)&&(e.__symbol=n.getId())}return this.em.getConfig('avoidDefaults')&&this.getChangedProps(e),e}},{key:"getChangedProps",value:function(t){var e=t||g.Model.prototype.toJSON.apply(this),n=(0,h.result)(this,'defaults');return(0,h.forEach)(n,(function(t,n){-1===['type'].indexOf(n)&&e[n]===t&&delete e[n]})),(0,h.isEmpty)(e.type)&&delete e.type,(0,h.forEach)(['attributes','style'],(function(t){(0,h.isEmpty)(n[t])&&(0,h.isEmpty)(e[t])&&delete e[t]})),(0,h.forEach)(['classes','components'],(function(t){(!e[t]||(0,h.isEmpty)(n[t])&&!e[t].length)&&delete e[t]})),e}},{key:"getId",value:function(){return(this.get('attributes')||{}).id||this.ccid||this.cid}},{key:"setId",value:function(t,e){var n=_({},this.get('attributes'));return n.id=t,this.set('attributes',n,e),this}},{key:"getEl",value:function(t){var e=this.getView(t);return e&&e.el}},{key:"getView",value:function(t){var e=this.view,n=this.views;return t&&(e=n.filter((function(e){return e._getFrame()===t.view}))[0]),e}},{key:"getCurrentView",value:function(){var t=(this.em.get('currentFrame')||{}).model;return this.getView(t)}},{key:"__getScriptProps",value:function(){var t=this.props();return(this.get('script-props')||[]).reduce((function(e,n){return e[n]=t[n],e}),{})}},{key:"getScriptString",value:function(t){var e=this,n=t||this.get('script');if(!n)return n;if(this.get('script-props'))n=n.toString().trim();else{if('function'==typeof n){var i=n.toString().trim();n=(i=i.replace(/^function[\s\w]*\(\)\s?\{/,'').replace(/\}$/,'')).trim()}var o=this.em.getConfig(),a=E(o.tagVarStart||'{[ '),s=E(o.tagVarEnd||' ]}'),l=new RegExp("".concat(a,"([\\w\\d-]*)").concat(s),'g');n=n.replace(l,(function(t,n){e.scriptUpdated();var i=e.attributes[n]||'';return(0,h.isArray)(i)||'object'==(0,r.Z)(i)?JSON.stringify(i):i}))}return n}},{key:"emitUpdate",value:function(t){for(var e=this.em,n=Z+(t?":".concat(t):''),r=t&&this.get(t),i=arguments.length,o=new Array(i>1?i-1:0),s=1;s=0&&this.__propSelfToParent({component:this,changed:(0,a.Z)({},t,r),options:o[2]||o[1]||{}})}},{key:"onAll",value:function(t){return(0,h.isFunction)(t)&&(t(this),this.components().forEach((function(e){return e.onAll(t)}))),this}},{key:"remove",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.em,r=this.collection,i=function(){r&&r.remove(t,_(_({},e),{},{action:'remove-component'})),r||(t.components('',e),t.components().removeChildren(t,null,e))},o=_({},e);return[this,n].map((function(e){return e.trigger('component:remove:before',t,i,o)})),!o.abort&&i(),this}},{key:"move",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.remove({temporary:1}),t&&t.append(this,e),this}},{key:"isInstanceOf",value:function(t){var e,n,r=null===(e=this.em)||void 0===e||null===(n=e.get('DomComponents').getType(t))||void 0===n?void 0:n.model;return!!r&&this instanceof r}},{key:"isChildOf",value:function(t){for(var e=(0,h.isString)(t),n=this.parent();n;){if(e){if(n.isInstanceOf(t))return!0}else if(n===t)return!0;n=n.parent()}return!1}},{key:"resetId",value:function(){var t=this.em,e=this.getId();if(e){var r=n.createId(this);this.setId(r);var i=t&&t.get('CssComposer').getIdRule(e),o=i&&i.get('selectors').at(0);return o&&o.set('name',r),this}}},{key:"_getStyleRule",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.id,n=this.em,r=e||this.getId();return n&&n.get('CssComposer').getIdRule(r)}},{key:"_getStyleSelector",value:function(t){var e=this._getStyleRule(t);return e&&e.get('selectors').at(0)}},{key:"_idUpdated",value:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!r.idUpdate){var i=this.ccid,o=this.get('attributes')||{},a=o.id,s=(this.previous('attributes')||{}).id||i,l=n.getList(this);if(l[a]||!a&&s)return this.setId(s,{idUpdate:1});delete l[s],l[a]=this,this.ccid=a;var c=this._getStyleSelector({id:s});c&&c.set({name:a,label:a})}}}]),n}(g.Model.extend(p.Z));N.isComponent=function(t){return{tagName:(0,d.toLowerCase)(t.tagName)}},N.ensureInList=function(t){var e=N.getList(t),n=t.getId(),r=e[n];if(r){if(r!==t){var i=N.getIncrementId(n,e);t.setId(i),e[i]=t}}else e[n]=t;t.components().forEach((function(t){return N.ensureInList(t)}))},N.createId=function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=N.getList(t),i=n.idMap,o=void 0===i?{}:i,a=t.get('attributes'),s=a.id;return s?(e=N.getIncrementId(s,r,n),t.setId(e),s!==e&&(o[s]=e)):e=N.getNewId(r),r[e]=t,e},N.getNewId=function(t){for(var e=Object.keys(t).length.toString().length+2,n=(Math.random()+1.1).toString(36).slice(-e),r="i".concat(n);t[r];)r=N.getNewId(t);return r},N.getIncrementId=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.keepIds,i=void 0===r?[]:r,o=1,a=t;if(i.indexOf(t)<0)for(;e[a];)o++,a="".concat(t,"-").concat(o);return a},N.getList=function(t){var e=t.opt,n=void 0===e?{}:e,r=n.domc,i=n.em,o=r||i&&i.get('DomComponents');return o?o.componentsById:{}},N.checkId=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=(0,h.isArray)(t)?t:[t],o=r.keepIds,a=void 0===o?[]:o;i.forEach((function(t){var i=t.attributes,o=void 0===i?{}:i,s=t.components,l=o.id;if(l&&n[l]&&a.indexOf(l)<0){var c=N.getIncrementId(l,n);o.id=c,(0,h.isArray)(e)&&e.forEach((function(t){var e=t.selectors;e.forEach((function(t,n){t==="#".concat(l)&&(e[n]="#".concat(c))}))}))}s&&N.checkId(s,e,n,r)}))},N.getDefaults=function(){return(0,h.result)(this.prototype,'defaults')},N.prototype.defaults=(C={tagName:'div',type:'',name:'',removable:!0,draggable:!0,droppable:!0,badgable:!0,stylable:!0,'stylable-require':'','style-signature':'',unstylable:'',highlightable:!0,copyable:!0,resizable:!1,editable:!1,layerable:!0,selectable:!0,hoverable:!0,void:!1,state:'',status:'',content:'',icon:'',style:'',styles:'',classes:'',script:'','script-props':'','script-export':'',attributes:'',traits:['id','title'],propagate:'',dmode:'',toolbar:null},(0,a.Z)(C,A,0),(0,a.Z)(C,R,0),(0,a.Z)(C,M,0),(0,a.Z)(C,"_undo",!0),(0,a.Z)(C,"_undoexc",['status','open']),C)},9256:(t,e,n)=>{"use strict";n.d(e,{Z:()=>v});var r=n(1002),i=n(2982),o=n(4925),a=n(4942),s=n(2316),l=n.n(s),c=n(9050),u=n(4822),f=["at"];function h(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function d(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:[];if(!e)return[];var r=(0,c.isArray)(e)||(0,c.isFunction)(e.map)?e:[e];return r.map((function(e){n.push(e.getId()),t(e.components().models,n)})),n},g=function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=(0,c.isArray)(e)?e:[e];return i.map((function(e){var i=e.attributes,o=void 0===i?{}:i,a=e.components,s=e.tagName,l=o.id,u=e;if(l&&n[l]&&(u=n[l],s&&u.set({tagName:s},d(d({},r),{},{silent:!0}))),a){var f=t(a,n);if((0,c.isFunction)(u.components)){var h=u.components();h.length>0&&h.reset(f,r)}else u.components=f}return u}))};const v=l().Collection.extend({initialize:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.opt=e,this.listenTo(this,'add',this.onAdd),this.listenTo(this,'remove',this.removeChildren),this.listenTo(this,'reset',this.resetChildren);var n=e.em,r=e.config;this.config=r,this.em=n,this.domc=e.domc||n&&n.get('DomComponents')},resetChildren:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this,i=n.previousModels||[],o=i.filter((function(e){return!t.get(e.cid)})),a=p(t);n.keepIds=p(i).filter((function(t){return a.indexOf(t)>=0})),o.forEach((function(t){return e.removeChildren(t,r,n)})),t.each((function(t){return e.onAdd(t)}))},resetFromString:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n.keepIds=p(this);var r=this.domc,i=(null==r?void 0:r.allById())||{},o=this.parseString(e,n),a=(0,c.isArray)(o)?o:[o],s=g(a,i,n);this.reset(s,n),null===(t=this.em)||void 0===t||t.trigger('component:content',this.parent,n,e)},removeChildren:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(t){var i=this.domc,o=this.em,a=r.temporary||r.fromUndo;if(t.prevColl=this,!a){var s=t.getId(),l=o.get('SelectorManager').getAll(),c=o.get('CssComposer').getAll(),u=(r.keepIds||[]).indexOf(s)<0,f=i?i.allById():{};delete f[s];var h=u?c.remove(c.filter((function(t){return t.getSelectors().getFullString()==="#".concat(s)})),r):[];l.remove(h.map((function(t){return t.getSelectors().at(0)}))),t.opt.temporary||(o.get('Commands').run('core:component-style-clear',{target:t}),t.removed(),t.trigger('removed'),o.trigger('component:remove',t));var d=t.components();d.forEach((function(t){return n.removeChildren(t,e,r)}))}var p=t.components();o.stopListening(p),o.stopListening(t),o.stopListening(t.get('classes')),t.__postRemove()}},model:function(t,e){var n,r=e.collection.opt,i=r.em,o=i.get('DomComponents').componentTypes;e.em=i,e.config=r.config,e.componentTypes=o,e.domc=r.domc;for(var a=0;a1&&void 0!==arguments[1]?arguments[1]:{},n=this.em,r=this.domc,i=n.get('CssComposer'),a=n.get('Parser').parseHtml(t);if(u.ZP.checkId(a.html,a.css,r.componentsById,e),a.css&&i&&!e.temporary){e.at;var s=(0,o.Z)(e,f);i.addCollection(a.css,d(d({},s),{},{extend:1}))}return a.html},add:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n.keepIds=[].concat((0,i.Z)(n.keepIds||[]),(0,i.Z)(p(n.previousModels))),(0,c.isString)(t)?t=this.parseString(t,n):(0,c.isArray)(t)&&(t=(0,i.Z)(t)).forEach((function(r,i){if((0,c.isString)(r)){var o=e.parseString(r,n);t[i]=(0,c.isArray)(o)&&!o.length?null:o}}));var r=(0,c.isArray)(t);t=(r?t:[t]).filter((function(t){return t})).map((function(t){return e.processDef(t)})),t=r?(0,c.flatten)(t,1):t[0];var o=l().Collection.prototype.add.apply(this,[t,n]);return this.__firstAdd=o,o},processDef:function(t){if(t.cid&&t.ccid)return t;var e=this.em,n=this.config,i=(void 0===n?{}:n).processor,o=t;if(i){var a=i(o=d({},o));a&&((0,c.each)(o,(function(t,e){return delete o[e]})),(0,c.extend)(o,a))}if(o.$$typeof&&'object'==(0,r.Z)(o.props)){(o=d({},o)).props=d({},o.props);var s=e.get('DomComponents'),l=e.get('Parser').parserHtml;(0,c.each)(o,(function(t,e){(0,c.includes)(['props','type'],e)||delete o[e]}));var u=o.props,f=u.children;delete u.children,delete o.props;var h=l.splitPropsFromAttr(u);o.attributes=h.attrs,f&&(o.components=f),o.type?s.getType(o.type)||(o.tagName=o.type,delete o.type):o.type='textnode',(0,c.extend)(o,h.props)}return o},onAdd:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.domc,i=this.em,o=t.getStyle(),a=i&&i.getConfig('avoidInlineStyle');if(r&&r.Component.ensureInList(t),!(0,c.isEmpty)(o)&&!a&&i&&i.get&&i.getConfig('forceClass')&&!n.temporary){var s=t.cid;i.get('CssComposer').setClassRule(s,o);t.setStyle({}),t.addClass(s)}t.__postAdd({recursive:1}),this.__onAddEnd()},__onAddEnd:(0,c.debounce)((function(){}))})},274:(t,e,n)=>{"use strict";n.d(e,{Z:()=>p});var r=n(4942),i=n(2316),o=n.n(i),a=n(9050),s=n(9256),l=n(2586),c=n(2030),u=n(827),f=n(3168);function h(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function d(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=this.model,n=t.config||{},r=n.em,i=e.opt||{},o=this.$el,a=this.el;this.opts=t,this.modelOpt=i,this.config=n,this.em=r||'',this.pfx=n.stylePrefix||'',this.ppfx=n.pStylePrefix||'',this.attr=e.get('attributes'),this.classe=this.attr.class||[],this.listenTo(e,'change:style',this.updateStyle),this.listenTo(e,'change:attributes',this.renderAttributes),this.listenTo(e,'change:highlightable',this.updateHighlight),this.listenTo(e,'change:status',this.updateStatus),this.listenTo(e,'change:script rerender',this.reset),this.listenTo(e,'change:content',this.updateContent),this.listenTo(e,'change',this.handleChange),this.listenTo(e,'active',this.onActive),this.listenTo(e,'disable',this.onDisable),o.data('model',e),(0,f.setViewEl)(a,this),e.view=this,this._getFrame()&&e.views.push(this),this.initClasses(),this.initComponents({avoidRender:1}),this.events=d(d({},this.events),{},{dragstart:'handleDragStart'}),this.delegateEvents(),!i.temporary&&this.init(this._clbObj())},__isDraggable:function(){var t=this.model,e=this.config,n=t.attributes.draggable;return e.draggableComponents&&n},_clbObj:function(){var t=this.em,e=this.model,n=this.el;return{editor:t&&t.getEditor(),model:e,el:n}},init:function(){},removed:function(){},onActive:function(){},onDisable:function(){},remove:function(){var t;o().View.prototype.remove.apply(this,arguments);var e=this.model,n=this.$el,r=e.views,i=this._getFrame()||{};return e.components().forEach((function(t){var e=t.getView(i.model);null==e||e.remove()})),null===(t=this.childrenView)||void 0===t||t.remove(),r.splice(r.indexOf(this),1),this.removed(this._clbObj()),n.data({model:'',collection:'',view:''}),this},handleDragStart:function(t){if(!this.__isDraggable())return!1;t.stopPropagation(),t.preventDefault(),this.em.get('Commands').run('tlb-move',{target:this.model,event:t})},initClasses:function(){var t=this.model,e='change:classes',n=t.get('classes');n instanceof c.Z&&(this.stopListening(t,e,this.initClasses),this.listenTo(t,e,this.initClasses),this.listenTo(n,'add remove change',this.updateClasses),n.length&&this.importClasses())},initComponents:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.model,n=this.$el,r=this.childrenView,i='change:components',o=e.get('components'),a=[e,i,this.initComponents];o instanceof s.Z&&(n.data('collection',o),r&&r.remove(),this.stopListening.apply(this,a),!t.avoidRender&&this.renderChildren(),this.listenTo.apply(this,a))},handleChange:function(){var t=this.model,e=(0,a.keys)(t.changed);if(1!==e.length||'status'!==e[0])for(var n in t.emitUpdate(),t.changed)t.emitUpdate(n)},importClasses:function(){var t=this.config.em.get('SelectorManager');t&&this.model.get('classes').each((function(e){t.add(e.get('name'))}))},updateStatus:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.em,n=e?e.get('Canvas').getConfig():{},r=n.extHl,i=this.el,o=this.model.get('status'),a=this.ppfx,s="".concat(a,"selected"),l="".concat(s,"-parent"),c="".concat(a,"freezed"),u="".concat(a,"hovered"),f=[s,l,c,u],h=r&&!t.noExtHl?'':s;this.$el.removeClass(f.join(' '));var d=i.getAttribute('class')||'',p='';switch(o){case'selected':p="".concat(d," ").concat(h);break;case'selected-parent':p="".concat(d," ").concat(l);break;case'freezed':p="".concat(d," ").concat(c);break;case'freezed-selected':p="".concat(d," ").concat(c," ").concat(h);break;case'hovered':p=t.avoidHover?'':"".concat(d," ").concat(u)}(p=p.trim())&&i.setAttribute('class',p)},updateHighlight:function(){var t=this.model,e=t.get('textable'),n=t.get('highlightable')&&(e||!t.isChildOf('text'));this.setAttribute('data-gjs-highlightable',!!n||'')},updateStyle:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.model,i=this.em;if(i&&i.getConfig('avoidInlineStyle')&&!n.inline){var o=r.getStyle();!(0,a.isEmpty)(o)&&r.setStyle(o)}else this.setAttribute('style',r.styleToString(n))},updateClasses:function(){var t=this.model.get('classes').pluck('name').join(' ');this.setAttribute('class',t),this.updateStatus(),this.onAttrUpdate()},setAttribute:function(t,e){var n=this.$el;e?n.attr(t,e):n.removeAttr(t)},getClasses:function(){return this.model.getClasses().join(' ')},updateAttributes:function(){var t=[],e=this.model,n=this.$el,r=this.el,i=e.attributes,o=i.textable,s=i.type,l=d(d({id:e.getId(),'data-gjs-type':s||'default'},this.__isDraggable()&&{draggable:!0}),o&&{contenteditable:'false'});(0,a.each)(r.attributes,(function(e){return t.push(e.nodeName)})),t.forEach((function(t){return n.removeAttr(t)})),this.updateStyle(),this.updateHighlight();var c=d(d({},l),e.getAttributes());(0,a.keys)(c).forEach((function(t){return!1===c[t]&&delete c[t]})),n.attr(c)},updateContent:function(){var t=this.model.get('content'),e=this.model.components().length;this.getChildrenContainer().innerHTML=e?'':t},prevDef:function(t){t.preventDefault()},updateScript:function(){var t=this.model,e=this.em;t.get('script')&&e&&e.get('Canvas').getCanvasView().updateScript(this)},getChildrenContainer:function(){var t=this.el;return'function'==typeof this.getChildrenSelector?t=this.el.querySelector(this.getChildrenSelector()):this.getTemplate,t},getOffsetRect:function(){var t={},e=this.el,n=0,r=0;return function i(o){var a=o.offsetParent;a?(n+=a.offsetTop,r+=a.offsetLeft,i(a)):(t.top=e.offsetTop+n,t.left=e.offsetLeft+r,t.bottom=t.top+e.offsetHeight,t.right=t.left+e.offsetWidth)}(e),t},isInViewport:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.rect,n=this.el,r=n.ownerDocument,i=r.body,o=r.defaultView.frameElement,a=e||this.getOffsetRect(),s=a.top,l=a.left,c=this._getFrame().getOffsetRect();return s>=c.scrollTop&&l>=c.scrollLeft&&s<=c.scrollBottom&&l<=o.offsetWidth+i.scrollLeft},scrollIntoView:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getOffsetRect(),n=this.isInViewport({rect:e});if(!n||t.force){var r=this.el;'smooth'!==t.behavior?r.ownerDocument.defaultView.scrollTo(0,e.top):r.scrollIntoView(d({behavior:'smooth',block:'nearest'},t))}},reset:function(){var t=this.el;this.el='',this._ensureElement(),this._setData(),(0,u.dL)(t,this.el),this.render()},_setData:function(){var t=this.model,e=t.components();this.$el.data({model:t,collection:e,view:this})},_getFrame:function(){return this.config.frameView},renderChildren:function(){this.updateContent();var t=this.getChildrenContainer(),e=this.childrenView||new l.Z({collection:this.model.get('components'),config:this.config,componentTypes:this.opts.componentTypes});e.render(t),this.childrenView=e;for(var n=Array.prototype.slice.call(e.el.childNodes),r=0,i=n.length;r{"use strict";n.d(e,{Z:()=>s});var r=n(2316),i=n.n(r),o=n(9050),a=n(827);const s=i().View.extend({initialize:function(t){this.opts=t||{},this.config=t.config||{},this.em=this.config.em;var e=this.collection;this.listenTo(e,'add',this.addTo),this.listenTo(e,'reset',this.resetChildren),this.listenTo(e,'remove',this.removeChildren)},removeChildren:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};t.views.forEach((function(t){if(t){var e=t.childrenView,n=t.scriptContainer;e&&e.stopListening(),(0,a.L_)(n),t.remove.apply(t)}}));var i=t.components();i.forEach((function(t){return n.removeChildren(t,e,r)}))},addTo:function(t){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=this.config.em,r=this.collection.indexOf(t);if(this.addToCollection(t,null,r),n&&!e.temporary){var i=function t(e){n.trigger('component:add',e),e.components().forEach((function(e){return t(e)}))};i(t)}},addToCollection:function(t,e,r){this.compView||(this.compView=n(274).Z);for(var i=this.config,a=this.opts,s=this.em,l=e||null,c=i.frameView,u=void 0===c?{}:c,f=u.model&&t.getView(u.model),h=a.componentTypes||s&&s.get('DomComponents').getTypes(),d=t.get('type')||'default',p=this.compView,g=0;g1&&void 0!==arguments[1]?arguments[1]:{},r=n.previousModels,i=void 0===r?[]:r;this.parentEl.innerHTML='',i.forEach((function(t){return e.removeChildren(t,e.collection)})),t.each((function(t){return e.addToCollection(t)}))},render:function(t){var e=this,n=this.el,r=document.createDocumentFragment();return this.parentEl=t||this.el,this.collection.each((function(t){return e.addToCollection(t,r)})),n.innerHTML='',n.appendChild(r),this}})},9707:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var r=n(4942),i=n(9050),o=n(3168);function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function s(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,i.isString)(e)&&(e=l(e));var r=this.getStyle(n),a=s({},e);this.set('style',a,n);var c=(0,o.shallowDiff)(r,a);return(0,i.keys)(c).forEach((function(e){var r=t.em;n.noEvent||(t.trigger("change:style:".concat(e)),r&&(r.trigger("styleable:change",t,e,n),r.trigger("styleable:change:".concat(e),t,e,n)))})),a},addStyle:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'',n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};'string'==typeof t?t={prop:e}:n=e||{},t=this.extendStyle(t),this.setStyle(t,n)},removeStyle:function(t){var e=this.getStyle();delete e[t],this.setStyle(e)},styleToString:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=[],n=this.getStyle(t);for(var r in n){var o=t.important,a=(0,i.isArray)(o)?o.indexOf(r)>=0:o,s="".concat(n[r]).concat(a?' !important':''),l='__'==r.substr(0,2);s&&!l&&e.push("".concat(r,":").concat(s,";"))}return e.join('')},getSelectors:function(){return this.get('selectors')||this.get('classes')},getSelectorsString:function(t){return this.selectorsToString?this.selectorsToString(t):this.getSelectors().getFullString()},_validate:function(t,e){var n,r=t.style,o=this.em||e.em,a=null==o||null===(n=o.get('CssComposer'))||void 0===n?void 0:n.getConfig().onBeforeStyle;if(r&&a){var l=a(s({},r));l&&(0,i.keys)(r).map((function(e){(0,i.isUndefined)(l[e])&&delete t.style[e]})),l&&(0,i.keys)(l).map((function(e){t.style[e]=l[e]}))}return!0}}},6475:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var r=n(4942),i=n(9050),o=n(6409),a=n(2316);function s(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function l(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},r=n.em;this.em=r,this.opts=n,this.model=function(){var t,n,i,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(o&&o.type){var s=e.getBaseType();t=(i=e.getType(o.type))?i.model:s.model,n=i?i.view:s.view}else{var c=e.recognizeType(o);t=(i=c.type).model,n=i.view,o=c.attributes}var u=new t(o,l(l({},a),{},{em:r}));return u.typeView=n,u};var i=this.init&&this.init.bind(this);i&&i()},recognizeType:function(t){for(var e=this.getTypes(),n=0;n{"use strict";n.d(e,{Z:()=>h});var r=n(5671),i=n(3144),o=n(9340),a=n(2963),s=n(1120),l=n(2316),c=n.n(l);function u(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var f=c().$,h=function(t){(0,o.Z)(n,t);var e=u(n);function n(){var t,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,r.Z)(this,n),t=e.call(this,i);var o=i.ppfx||'';return t.opts=i,t.ppfx=o,t.em=i.target||{},!i.onChange&&t.listenTo(t.model,'change:value',t.handleModelChange),t}return(0,i.Z)(n,[{key:"template",value:function(){return"")}},{key:"inputClass",value:function(){return"".concat(this.ppfx,"field")}},{key:"holderClass",value:function(){return"".concat(this.ppfx,"input-holder")}},{key:"elementUpdated",value:function(){this.model.trigger('el:change')}},{key:"setValue",value:function(t){var e=this.model,n=t||e.get('defaults'),r=this.getInputEl();r&&(r.value=n)}},{key:"handleModelChange",value:function(t,e,n){this.setValue(e,n)}},{key:"handleChange",value:function(t){t.stopPropagation();var e=this.getInputEl().value;this.__onInputChange(e),this.elementUpdated()}},{key:"__onInputChange",value:function(t){this.model.set({value:t},{fromInput:1})}},{key:"getInputEl",value:function(){if(!this.inputEl){var t=this.model,e=this.opts.type||'text',n=t.get('placeholder')||t.get('defaults')||t.get('default')||'';this.inputEl=f(""))}return this.inputEl.get(0)}},{key:"render",value:function(){this.inputEl=null;var t=this.$el;return t.addClass(this.inputClass()),t.html(this.template()),t.find(".".concat(this.holderClass())).append(this.getInputEl()),this}}]),n}(c().View);h.prototype.events={change:'handleChange'}},4e3:(t,e,n)=>{"use strict";n.d(e,{Z:()=>w});var r=n(4942),i=n(5671),o=n(3144),a=n(9340),s=n(2963),l=n(1120),c=n(2316),u=n.n(c),f=n(9050),h=n(1002),d=n(3168);var p=n(4281);function g(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function v(t){for(var e=1;e","
","
",'
'].join(''),s=function(){var t='';if(i)for(var e=1;e<=6;e++)t+="
";return["
","
","
","
","",'
','
',"
","
","
","
","
","
","
","
",'
','
','
',"
",'
',"
","
",t,'
','
',"
",'
',"
","",'
',"
","
","","",'
','
','
'].join('')}(),l='spectrum.id';t.fn.spectrum=function(e,n){if('string'==typeof e){var i=this,o=Array.prototype.slice.call(arguments,1);return this.each((function(){var n=r[t(this).data(l)];if(n){var a=n[e];if(!a)throw new Error("Spectrum: no such method: '"+e+"'");'get'==e?i=n.get():'container'==e?i=n.container:'option'==e?i=n.option.apply(n,o):'destroy'==e?(n.destroy(),t(this).removeData(l)):a.apply(n,o)}})),i}return this.spectrum('destroy').each((function(){var n=_(this,t.extend({},e,t(this).data()));t(this).data(l,n.id)}))},t.fn.spectrum.load=!0,t.fn.spectrum.loadOpts={},t.fn.spectrum.draggable=D,t.fn.spectrum.defaults=n,t.fn.spectrum.inputTypeColorSupport=function e(){if(void 0===e._cachedResult){var n=t("")[0];e._cachedResult='color'===n.type&&''!==n.value}return e._cachedResult},t.spectrum={},t.spectrum.localization={},t.spectrum.palettes={},t.fn.spectrum.processNativeColorInputs=function(){var e=t('input[type=color]');e.length&&!R()&&e.spectrum({preferredFormat:'hex6'})};var c=/^[\s,#]+/,u=/\s+$/,f=0,p=Math,g=p.round,v=p.min,m=p.max,y=p.random,b=function t(e,n){if(n=n||{},(e=e||'')instanceof t)return e;if(!(this instanceof t))return new t(e,n);var r=function(t){var e={r:0,g:0,b:0},n=1,r=!1,i=!1;'string'==typeof t&&(t=function(t){t=t.replace(c,'').replace(u,'').toLowerCase();var e,n=!1;if(O[t])t=O[t],n=!0;else if('transparent'==t)return{r:0,g:0,b:0,a:0,format:'name'};if(e=S.rgb.exec(t))return{r:e[1],g:e[2],b:e[3]};if(e=S.rgba.exec(t))return{r:e[1],g:e[2],b:e[3],a:e[4]};if(e=S.hsl.exec(t))return{h:e[1],s:e[2],l:e[3]};if(e=S.hsla.exec(t))return{h:e[1],s:e[2],l:e[3],a:e[4]};if(e=S.hsv.exec(t))return{h:e[1],s:e[2],v:e[3]};if(e=S.hsva.exec(t))return{h:e[1],s:e[2],v:e[3],a:e[4]};if(e=S.hex8.exec(t))return{a:nt(e[1]),r:Q(e[2]),g:Q(e[3]),b:Q(e[4]),format:n?'name':'hex8'};if(e=S.hex6.exec(t))return{r:Q(e[1]),g:Q(e[2]),b:Q(e[3]),format:n?'name':'hex'};if(e=S.hex3.exec(t))return{r:Q(e[1]+''+e[1]),g:Q(e[2]+''+e[2]),b:Q(e[3]+''+e[3]),format:n?'name':'hex'};return!1}(t));'object'==(0,h.Z)(t)&&(t.hasOwnProperty('r')&&t.hasOwnProperty('g')&&t.hasOwnProperty('b')?(o=t.r,a=t.g,s=t.b,e={r:255*X(o,255),g:255*X(a,255),b:255*X(s,255)},r=!0,i='%'===String(t.r).substr(-1)?'prgb':'rgb'):t.hasOwnProperty('h')&&t.hasOwnProperty('s')&&t.hasOwnProperty('v')?(t.s=et(t.s),t.v=et(t.v),e=function(t,e,n){t=6*X(t,360),e=X(e,100),n=X(n,100);var r=p.floor(t),i=t-r,o=n*(1-e),a=n*(1-i*e),s=n*(1-(1-i)*e),l=r%6;return{r:255*[n,a,o,o,s,n][l],g:255*[s,n,n,a,o,o][l],b:255*[o,o,s,n,n,a][l]}}(t.h,t.s,t.v),r=!0,i='hsv'):t.hasOwnProperty('h')&&t.hasOwnProperty('s')&&t.hasOwnProperty('l')&&(t.s=et(t.s),t.l=et(t.l),e=function(t,e,n){var r,i,o;function a(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t}if(t=X(t,360),e=X(e,100),n=X(n,100),0===e)r=i=o=n;else{var s=n<.5?n*(1+e):n+e-n*e,l=2*n-s;r=a(l,s,t+1/3),i=a(l,s,t),o=a(l,s,t-1/3)}return{r:255*r,g:255*i,b:255*o}}(t.h,t.s,t.l),r=!0,i='hsl'),t.hasOwnProperty('a')&&(n=t.a));var o,a,s;return n=Y(n),{ok:r,format:t.format||i,r:v(255,m(e.r,0)),g:v(255,m(e.g,0)),b:v(255,m(e.b,0)),a:n}}(e);this._originalInput=e,this._r=r.r,this._g=r.g,this._b=r.b,this._a=r.a,this._roundA=g(100*this._a)/100,this._format=n.format||r.format,this._gradientType=n.gradientType,this._r<1&&(this._r=g(this._r)),this._g<1&&(this._g=g(this._g)),this._b<1&&(this._b=g(this._b)),this._ok=r.ok,this._tc_id=f++};b.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},setAlpha:function(t){return this._a=Y(t),this._roundA=g(100*this._a)/100,this},toHsv:function(){var t=M(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=M(this._r,this._g,this._b),e=g(360*t.h),n=g(100*t.s),r=g(100*t.v);return 1==this._a?'hsv('+e+', '+n+'%, '+r+'%)':'hsva('+e+', '+n+'%, '+r+'%, '+this._roundA+')'},toHsl:function(){var t=A(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=A(this._r,this._g,this._b),e=g(360*t.h),n=g(100*t.s),r=g(100*t.l);return 1==this._a?'hsl('+e+', '+n+'%, '+r+'%)':'hsla('+e+', '+n+'%, '+r+'%, '+this._roundA+')'},toHex:function(t){return Z(this._r,this._g,this._b,t)},toHexString:function(t){return'#'+this.toHex(t)},toHex8:function(){return L(this._r,this._g,this._b,this._a)},toHex8String:function(){return'#'+this.toHex8()},toRgb:function(){return{r:g(this._r),g:g(this._g),b:g(this._b),a:this._a}},toRgbString:function(){return 1==this._a?'rgb('+g(this._r)+', '+g(this._g)+', '+g(this._b)+')':'rgba('+g(this._r)+', '+g(this._g)+', '+g(this._b)+', '+this._roundA+')'},toPercentageRgb:function(){return{r:g(100*X(this._r,255))+'%',g:g(100*X(this._g,255))+'%',b:g(100*X(this._b,255))+'%',a:this._a}},toPercentageRgbString:function(){return 1==this._a?'rgb('+g(100*X(this._r,255))+'%, '+g(100*X(this._g,255))+'%, '+g(100*X(this._b,255))+'%)':'rgba('+g(100*X(this._r,255))+'%, '+g(100*X(this._g,255))+'%, '+g(100*X(this._b,255))+'%, '+this._roundA+')'},toName:function(){return 0===this._a?'transparent':!(this._a<1)&&(C[Z(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var e='#'+L(this._r,this._g,this._b,this._a),n=e,r=this._gradientType?'GradientType = 1, ':'';t&&(n=b(t).toHex8String());return'progid:DXImageTransform.Microsoft.gradient('+r+'startColorstr='+e+',endColorstr='+n+')'},toString:function(t){var e=!!t;t=t||this._format;var n=!1,r=this._a<1&&this._a>=0;return e||!r||'hex'!==t&&'hex6'!==t&&'hex3'!==t&&'name'!==t?('rgb'===t&&(n=this.toRgbString()),'prgb'===t&&(n=this.toPercentageRgbString()),'hex'!==t&&'hex6'!==t||(n=this.toHexString()),'hex3'===t&&(n=this.toHexString(!0)),'hex8'===t&&(n=this.toHex8String()),'name'===t&&(n=this.toName()),'hsl'===t&&(n=this.toHslString()),'hsv'===t&&(n=this.toHsvString()),n||this.toHexString()):'name'===t&&0===this._a?this.toName():this.toRgbString()},_applyModification:function(t,e){var n=t.apply(null,[this].concat([].slice.call(e)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(B,arguments)},brighten:function(){return this._applyModification(V,arguments)},darken:function(){return this._applyModification(H,arguments)},desaturate:function(){return this._applyModification(N,arguments)},saturate:function(){return this._applyModification(I,arguments)},greyscale:function(){return this._applyModification(F,arguments)},spin:function(){return this._applyModification(z,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(G,arguments)},complement:function(){return this._applyCombination(U,arguments)},monochromatic:function(){return this._applyCombination(K,arguments)},splitcomplement:function(){return this._applyCombination(q,arguments)},triad:function(){return this._applyCombination(W,arguments)},tetrad:function(){return this._applyCombination($,arguments)}},b.fromRatio=function(t,e){if('object'==(0,h.Z)(t)){var n={};for(var r in t)t.hasOwnProperty(r)&&(n[r]='a'===r?t[r]:et(t[r]));t=n}return b(t,e)},b.equals=function(t,e){return!(!t||!e)&&b(t).toRgbString()==b(e).toRgbString()},b.random=function(){return b.fromRatio({r:y(),g:y(),b:y()})},b.mix=function(t,e,n){n=0===n?0:n||50;var r,i=b(t).toRgb(),o=b(e).toRgb(),a=n/100,s=2*a-1,l=o.a-i.a,c=1-(r=((r=s*l==-1?s:(s+l)/(1+s*l))+1)/2),u={r:o.r*r+i.r*c,g:o.g*r+i.g*c,b:o.b*r+i.b*c,a:o.a*a+i.a*(1-a)};return b(u)},b.readability=function(t,e){var n=b(t),r=b(e),i=n.toRgb(),o=r.toRgb(),a=n.getBrightness(),s=r.getBrightness(),l=Math.max(i.r,o.r)-Math.min(i.r,o.r)+Math.max(i.g,o.g)-Math.min(i.g,o.g)+Math.max(i.b,o.b)-Math.min(i.b,o.b);return{brightness:Math.abs(a-s),color:l}},b.isReadable=function(t,e){var n=b.readability(t,e);return n.brightness>125&&n.color>500},b.mostReadable=function(t,e){for(var n=null,r=0,i=!1,o=0;o125&&a.color>500,l=a.brightness/125*3+a.color/500;(s&&!i||s&&i&&l>r||!s&&!i&&l>r)&&(i=s,r=l,n=b(e[o]))}return n};var w,k,x,O=b.names={aliceblue:'f0f8ff',antiquewhite:'faebd7',aqua:'0ff',aquamarine:'7fffd4',azure:'f0ffff',beige:'f5f5dc',bisque:'ffe4c4',black:'000',blanchedalmond:'ffebcd',blue:'00f',blueviolet:'8a2be2',brown:'a52a2a',burlywood:'deb887',burntsienna:'ea7e5d',cadetblue:'5f9ea0',chartreuse:'7fff00',chocolate:'d2691e',coral:'ff7f50',cornflowerblue:'6495ed',cornsilk:'fff8dc',crimson:'dc143c',cyan:'0ff',darkblue:'00008b',darkcyan:'008b8b',darkgoldenrod:'b8860b',darkgray:'a9a9a9',darkgreen:'006400',darkgrey:'a9a9a9',darkkhaki:'bdb76b',darkmagenta:'8b008b',darkolivegreen:'556b2f',darkorange:'ff8c00',darkorchid:'9932cc',darkred:'8b0000',darksalmon:'e9967a',darkseagreen:'8fbc8f',darkslateblue:'483d8b',darkslategray:'2f4f4f',darkslategrey:'2f4f4f',darkturquoise:'00ced1',darkviolet:'9400d3',deeppink:'ff1493',deepskyblue:'00bfff',dimgray:'696969',dimgrey:'696969',dodgerblue:'1e90ff',firebrick:'b22222',floralwhite:'fffaf0',forestgreen:'228b22',fuchsia:'f0f',gainsboro:'dcdcdc',ghostwhite:'f8f8ff',gold:'ffd700',goldenrod:'daa520',gray:'808080',green:'008000',greenyellow:'adff2f',grey:'808080',honeydew:'f0fff0',hotpink:'ff69b4',indianred:'cd5c5c',indigo:'4b0082',ivory:'fffff0',khaki:'f0e68c',lavender:'e6e6fa',lavenderblush:'fff0f5',lawngreen:'7cfc00',lemonchiffon:'fffacd',lightblue:'add8e6',lightcoral:'f08080',lightcyan:'e0ffff',lightgoldenrodyellow:'fafad2',lightgray:'d3d3d3',lightgreen:'90ee90',lightgrey:'d3d3d3',lightpink:'ffb6c1',lightsalmon:'ffa07a',lightseagreen:'20b2aa',lightskyblue:'87cefa',lightslategray:'789',lightslategrey:'789',lightsteelblue:'b0c4de',lightyellow:'ffffe0',lime:'0f0',limegreen:'32cd32',linen:'faf0e6',magenta:'f0f',maroon:'800000',mediumaquamarine:'66cdaa',mediumblue:'0000cd',mediumorchid:'ba55d3',mediumpurple:'9370db',mediumseagreen:'3cb371',mediumslateblue:'7b68ee',mediumspringgreen:'00fa9a',mediumturquoise:'48d1cc',mediumvioletred:'c71585',midnightblue:'191970',mintcream:'f5fffa',mistyrose:'ffe4e1',moccasin:'ffe4b5',navajowhite:'ffdead',navy:'000080',oldlace:'fdf5e6',olive:'808000',olivedrab:'6b8e23',orange:'ffa500',orangered:'ff4500',orchid:'da70d6',palegoldenrod:'eee8aa',palegreen:'98fb98',paleturquoise:'afeeee',palevioletred:'db7093',papayawhip:'ffefd5',peachpuff:'ffdab9',peru:'cd853f',pink:'ffc0cb',plum:'dda0dd',powderblue:'b0e0e6',purple:'800080',rebeccapurple:'663399',red:'f00',rosybrown:'bc8f8f',royalblue:'4169e1',saddlebrown:'8b4513',salmon:'fa8072',sandybrown:'f4a460',seagreen:'2e8b57',seashell:'fff5ee',sienna:'a0522d',silver:'c0c0c0',skyblue:'87ceeb',slateblue:'6a5acd',slategray:'708090',slategrey:'708090',snow:'fffafa',springgreen:'00ff7f',steelblue:'4682b4',tan:'d2b48c',teal:'008080',thistle:'d8bfd8',tomato:'ff6347',turquoise:'40e0d0',violet:'ee82ee',wheat:'f5deb3',white:'fff',whitesmoke:'f5f5f5',yellow:'ff0',yellowgreen:'9acd32'},C=b.hexNames=function(t){var e={};for(var n in t)t.hasOwnProperty(n)&&(e[t[n]]=n);return e}(O),S=(k='[\\s|\\(]+('+(w="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+')[,|\\s]+('+w+')[,|\\s]+('+w+')\\s*\\)?',x='[\\s|\\(]+('+w+')[,|\\s]+('+w+')[,|\\s]+('+w+')[,|\\s]+('+w+')\\s*\\)?',{rgb:new RegExp('rgb'+k),rgba:new RegExp('rgba'+x),hsl:new RegExp('hsl'+k),hsla:new RegExp('hsla'+x),hsv:new RegExp('hsv'+k),hsva:new RegExp('hsva'+x),hex3:/^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex8:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});window.tinycolor=b,t((function(){t.fn.spectrum.load&&t.fn.spectrum.processNativeColorInputs()}))}function P(e,n,r,i){for(var a=[],s=0;s')}else{a.push(t('
').append(t("").attr('title',i.noColorSelectedText)).html())}}return"
"+a.join('')+'
'}function _(l,c){var u,f,h,d,p=function(e,r){var i=t.extend({},n,e);return i.callbacks={move:j(i.move,r),change:j(i.change,r),show:j(i.show,r),hide:j(i.hide,r),beforeShow:j(i.beforeShow,r)},i}(c,l),g=p.flat,v=p.showSelectionPalette,m=p.localStorageKey,y=p.theme,w=p.callbacks,k=(u=Wt,f=10,function(){var t=this,e=arguments,n=function(){d=null,u.apply(t,e)};h&&clearTimeout(d),!h&&d||(d=setTimeout(n,f))}),x=!1,O=!1,C=!0,S=0,_=0,T=0,A=0,M=0,Z=0,L=0,N=0,I=0,F=0,B=1,V=[],H=[],z={},U=p.selectionPalette.slice(0),W=p.maxSelectionSize,$='sp-dragging',q=null,G=l.ownerDocument,K=(G.body,t(l)),Y=!1,X=t(s,G).addClass(y),J=X.find('.sp-picker-container'),Q=X.find('.sp-color'),tt=X.find('.sp-dragger'),et=X.find('.sp-hue'),nt=X.find('.sp-slider'),rt=X.find('.sp-alpha-inner'),it=X.find('.sp-alpha'),ot=X.find('.sp-alpha-handle'),at=X.find('.sp-input'),st=X.find('.sp-palette'),lt=X.find('.sp-initial'),ct=X.find('.sp-cancel'),ut=X.find('.sp-clear'),ft=X.find('.sp-choose'),ht=X.find('.sp-palette-toggle'),dt=K.is('input'),pt=dt&&'color'===K.attr('type')&&R(),gt=dt&&!g,vt=gt?t(a).addClass(y).addClass(p.className).addClass(p.replacerClassName):t([]),mt=gt?vt:K,yt=vt.find('.sp-preview-inner'),bt=p.color||dt&&K.val(),wt=!1,kt=p.preferredFormat,xt=!p.showButtons||p.clickoutFiresChange,Ot=!bt,Ct=p.allowEmpty&&!pt;function St(){if(p.showPaletteOnly&&(p.showPalette=!0),ht.text(p.showPaletteOnly?p.togglePaletteMoreText:p.togglePaletteLessText),p.palette){V=p.palette.slice(0),H=t.isArray(V[0])?V:[V],z={};for(var e=0;e1&&(delete window.localStorage[m],t.each(e,(function(t,e){_t(e)})))}catch(t){}try{U=window.localStorage[m].split(';')}catch(t){}}}function _t(e){if(v){var n=b(e).toRgbString();if(!z[n]&&-1===t.inArray(n,U))for(U.push(n);U.length>W;)U.shift();if(m&&window.localStorage)try{window.localStorage[m]=U.join(';')}catch(t){}}}function Tt(){var e=Bt(),n=t.map(H,(function(t,n){return P(t,e,'sp-palette-row sp-palette-row-'+n,p)}));Pt(),U&&n.push(P(function(){var t=[];if(p.showPalette)for(var e=0;ed&&d>i?Math.abs(g.left+i-d):0),g.top-=Math.min(g.top,g.top+o>p&&p>o?Math.abs(o+a-r):r),g}(X,mt))),zt(),p.showPalette&&Tt(),K.trigger('reflow.spectrum'))}function $t(){Nt(),Y=!0,K.attr('disabled',!0),mt.addClass('sp-disabled')}!function(){if(i&&X.find('*:not(input)').attr('unselectable','on'),St(),gt&&K.after(vt).hide(),Ct||ut.hide(),g)K.after(X).hide();else{var e='parent'===p.appendTo?K.parent():t(p.appendTo);1!==e.length&&(e=t('body')),e.append(X)}function n(e){return e.data&&e.data.ignore?(Ft(t(e.target).closest('.sp-thumb-el').data('color')),Vt()):(Ft(t(e.target).closest('.sp-thumb-el').data('color')),Vt(),p.hideAfterPaletteSelect&&(Ut(!0),Nt())),!1}Pt(),mt.bind('click.spectrum touchstart.spectrum',(function(e){Y||At(),e.stopPropagation(),t(e.target).is('input')||e.preventDefault()})),(K.is(':disabled')||!0===p.disabled)&&$t(),X.click(E),at.change(Rt),at.bind('paste',(function(){setTimeout(Rt,1)})),at.keydown((function(t){13==t.keyCode&&Rt()})),ct.text(p.cancelText),ct.bind('click.spectrum',(function(t){t.stopPropagation(),t.preventDefault(),It(),Nt()})),ut.attr('title',p.clearText),ut.bind('click.spectrum',(function(t){t.stopPropagation(),t.preventDefault(),Ot=!0,Vt(),g&&Ut(!0)})),ft.text(p.chooseText),ft.bind('click.spectrum',(function(t){t.stopPropagation(),t.preventDefault(),i&&at.is(':focus')&&at.trigger('change'),at.hasClass('sp-validation-error')||(Ut(!0),Nt())})),ht.text(p.showPaletteOnly?p.togglePaletteMoreText:p.togglePaletteLessText),ht.bind('click.spectrum',(function(t){t.stopPropagation(),t.preventDefault(),p.showPaletteOnly=!p.showPaletteOnly,p.showPaletteOnly||g||X.css('left','-='+(J.outerWidth(!0)+5)),St()})),D(it,(function(t,e,n){B=t/M,Ot=!1,n.shiftKey&&(B=Math.round(10*B)/10),Vt()}),jt,Dt),D(et,(function(t,e){N=parseFloat(e/A),Ot=!1,p.showAlpha||(B=1),Vt()}),jt,Dt),D(Q,(function(t,e,n){if(n.shiftKey){if(!q){var r=I*S,i=_-F*_,o=Math.abs(t-r)>Math.abs(e-i);q=o?'x':'y'}}else q=null;var a=!q||'y'===q;(!q||'x'===q)&&(I=parseFloat(t/S)),a&&(F=parseFloat((_-e)/_)),Ot=!1,p.showAlpha||(B=1),Vt()}),jt,Dt),bt?(Ft(bt),Ht(),kt=p.preferredFormat||b(bt).getFormat(),_t(bt)):Ht(),g&&Mt();var r=i?'mousedown.spectrum':'click.spectrum touchstart.spectrum';st.delegate('.sp-thumb-el',r,n),lt.delegate('.sp-thumb-el:nth-child(1)',r,{ignore:!0},n)}();var qt={show:Mt,hide:Nt,toggle:At,reflow:Wt,option:function(n,r){return n===e?t.extend({},p):r===e?p[n]:(p[n]=r,'preferredFormat'===n&&(kt=p.preferredFormat),void St())},enable:function(){Y=!1,K.attr('disabled',!1),mt.removeClass('sp-disabled')},disable:$t,offset:function(t){p.offset=t,Wt()},set:function(t){Ft(t),Ut()},get:Bt,destroy:function(){K.show(),mt.unbind('click.spectrum touchstart.spectrum'),X.remove(),vt.remove(),r[qt.id]=null},container:X};return qt.id=r.push(qt)-1,qt}function T(){}function E(t){t.stopPropagation()}function j(t,e){var n=Array.prototype.slice,r=n.call(arguments,2);return function(){return t.apply(e,r.concat(n.call(arguments)))}}function D(e,n,r,o){n=n||function(){},r=r||function(){},o=o||function(){};var a=document,s=!1,l={},c=0,u=0,f='ontouchstart'in window,h={};function d(t){t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault(),t.returnValue=!1}function p(t){if(s){if(i&&a.documentMode<9&&!t.button)return g();var r=t&&t.touches&&t.touches[0],o=r&&r.pageX||t.pageX,h=r&&r.pageY||t.pageY,p=Math.max(0,Math.min(o-l.left,u)),v=Math.max(0,Math.min(h-l.top,c));f&&d(t),n.apply(e,[p,v,t])}}function g(){s&&(t(a).unbind(h),t(a.body).removeClass('sp-dragging'),setTimeout((function(){o.apply(e,arguments)}),0)),s=!1}h.selectstart=d,h.dragstart=d,h['touchmove mousemove']=p,h['touchend mouseup']=g,t(e).bind('touchstart mousedown',(function(n){var i=n.which?3==n.which:2==n.button;i||s||!1!==r.apply(e,arguments)&&(s=!0,c=t(e).height(),u=t(e).width(),l=t(e).offset(),t(a).bind(h),t(a.body).addClass('sp-dragging'),p(n),d(n))}))}function R(){return t.fn.spectrum.inputTypeColorSupport()}function A(t,e,n){t=X(t,255),e=X(e,255),n=X(n,255);var r,i,o=m(t,e,n),a=v(t,e,n),s=(o+a)/2;if(o==a)r=i=0;else{var l=o-a;switch(i=s>.5?l/(2-o-a):l/(o+a),o){case t:r=(e-n)/l+(e>1)+720)%360;--e;)r.h=(r.h+i)%360,o.push(b(r));return o}function K(t,e){e=e||6;for(var n=b(t).toHsv(),r=n.h,i=n.s,o=n.v,a=[],s=1/e;e--;)a.push(b({h:r,s:i,v:o})),o=(o+s)%1;return a}function Y(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function X(t,e){(function(t){return'string'==typeof t&&-1!=t.indexOf('.')&&1===parseFloat(t)})(t)&&(t='100%');var n=function(t){return'string'==typeof t&&-1!=t.indexOf('%')}(t);return t=v(e,m(0,parseFloat(t))),n&&(t=parseInt(t*e,10)/100),p.abs(t-e)<1e-6?1:t%e/parseFloat(e)}function J(t){return v(1,m(0,t))}function Q(t){return parseInt(t,16)}function tt(t){return 1==t.length?'0'+t:''+t}function et(t){return t<=1&&(t=100*t+'%'),t}function nt(t){return Q(t)/255}}(y);var b=function(t){var e='name'===t.getFormat()&&t.toName(),n=1==t.getAlpha()?t.toHexString():t.toRgbString();return e||n.replace(/ /g,'')},w=function(t){(0,a.Z)(n,t);var e=m(n);function n(){return(0,i.Z)(this,n),e.apply(this,arguments)}return(0,o.Z)(n,[{key:"template",value:function(){var t=this.ppfx;return"\n
\n
\n
\n
\n
\n
\n ")}},{key:"inputClass",value:function(){var t=this.ppfx;return"".concat(t,"field ").concat(t,"field-color")}},{key:"holderClass",value:function(){return"".concat(this.ppfx,"input-holder")}},{key:"remove",value:function(){p.Z.prototype.remove.apply(this,arguments),this.colorEl.spectrum('destroy')}},{key:"handleChange",value:function(t){t.stopPropagation();var e=t.target.value;(0,f.isUndefined)(e)||this.__onInputChange(e)}},{key:"__onInputChange",value:function(t){var e=this.model,n=this.opts.onChange,r=t,i=this.getColorEl();if(i){i.spectrum('set',r);var o=i.spectrum('get'),a=r&&b(o);a&&(r=a)}n?n(r):e.set({value:r},{fromInput:1})}},{key:"setValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.model,r=(0,f.isUndefined)(e.def)?n.get('defaults'):e.def,i=(0,f.isUndefined)(t)?(0,f.isUndefined)(r)?'':r:t,o=this.getInputEl(),a=this.getColorEl(),s='none'!=i?i:'';o.value=i,a.get(0).style.backgroundColor=s,(e.fromTarget||e.fromInput&&!e.avoidStore)&&(a.spectrum('set',s),this.noneColor='none'==i)}},{key:"getColorEl",value:function(){if(!this.colorEl){var t,e=this.em,n=this.model,r=this.opts,i=this,o=this.ppfx,a=r.onChange,s=y("
")),l=s.get(0).style,c=e&&e.config?e.config.el:'',u=e&&e.getConfig&&e.getConfig('colorPicker')||{},f=0;this.$el.find("[data-colorp-c]").append(s),s.spectrum(v(v(v({color:n.getValue()||!1,containerClassName:"".concat(o,"one-bg ").concat(o,"two-color"),appendTo:c||'body',maxSelectionSize:8,showPalette:!0,showAlpha:!0,chooseText:'Ok',cancelText:'⨯',palette:[]},u),n.get('colorPicker')||{}),{},{move:function(t){var e=b(t);l.backgroundColor=e,a?a(e,!0):n.setValueFromInput(e,0)},change:function(t){f=1;var e=b(t);l.backgroundColor=e,a?a(e):(n.setValueFromInput(0,0),n.setValueFromInput(e)),i.noneColor=0},show:function(e){f=0,t=a?n.getValue({noDefault:!0}):b(e)},hide:function(e){f||!t&&!a||(i.noneColor&&(t=''),l.backgroundColor=t,s.spectrum('set',t),a?a(t,!0):n.setValueFromInput(t,0))}})),e&&e.on&&this.listenTo(e,'component:selected',(function(){f=1,s.spectrum('hide')})),this.colorEl=s}return this.colorEl}},{key:"render",value:function(){return p.Z.prototype.render.call(this),this.getColorEl(),this}}]),n}(p.Z)},7813:(t,e,n)=>{"use strict";n.d(e,{Z:()=>g});var r=n(5671),i=n(3144),o=n(7326),a=n(9340),s=n(2963),l=n(1120),c=n(2316),u=n.n(c),f=n(9050),h=n(3168),d=n(4281);function p(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,l.Z)(t);if(e){var i=(0,l.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,s.Z)(this,n)}}u().$;var g=function(t){(0,a.Z)(n,t);var e=p(n);function n(){var t,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,r.Z)(this,n),t=e.call(this,i),(0,f.bindAll)((0,o.Z)(t),'moveIncrement','upIncrement'),t.doc=document,t.listenTo(t.model,'change:unit',t.handleModelChange),t}return(0,i.Z)(n,[{key:"template",value:function(){var t=this.ppfx;return"\n \n \n
\n
\n
\n
\n ")}},{key:"inputClass",value:function(){var t=this.ppfx;return this.opts.contClass||"".concat(t,"field ").concat(t,"field-integer")}},{key:"setValue",value:function(t,e){var n=e||{},r=this.validateInputValue(t,{deepCheck:1}),i={value:r.value};(r.unit||r.force)&&(i.unit=r.unit),this.model.set(i,n),n.silent&&this.handleModelChange()}},{key:"handleChange",value:function(t){t.stopPropagation(),this.setValue(this.getInputEl().value),this.elementUpdated()}},{key:"handleUnitChange",value:function(t){t.stopPropagation();var e=this.getUnitEl().value;this.model.set('unit',e),this.elementUpdated()}},{key:"handleKeyDown",value:function(t){'ArrowUp'===t.key&&(t.preventDefault(),this.upArrowClick()),'ArrowDown'===t.key&&(t.preventDefault(),this.downArrowClick())}},{key:"elementUpdated",value:function(){this.model.trigger('el:change')}},{key:"handleModelChange",value:function(){var t=this.model;this.getInputEl().value=t.get('value');var e=this.getUnitEl();e&&(e.value=t.get('unit')||'')}},{key:"getUnitEl",value:function(){if(!this.unitEl){var t=this.model,e=t.get('units')||[];if(e.length){var n=[''];e.forEach((function(e){var r=e==t.get('unit')?'selected':'';n.push(""))}));var r=document.createElement('div');r.innerHTML=""),this.unitEl=r.firstChild}}return this.unitEl}},{key:"upArrowClick",value:function(){var t=this.model,e=t.get('step'),n=parseFloat(t.get('value'));this.setValue(this.normalizeValue(n+e)),this.elementUpdated()}},{key:"downArrowClick",value:function(){var t=this.model,e=t.get('step'),n=parseFloat(t.get('value'));this.setValue(this.normalizeValue(n-e)),this.elementUpdated()}},{key:"downIncrement",value:function(t){t.preventDefault(),this.moved=0;var e=this.model.get('value')||0;e=this.normalizeValue(e),this.current={y:t.pageY,val:e},(0,h.on)(this.doc,'mousemove',this.moveIncrement),(0,h.on)(this.doc,'mouseup',this.upIncrement)}},{key:"moveIncrement",value:function(t){this.moved=1;var e=this.model,n=e.get('step'),r=this.current,i=this.normalizeValue(r.val+(r.y-t.pageY)*n),o=this.validateInputValue(i),a=o.value,s=o.unit;return this.prValue=a,e.set({value:a,unit:s},{avoidStore:1}),!1}},{key:"upIncrement",value:function(){var t=this.model,e=t.get('step');if((0,h.off)(this.doc,'mouseup',this.upIncrement),(0,h.off)(this.doc,'mousemove',this.moveIncrement),this.prValue&&this.moved){var n=this.prValue-e;t.set('value',n,{avoidStore:1}).set('value',n+e),this.elementUpdated()}}},{key:"normalizeValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.model,r=n.get('step'),i=0;if(isNaN(t))return e;if(t=parseFloat(t),Math.floor(t)!==t){var o=r.toString().split('.')[1];i=o?o.length:0}return i?parseFloat(t.toFixed(i)):t}},{key:"validateInputValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=0,r=e||{},i=this.model,o='',a=(0,f.isUndefined)(t)?o:t,s=e.units||i.get('units')||[],l=i.get('unit')||s.length&&s[0]||'',c=(0,f.isUndefined)(e.max)?i.get('max'):e.max,u=(0,f.isUndefined)(e.min)?i.get('min'):e.min,h=!!i.get('limitlessMax'),d=!!i.get('limitlessMin');if(r.deepCheck){var p=i.get('fixedValues')||[];if(''===a&&(l=''),a){var g=new RegExp('^'+p.join('|'),'g');if(p.length&&g.test(a))a=a.match(g)[0],l='',n=1;else{var v=a+'';a+='',a=parseFloat(a.replace(',','.')),a=isNaN(a)?o:a;var m=v.replace(a,'');(0,f.indexOf)(s,m)>=0&&(l=m)}}}return h||(0,f.isUndefined)(c)||''===c||(a=a>c?c:a),d||(0,f.isUndefined)(u)||''===u||(a=a{"use strict";n.d(e,{Z:()=>p});var r=n(5671),i=n(3144),o=n(7326),a=n(9340),s=n(2963),l=n(1120),c=n(4942),u=n(9050),f=n(2316),h=n.n(f);function d(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,l.Z)(t);if(e){var i=(0,l.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,s.Z)(this,n)}}var p=function(t){(0,a.Z)(n,t);var e=d(n);function n(){var t,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=arguments.length>1?arguments[1]:void 0,s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return(0,r.Z)(this,n),t=e.call(this,i),(0,c.Z)((0,o.Z)(t),"itemsView",''),(0,c.Z)((0,o.Z)(t),"itemType",'type'),(0,c.Z)((0,o.Z)(t),"reuseView",!1),t.config=a||i.config||{},s&&t.listenTo(t.collection,'add',t.addTo),t.items=[],t}return(0,i.Z)(n,[{key:"addTo",value:function(t){this.add(t)}},{key:"itemViewNotFound",value:function(t){var e=this.config,n=this.ns,r=e.em,i="".concat(n?"[".concat(n,"]: "):'',"'").concat(t,"' type not found");r&&r.logWarning(i)}},{key:"add",value:function(t,e){var n,r=this.config,i=this.reuseView,o=this.items,a=this.itemsView,s=void 0===a?{}:a,l=e||null,c=this.itemView,f=t.get(this.itemType);s[f]?c=s[f]:!f||s[f]||(0,u.includes)(['button','checkbox','color','date','datetime-local','email','file','hidden','image','month','number','password','radio','range','reset','search','submit','tel','text','time','url','week'],f)||this.itemViewNotFound(f),n=t.view&&i?t.view:new c({model:t,config:r},r),o&&o.push(n);var h=n.render().el;l?l.appendChild(h):this.$el.append(h)}},{key:"render",value:function(){var t=document.createDocumentFragment();return this.clearItems(),this.$el.empty(),this.collection.length&&this.collection.each((function(e){this.add(e,t)}),this),this.$el.append(t),this.onRender(),this}},{key:"onRender",value:function(){}},{key:"onRemoveBefore",value:function(){}},{key:"onRemove",value:function(){}},{key:"remove",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.items;this.onRemoveBefore(e,t),this.clearItems(),h().View.prototype.remove.apply(this,arguments),this.onRemove(e,t)}},{key:"clearItems",value:function(){this.items}}]),n}(h().View);p.prototype.itemView=''},5808:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>d});var r=n(4942),i=n(1002),o=n(9050),a=n(3168),s={placeholder:'eg. Text here'};const l={locale:'en',localeFallback:'en',detectLocale:!0,debug:!1,messages:{en:{assetManager:{addButton:'Add image',inputPlh:'http://path/to/the/image.jpg',modalTitle:'Select Image',uploadTitle:'Drop files here or click to upload'},blockManager:{labels:{},categories:{}},domComponents:{names:{'':'Box',wrapper:'Body',text:'Text',comment:'Comment',image:'Image',video:'Video',label:'Label',link:'Link',map:'Map',tfoot:'Table foot',tbody:'Table body',thead:'Table head',table:'Table',row:'Table row',cell:'Table cell'}},deviceManager:{device:'Device',devices:{desktop:'Desktop',tablet:'Tablet',mobileLandscape:'Mobile Landscape',mobilePortrait:'Mobile Portrait'}},panels:{buttons:{titles:{preview:'Preview',fullscreen:'Fullscreen','sw-visibility':'View components','export-template':'View code','open-sm':'Open Style Manager','open-tm':'Settings','open-layers':'Open Layer Manager','open-blocks':'Open Blocks'}}},selectorManager:{label:'Classes',selected:'Selected',emptyState:'- State -',states:{hover:'Hover',active:'Click','nth-of-type(2n)':'Even/Odd'}},styleManager:{empty:'Select an element before using Style Manager',layer:'Layer',fileButton:'Images',sectors:{general:'General',layout:'Layout',typography:'Typography',decorations:'Decorations',extra:'Extra',flex:'Flex',dimension:'Dimension'},properties:{'text-shadow-h':'X','text-shadow-v':'Y','text-shadow-blur':'Blur','text-shadow-color':'Color','box-shadow-h':'X','box-shadow-v':'Y','box-shadow-blur':'Blur','box-shadow-spread':'Spread','box-shadow-color':'Color','box-shadow-type':'Type','margin-top-sub':'Top','margin-right-sub':'Right','margin-bottom-sub':'Bottom','margin-left-sub':'Left','padding-top-sub':'Top','padding-right-sub':'Right','padding-bottom-sub':'Bottom','padding-left-sub':'Left','border-width-sub':'Width','border-style-sub':'Style','border-color-sub':'Color','border-top-left-radius-sub':'Top Left','border-top-right-radius-sub':'Top Right','border-bottom-right-radius-sub':'Bottom Right','border-bottom-left-radius-sub':'Bottom Left','transform-rotate-x':'Rotate X','transform-rotate-y':'Rotate Y','transform-rotate-z':'Rotate Z','transform-scale-x':'Scale X','transform-scale-y':'Scale Y','transform-scale-z':'Scale Z','transition-property-sub':'Property','transition-duration-sub':'Duration','transition-timing-function-sub':'Timing','background-image-sub':'Image','background-repeat-sub':'Repeat','background-position-sub':'Position','background-attachment-sub':'Attachment','background-size-sub':'Size'}},traitManager:{empty:'Select an element before using Trait Manager',label:'Component settings',traits:{labels:{},attributes:{id:s,alt:s,title:s,href:{placeholder:'eg. https://google.com'}},options:{target:{false:'This window',_blank:'New window'}}}},storageManager:{recover:'Do you want to recover unsaved changes?'}}},messagesAdd:null};function c(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function u(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.config=u(u(u({},l),t),{},{messages:u(u({},l.messages),t.messages||{})});var e=this.config.messagesAdd;return e&&this.addMessages(e),this.config.detectLocale&&(this.config.locale=this._localLang()),this.em=t.em,this},getConfig:function(){return this.config},setLocale:function(t){var e=this.em,n=this.config,r={value:t,valuePrev:n.locale};return e&&e.trigger('i18n:locale',r),n.locale=t,this},getLocale:function(){return this.config.locale},getMessages:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.config.messages;return t&&!n[t]&&this._debug("'".concat(t,"' i18n lang not found"),e),t?n[t]:n},setMessages:function(t){var e=this.em;return this.config.messages=t,e&&e.trigger('i18n:update',t),this},addMessages:function(t){var e=this.em,n=this.config.messages;return e&&e.trigger('i18n:add',t),this.setMessages(h(n,t)),this},t:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.config,r=e.params||{},i=e.l||this.getLocale(),a=e.lFlb||n.localeFallback,s=this._getMsg(t,i,e);return s||(s=this._getMsg(t,a,e)),!s&&this._debug("'".concat(t,"' i18n key not found in '").concat(i,"' lang"),e),s=s&&(0,o.isString)(s)?this._addParams(s,r):s},_localLang:function(){var t=(0,a.hasWin)()&&window.navigator||{},e=t.language||t.userLanguage;return e?e.split('-')[0]:'en'},_addParams:function(t,e){var n=new RegExp("{([\\w\\d-]*)}",'g');return t.replace(n,(function(t,n){return e[n]||''})).trim()},_getMsg:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.getMessages(e,n);if(r){var i=r[t];return!i&&t.indexOf('.')>0&&(i=t.split('.').reduce((function(t,e){if(!(0,o.isUndefined)(t))return t[e]}),r)),i}},_debug:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.em,r=this.config;(e.debug||r.debug)&&n&&n.logWarning(t)},destroy:function(){this.config=l,this.em={}}}}},2058:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>E});var r,i=n(1002),o=n(4942),a=n(9050),s=n(3168),l={},c={16:!1,18:!1,17:!1,91:!1},u='all',f={'⇧':16,shift:16,'⌥':18,alt:18,option:18,'⌃':17,ctrl:17,control:17,'⌘':91,command:91},h={backspace:8,tab:9,clear:12,enter:13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,home:36,end:35,pageup:33,pagedown:34,',':188,'.':190,'/':191,'`':192,'-':189,'=':187,';':186,"'":222,'[':219,']':221,'\\':220},d=function(t){return h[t]||t.toUpperCase().charCodeAt(0)},p=[];for(r=1;r<20;r++)h['f'+r]=111+r;function g(t,e){for(var n=t.length;n--;)if(t[n]===e)return n;return-1}function v(t,e){if(t.length!=e.length)return!1;for(var n=0;n=0&&p.splice(r,1),93!=n&&224!=n||(n=91),n in c)for(e in c[n]=!1,f)f[e]==n&&(k[e]=!1)}function w(){for(r in c)c[r]=!1;for(r in f)k[r]=!1}function k(t,e,n){var r,i;r=O(t),void 0===n&&(n=e,e='all');for(var o=0;o1&&(i=C(t),t=[t[t.length-1]]),t=t[0],(t=d(t))in l||(l[t]=[]),l[t].push({shortcut:r[o],scope:e,method:n,key:r[o],mods:i})}for(r in f)k[r]=!1;function x(){return u||'all'}function O(t){var e;return''==(e=(t=t.replace(/\s/g,'')).split(','))[e.length-1]&&(e[e.length-2]+=','),e}function C(t){for(var e=t.slice(0,t.length-1),n=0;n1&&(s=C(r)),t=r[r.length-1],t=d(t),void 0===e&&(e=x()),!l[t])return;for(i=0;i0,c)(!c[r]&&g(n.mods,+r)>-1||c[r]&&-1==g(n.mods,+r))&&(o=!1);(0!=n.mods.length||c[16]||c[18]||c[17]||c[91])&&!o||!1===n.method(t,n)&&(t.preventDefault?t.preventDefault():t.returnValue=!1,t.stopPropagation&&t.stopPropagation(),t.cancelBubble&&(t.cancelBubble=!0))}}(t)})),S(t.document,'keyup',b),S(t,'focus',w)};const P=k;function _(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function T(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return this.config=T(T({},t),e),this.em=this.config.em,this.keymaps={},this},onLoad:function(){var t=this.config.defaults;for(var e in t){var n=t[e];this.add(e,n.keys,n.handler,n.opts||{})}},add:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=this.em,s=o.get('Commands'),l=o.getEditor(),c=o.get('Canvas'),u={id:t,keys:e,handler:n},f=this.keymaps[t];return f&&this.remove(t),this.keymaps[t]=u,P(e,(function(e,u){var f={event:e,h:u};if(n=(0,a.isString)(n)?s.get(n):n,!o.isEditing()&&!l.Canvas.isInputFocused()||r.force){r.prevent&&c.getCanvasView().preventDefault(e),'object'==(0,i.Z)(n)?s.runCommand(n,f):n(l,0,f);var h=[t,u.shortcut,e];o.trigger.apply(o,['keymap:emit'].concat(h)),o.trigger.apply(o,["keymap:emit:".concat(t)].concat(h))}})),o.trigger('keymap:add',u),u},get:function(t){return this.keymaps[t]},getAll:function(){return this.keymaps},remove:function(t){var e=this.em,n=this.get(t);if(n)return delete this.keymaps[t],n.keys.split(', ').forEach((function(t){return P.unbind(t.trim())})),e&&e.trigger('keymap:remove',n),n},removeAll:function(){var t=this;return Object.keys(this.keymaps).forEach((function(e){return t.remove(e)})),P.handlers={},this},destroy:function(){this.removeAll(),this.keymaps={},this.em={}}}}},3656:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>w});var r=n(4942),i=n(9050),o=n(827);const a={stylePrefix:'mdl-',title:'',content:'',backdrop:!0,custom:!1,extend:{}};var s=n(5671),l=n(3144),c=n(9340),u=n(2963),f=n(1120);function h(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,f.Z)(t);if(e){var i=(0,f.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,u.Z)(this,n)}}var d=function(t){(0,c.Z)(n,t);var e=h(n);function n(){return(0,s.Z)(this,n),e.apply(this,arguments)}return(0,l.Z)(n,[{key:"defaults",value:function(){return{title:'',content:'',attributes:{},open:!1}}},{key:"open",value:function(){this.set('open',!0)}},{key:"close",value:function(){this.set('open',!1)}}]),n}(n(6409).Z);function p(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function g(t){for(var e=1;e\n
\n
").concat(i,"
\n
\n
\n
\n
").concat(r,"
\n
\n
\n
\n
")}},{key:"events",value:function(){return{click:'onClick','click [data-close-modal]':'hide'}}},{key:"initialize",value:function(t){var e=this.model,n=t.config||{},r=n.stylePrefix||'';this.config=n,this.pfx=r,this.ppfx=n.pStylePrefix||'',this.listenTo(e,'change:open',this.updateOpen),this.listenTo(e,'change:title',this.updateTitle),this.listenTo(e,'change:content',this.updateContent)}},{key:"onClick",value:function(t){this.config.backdrop&&t.target===this.el&&this.hide()}},{key:"getCollector",value:function(){return this.$collector||(this.$collector=this.$el.find('.'+this.pfx+'collector')),this.$collector}},{key:"getContent",value:function(){var t=this.pfx;return this.$content||(this.$content=this.$el.find(".".concat(t,"content #").concat(t,"c"))),this.$content}},{key:"getTitle",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.$title||(this.$title=this.$el.find('.'+this.pfx+'title')),t.$?this.$title:this.$title.get(0)}},{key:"updateContent",value:function(){var t=this.getContent(),e=t.children(),n=this.getCollector(),r=this.model.get('content');e.length&&n.append(e),t.empty().append(r)}},{key:"updateTitle",value:function(){var t=this.getTitle({$:!0});t&&t.empty().append(this.model.get('title'))}},{key:"updateOpen",value:function(){this.el.style.display=this.model.get('open')?'':'none'}},{key:"hide",value:function(){this.model.close()}},{key:"show",value:function(){this.model.open()}},{key:"updateAttr",value:function(t){var e=this.pfx,n=this.$el,r=this.el,i=[].slice.call(r.attributes).map((function(t){return t.name}));n.removeAttr(i.join(' ')),n.attr(g(g({},t||{}),{},{class:"".concat(e,"container ").concat(t&&t.class||'').trim()}))}},{key:"render",value:function(){var t=this.$el,e=this.model.toJSON();return e.pfx=this.pfx,e.ppfx=this.ppfx,t.html(this.template(e)),this.updateAttr(),this.updateOpen(),this}}]),n}(n(2316).View);function y(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function b(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},s=(n=b(b({},a),o)).em;this.em=s;var l=n.pStylePrefix;return l&&(n.stylePrefix=l+n.stylePrefix),(t=new d(n)).on('change:open',(function(t,e){return r(e,s)})),t.on('change',(0,i.debounce)((function(){var t=e._evData(),n=e.getConfig().custom;(0,i.isFunction)(n)&&n(t),s.trigger('modal',t)}))),this},_evData:function(){var e=this,n=this.getTitle(),r=this.getContent(),a=t.attributes;return{open:a.open,attributes:a.attributes,title:(0,i.isString)(n)?(0,o.rw)(n):n,content:(0,i.isString)(r)?(0,o.rw)(r):r.get?r.get(0):r,close:function(){return e.close()}}},postRender:function(t){var e=t.model.getConfig().el||t.el,n=this.render();n&&n.appendTo(e)},open:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=n.attributes||{};return n.title&&this.setTitle(n.title),n.content&&this.setContent(n.content),t.set('attributes',r),t.open(),e&&e.updateAttr(r),this},close:function(){return t.close(),this},onceClose:function(t){return this.em.once('modal:close',t),this},onceOpen:function(t){return this.em.once('modal:open',t),this},isOpen:function(){return!!t.get('open')},setTitle:function(e){return t.set('title',e),this},getTitle:function(){return t.get('title')},setContent:function(e){return t.set('content',' '),t.set('content',e),this},getContent:function(){return t.get('content')},getContentEl:function(){return e.getContent().get(0)},getModel:function(){return t},render:function(){if(!this.getConfig().custom){var r=m.extend(n.extend),i=e&&e.el;return(e=new r({el:i,model:t,config:n})).render().$el}},destroy:function(){e&&e.remove(),[n,t,e].forEach((function(t){return{}})),this.em={}}}}},3487:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>O});var r=n(4942),i=n(9050);const o={stylePrefix:'',appendTo:'',sortable:1,hidable:1,hideTextnode:1,root:'',showWrapper:1,showHover:1,scrollCanvas:{behavior:'smooth',block:'nearest'},scrollLayers:{behavior:'auto',block:'nearest'},highlightHover:1,onInit:function(){},onRender:function(){},extend:{}};var a=n(5671),s=n(3144),l=n(9340),c=n(2963),u=n(1120),f=n(2316),h=n(3168),d=n(274),p=n(4822);function g(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,u.Z)(t);if(e){var i=(0,u.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,c.Z)(this,n)}}var v,m='contentEditable',y={mediaText:''},b=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return 0===(t.display||'').trim().indexOf('none')},w=function(t){(0,l.Z)(r,t);var e=g(r);function r(){return(0,a.Z)(this,r),e.apply(this,arguments)}return(0,s.Z)(r,[{key:"events",value:function(){return{'mousedown [data-toggle-move]':'startSort','touchstart [data-toggle-move]':'startSort','click [data-toggle-visible]':'toggleVisibility','click [data-toggle-open]':'toggleOpening','click [data-toggle-select]':'handleSelect','mouseover [data-toggle-select]':'handleHover','mouseout [data-toggle-select]':'handleHoverOut','dblclick [data-name]':'handleEdit','keydown [data-name]':'handleEditKey','focusout [data-name]':'handleEditEnd'}}},{key:"template",value:function(t){var e=this.pfx,n=this.ppfx,r=this.config,i=this.clsNoEdit,o=r.hidable,a=this.countChildren(t),s=a?'':this.clsNoChild,l="".concat(this.clsTitle," ").concat(s),c="".concat(this.clsTitleC," ").concat(n,"one-bg"),u="".concat(this.clsCaret," fa fa-chevron-right"),f="".concat(this.inputNameCls," ").concat(i," ").concat(n,"no-app"),h=this.level+1,d="".concat(30+10*h,"px"),p=t.getName(),g=t.getIcon(),v="".concat(e,"layer");return"\n ".concat(o?""):'',"\n
\n
\n
\n \n ").concat(g?"").concat(g,""):'',"\n ").concat(p,"\n
\n
\n
\n
").concat(a||'',"
\n
\n \n
\n
")}},{key:"initialize",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,i.bindAll)(this,'__render'),this.opt=e,this.level=e.level;var n=e.config||{},r=n.onInit;this.config=n,this.em=e.config.em,this.ppfx=this.em.get('Config').stylePrefix,this.sorter=e.sorter||'',this.pfx=this.config.stylePrefix,this.parentView=e.parentView;var o=this.pfx,a=this.ppfx,s=this.model,l=s.get('components'),c=s.get('type')||'default';s.set('open',!1),this.listenTo(l,'remove add reset',this.checkChildren),[['change:status',this.updateStatus],['change:open',this.updateOpening],['change:layerable',this.updateLayerable],['change:style:display',this.updateVisibility],['rerender:layer',this.render],['change:name change:custom-name',this.updateName]].forEach((function(e){return t.listenTo(s,e[0],e[1])})),this.className="".concat(o,"layer ").concat(o,"layer__t-").concat(c," no-select ").concat(a,"two-color"),this.inputNameCls="".concat(a,"layer-name"),this.clsTitleC="".concat(o,"layer-title-c"),this.clsTitle="".concat(o,"layer-title"),this.clsCaret="".concat(o,"layer-caret"),this.clsCount="".concat(o,"layer-count"),this.clsMove="".concat(o,"layer-move"),this.clsChildren="".concat(o,"layer-children"),this.clsNoChild="".concat(o,"layer-no-chld"),this.clsEdit="".concat(this.inputNameCls,"--edit"),this.clsNoEdit="".concat(this.inputNameCls,"--no-edit"),this.$el.data('model',s),this.$el.data('collection',l),s.viewLayer=this,r.bind(this)({component:s,render:this.__render,listenTo:this.listenTo})}},{key:"updateName",value:function(){this.getInputName().innerText=this.model.getName()}},{key:"getVisibilityEl",value:function(){return this.eyeEl||(this.eyeEl=this.$el.children(".".concat(this.pfx,"layer-vis"))),this.eyeEl}},{key:"updateVisibility",value:function(){var t=this.pfx,e=this.model,n="".concat(t,"layer-hidden"),r=b(e.getStyle(y))?'addClass':'removeClass';this.$el[r](n),this.getVisibilityEl()[r]('fa-eye-slash')}},{key:"toggleVisibility",value:function(t){t&&t.stopPropagation();var e=this.model,n=this.em,r='__prev-display',i=e.get(r),o=e.getStyle(y),a=o.display;b(o)?(delete o.display,i&&(o.display=i,e.unset(r))):(a&&e.set(r,a),o.display='none'),e.setStyle(o,y),n&&n.trigger('component:toggled')}},{key:"handleEdit",value:function(t){t&&t.stopPropagation();var e=this.em,n=this.$el,r=this.clsNoEdit,i=this.clsEdit,o=this.getInputName();o[m]=!0,o.focus(),document.execCommand('selectAll',!1,null),e&&e.setEditing(1),n.find(".".concat(this.inputNameCls)).removeClass(r).addClass(i)}},{key:"handleEditKey",value:function(t){t.stopPropagation(),((0,h.isEscKey)(t)||(0,h.isEnterKey)(t))&&this.handleEditEnd(t)}},{key:"handleEditEnd",value:function(t){t&&t.stopPropagation();var e=this.em,n=this.$el,r=this.clsNoEdit,i=this.clsEdit,o=this.getInputName(),a=o.textContent;o.scrollLeft=0,o[m]=!1,this.setName(a,{component:this.model,propName:'custom-name'}),e&&e.setEditing(0),n.find(".".concat(this.inputNameCls)).addClass(r).removeClass(i)}},{key:"setName",value:function(t,e){var n=e.propName;this.model.set(n,t)}},{key:"getInputName",value:function(){return this.inputName||(this.inputName=this.el.querySelector(".".concat(this.inputNameCls))),this.inputName}},{key:"updateOpening",value:function(){var t=this.opt.opened||{},e=this.model,n='fa-chevron-down';e.get('open')?(this.$el.addClass('open'),this.getCaret().addClass(n),t[e.cid]=e):(this.$el.removeClass('open'),this.getCaret().removeClass(n),delete t[e.cid])}},{key:"toggleOpening",value:function(t){var e=this.model;t.stopImmediatePropagation(),e.get('components').length&&e.set('open',!e.get('open'))}},{key:"handleSelect",value:function(t){t.stopPropagation();var e=this.em,n=this.config,r=this.model;if(e){e.setSelected(r,{fromLayers:1,event:t});var i=n.scrollCanvas;i&&r.views.forEach((function(t){return t.scrollIntoView(i)}))}}},{key:"handleHover",value:function(t){t.stopPropagation();var e=this.em,n=this.config,r=this.model;e&&n.showHover&&e.setHovered(r,{fromLayers:1})}},{key:"handleHoverOut",value:function(t){t.stopPropagation();var e=this.em,n=this.config;e&&n.showHover&&e.setHovered(0,{fromLayers:1})}},{key:"startSort",value:function(t){t.stopPropagation();var e=this.em,n=this.sorter;t.button&&0!==t.button||n&&(n.onStart=function(t){return e.trigger("".concat(p.OA,":start"),t)},n.onMoveClb=function(t){return e.trigger(p.OA,t)},n.startSort(t.target))}},{key:"freeze",value:function(){this.$el.addClass(this.pfx+'opac50'),this.model.set('open',0)}},{key:"unfreeze",value:function(){this.$el.removeClass(this.pfx+'opac50')}},{key:"updateStatus",value:function(t){d.Z.prototype.updateStatus.apply(this,[{avoidHover:!this.config.highlightHover,noExtHl:1}])}},{key:"isVisible",value:function(){return!b(this.model.getStyle())}},{key:"checkChildren",value:function(){var t=this.model,e=this.clsNoChild,n=this.countChildren(t),r=this.$el.children(".".concat(this.clsTitleC)).children(".".concat(this.clsTitle)),i=this.cnt;i||(i=this.$el.children('[data-count]').get(0),this.cnt=i),r[n?'removeClass':'addClass'](e),i&&(i.innerHTML=n||''),!n&&t.set('open',0)}},{key:"countChildren",value:function(t){var e=0;return t.get('components').each((function(t){var n=this.opt.isCountable,r=this.config.hideTextnode;n&&!n(t,r)||e++}),this),e}},{key:"getCaret",value:function(){if(!this.caret||!this.caret.length){this.pfx;this.caret=this.$el.children(".".concat(this.clsTitleC)).find(".".concat(this.clsCaret))}return this.caret}},{key:"setRoot",value:function(t){t=(0,i.isString)(t)?this.em.getWrapper().find(t)[0]:t;var e=(0,h.getModel)(t);e&&(this.stopListening(),this.model=e,this.initialize(this.opt),this._rendered&&this.render())}},{key:"updateLayerable",value:function(){(this.parentView||this).render()}},{key:"__clearItems",value:function(){var t=this.items;t&&t.remove()}},{key:"remove",value:function(){f.View.prototype.remove.apply(this,arguments),this.__clearItems()}},{key:"render",value:function(){var t=this.model,e=this.config,r=this.pfx,o=this.ppfx,a=this.opt;this.__clearItems();var s=a.isCountable,l=s&&!s(t,e.hideTextnode),c=this.isVisible(),u=this.$el.empty(),f=this.level+1;this.inputName=0,(0,i.isUndefined)(v)&&(v=n(7834).Z),this.items=new v({ItemView:a.ItemView,collection:t.get('components'),config:this.config,sorter:this.sorter,opened:this.opt.opened,parentView:this,parent:t,level:f});var h=this.items.render().$el;return this.config.showWrapper||1!==f?(u.html(this.template(t)),u.find(".".concat(this.clsChildren)).append(h)):u.append(h),t.get('draggable')&&this.config.sortable||u.children(".".concat(this.clsMove)).remove(),!c&&(this.className+=" ".concat(r,"hide")),l&&(this.className+=" ".concat(o,"hidden")),u.attr('class',this.className),this.updateOpening(),this.updateStatus(),this.updateVisibility(),this.__render(),this._rendered=1,this}},{key:"__render",value:function(){var t=this.model,e=this.config,n={component:t,el:this.el};e.onRender.bind(this)(n),this.em.trigger('layer:render',n)}}]),r}(f.View);function k(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function x(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return(n=x(x({},o),e)).stylePrefix=e.pStylePrefix,t=n.em,this},getConfig:function(){return n},onLoad:function(){t&&t.on('component:selected',this.componentChanged),this.componentChanged()},postRender:function(){var t=n.appendTo,e=n.root;(e&&this.setRoot(e),t)&&((0,i.isElement)(t)?t:document.querySelector(t)).appendChild(this.render())},setRoot:function(t){return e&&e.setRoot(t),this},getRoot:function(){return e&&e.model},getAll:function(){return e},componentChanged:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!r.fromLayers){var i=t.get('opened'),o=t.getSelected(),a=n.scrollLayers,s=o&&o.collection?o.collection.parent:null;for(var l in i)i[l].set('open',0);for(;s;)s.set('open',1),i[s.cid]=s,s=s.collection?s.collection.parent:null;if(o&&a){var c=o.viewLayer&&o.viewLayer.el;c&&c.scrollIntoView(a)}}},render:function(){var r=w.extend(n.extend);return e&&e.remove(),(e=new r({ItemView:r,level:0,config:n,opened:n.opened||{},model:t.get('DomComponents').getWrapper()})).render().el},destroy:function(){e&&e.remove(),[t,e,n].forEach((function(t){return{}}))}}}},7834:(t,e,n)=>{"use strict";n.d(e,{Z:()=>f});var r=n(5671),i=n(3144),o=n(9340),a=n(2963),s=n(1120),l=n(2316),c=n(4822);function u(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var f=function(t){(0,o.Z)(n,t);var e=u(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.items=[],this.opt=t;var e=t.config||{};this.level=t.level,this.config=e,this.preview=t.preview,this.ppfx=e.pStylePrefix||'',this.pfx=e.stylePrefix||'',this.parent=t.parent,this.parentView=t.parentView;var n=this.pfx,r=this.ppfx,i=this.parent,o=this.collection;this.listenTo(o,'add',this.addTo),this.listenTo(o,'reset resetNavigator',this.render),this.listenTo(o,'remove',this.removeChildren),this.className="".concat(n,"layers");var a=e.em;if(e.sortable&&!this.opt.sorter){var s=a.get('Utils');this.opt.sorter=new s.Sorter({container:e.sortContainer||this.el,containerSel:".".concat(this.className),itemSel:".".concat(n,"layer"),ignoreViewChildren:1,onEndMove:function(t,e,n){var r=e.getSourceModel();a.setSelected(r,{forceChange:1}),a.trigger("".concat(c.OA,":end"),n)},avoidSelectOnEnd:1,nested:1,ppfx:r,pfx:n})}this.sorter=this.opt.sorter||'',this.$el.data('collection',o),i&&this.$el.data('model',i)}},{key:"removeChildren",value:function(t){var e=t.viewLayer;e&&(e.remove(),t.viewLayer=0)}},{key:"addTo",value:function(t){var e=this.collection.indexOf(t);this.addToCollection(t,null,e)}},{key:"addToCollection",value:function(t,e,n){var r=this.level,i=this.parentView,o=this.opt.ItemView,a=e||null,s=new o({ItemView:o,level:r,model:t,parentView:i,config:this.config,sorter:this.sorter,isCountable:this.isCountable,opened:this.opt.opened}),l=s.render().el;if(a)a.appendChild(l);else if(void 0!==n){var c='before';this.$el.children().length==n&&(n--,c='after'),n<0?this.$el.append(l):this.$el.children().eq(n)[c](l)}else this.$el.append(l);return this.items.push(s),l}},{key:"remove",value:function(){l.View.prototype.remove.apply(this,arguments),this.items.map((function(t){return t.remove()}))}},{key:"isCountable",value:function(t,e){var n=t.get('type'),r=t.get('tagName');return!(('textnode'==n||'br'==r)&&e||!t.get('layerable'))}},{key:"render",value:function(){var t=this,e=document.createDocumentFragment(),n=this.el;return n.innerHTML='',this.collection.each((function(n){return t.addToCollection(n,e)})),n.appendChild(e),n.className=this.className,this}}]),n}(l.View)},9084:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>Z,evAll:()=>C,evPageAdd:()=>E,evPageAddBefore:()=>j,evPageRemove:()=>D,evPageRemoveBefore:()=>R,evPageSelect:()=>P,evPageSelectBefore:()=>_,evPageUpdate:()=>T,evPfx:()=>S});var r=n(2982),i=n(4942),o=n(9050),a=n(3168),s=n(3821),l=n(6409),c=n(5671),u=n(3144),f=n(9340),h=n(2963),d=n(1120),p=n(2316),g=n(8445);function v(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,d.Z)(t);if(e){var i=(0,d.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,h.Z)(this,n)}}var m=function(t){(0,f.Z)(n,t);var e=v(n);function n(){return(0,c.Z)(this,n),e.apply(this,arguments)}return(0,u.Z)(n,[{key:"defaults",value:function(){return{frames:[],_undo:!0}}},{key:"initialize",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.config,i=void 0===r?{}:r,o=i.em,a={};this.em=o,t.frames||(a.component=t.component,a.styles=t.styles,['component','styles'].map((function(t){return e.unset(t)})));var s=t.frames||[a],l=new g.Z(s,i);l.page=this,this.set('frames',l);var c=o&&o.get('UndoManager');c&&c.add(l)}},{key:"onRemove",value:function(){this.get('frames').reset()}},{key:"getFrames",value:function(){return this.get('frames')}},{key:"getId",value:function(){return this.id}},{key:"getName",value:function(){return this.get('name')}},{key:"setName",value:function(t){return this.get({name:t})}},{key:"getAllFrames",value:function(){return this.getFrames().models||[]}},{key:"getMainFrame",value:function(){return this.getFrames().at(0)}},{key:"getMainComponent",value:function(){var t=this.getMainFrame();return t&&t.getComponent()}},{key:"toJSON",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=l.Z.prototype.toJSON.call(this,t),n=(0,o.result)(this,'defaults');return(0,o.forEach)(e,(function(t,n){0===n.indexOf('_')&&delete e[n]})),(0,o.forEach)(n,(function(t,n){e[n]===t&&delete e[n]})),e}}]),n}(l.Z);function y(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function b(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};this.config=e,this.on('reset',this.onReset),this.on('remove',this.onRemove)}},{key:"onReset",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.previousModels||[];r.map((function(t){return e.onRemove(t)}))}},{key:"onRemove",value:function(t){t&&t.onRemove()}},{key:"add",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.config;return p.Collection.prototype.add.call(this,t,b(b({},e),{},{config:n}))}}]),n}(p.Collection);function x(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function O(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};(0,o.bindAll)(this,'_onPageChange');var n=e.em,r=O({},e);this.config=r,this.em=n;var i=new k([],r);this.pages=i,this.all=i;var a=new l.Z({_undo:!0});return this.model=a,i.on('add',(function(t,e,r){return n.trigger(E,t,r)})),i.on('remove',(function(t,e,r){return n.trigger(D,t,r)})),i.on('change',(function(t,e){n.trigger(T,t,t.changedAttributes(),e)})),i.on('reset',(function(e){return e.at(0)&&t.select(e.at(0))})),i.on('all',this.__onChange,this),a.on(A,this._onPageChange),this},__onChange:function(t,e,n,r){var i=r||n;this.em.trigger(C,{event:t,page:e,options:i})},onLoad:function(){var t=this.pages,e={silent:!0};t.add(this.config.pages||[],e);var n=t.length?this.getMain():this.add({type:M},e);this.select(n,e)},_onPageChange:function(t,e,n){var r=this.em,i=r.get('LayerManager'),o=e.getMainComponent();i&&o&&i.setRoot(o),r.trigger(P,e,t.previous('selected')),this.__onChange(A,e,n)},postLoad:function(){var t=this.em,e=this.model,n=t.get('UndoManager');n&&n.add(e),n&&n.add(this.pages)},add:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em;t.id=t.id||this._createId();var i=function(){var r=e.pages.add(t,n);return n.select&&e.select(r),r};return!n.silent&&r.trigger(j,t,i,n),!n.abort&&i()},remove:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em,i=(0,o.isString)(t)?this.get(t):t,a=function(){return i&&e.pages.remove(i,n),i};return!n.silent&&r.trigger(R,i,a,n),!n.abort&&a()},get:function(t){return this.pages.filter((function(e){return e.get('id')===t}))[0]},getMain:function(){var t=this.pages;return t.filter((function(t){return t.get('type')===M}))[0]||t.at(0)},getAll:function(){return(0,r.Z)(this.pages.models)},getAllWrappers:function(){var t=this.getAll();return(0,o.unique)((0,o.flatten)(t.map((function(t){return t.getAllFrames().map((function(t){return t.getComponent()}))}))))},getAllMap:function(){return this.getAll().reduce((function(t,e){return t[e.get('id')]=e,t}),{})},select:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(0,o.isString)(t)?this.get(t):t;return n&&(this.em.trigger(_,n,e),this.model.set('selected',n,e)),this},getSelected:function(){return this.model.get('selected')},destroy:function(){var t=this;this.pages.off().reset(),this.model.stopListening(),this.model.clear({silent:!0}),['selected','config','em','pages','model'].map((function(e){return t[e]=0}))},store:function(){return this.getProjectData()},load:function(t){return this.loadProjectData(t,{all:this.pages,reset:!0})},_createId:function(){var t,e=this.getAll().length+16,n=this.getAllMap();do{t=(0,a.createId)(e)}while(n[t]);return t}})}},3353:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>N});var r='sw-visibility',i='export-template',o='open-sm',a='open-tm',s='open-layers',l='open-blocks',c='fullscreen',u='preview';const f={stylePrefix:'pn-',defaults:[{id:'commands',buttons:[{}]},{id:'options',buttons:[{active:!0,id:r,className:'fa fa-square-o',command:r,context:r,attributes:{title:'View components'}},{id:u,className:'fa fa-eye',command:u,context:u,attributes:{title:'Preview'}},{id:c,className:'fa fa-arrows-alt',command:c,context:c,attributes:{title:'Fullscreen'}},{id:i,className:'fa fa-code',command:i,attributes:{title:'View code'}}]},{id:'views',buttons:[{id:o,className:'fa fa-paint-brush',command:o,active:!0,togglable:0,attributes:{title:'Open Style Manager'}},{id:a,className:'fa fa-cog',command:a,togglable:0,attributes:{title:'Settings'}},{id:s,className:'fa fa-bars',command:s,togglable:0,attributes:{title:'Open Layer Manager'}},{id:l,className:'fa fa-th-large',command:l,togglable:0,attributes:{title:'Open Blocks'}}]}],em:null,delayBtnsShow:300};var h=n(5671),d=n(3144),p=n(9340),g=n(2963),v=n(1120),m=n(6409),y=n(5253);function b(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var w=function(t){(0,p.Z)(n,t);var e=b(n);function n(){return(0,h.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"defaults",value:function(){return{id:'',content:'',visible:!0,buttons:[],attributes:{}}}},{key:"initialize",value:function(t){this.btn=this.get('buttons')||[],this.buttons=new y.Z(this.btn),this.set('buttons',this.buttons)}}]),n}(m.Z),k=n(2316);function x(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var O=function(t){(0,p.Z)(n,t);var e=x(n);function n(){return(0,h.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n)}(k.Collection);O.prototype.model=w;var C=n(4942),S=n(9050);function P(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function _(t){for(var e=1;e2&&void 0!==arguments[2]?arguments[2]:{},r=this.model,i=this.commands,o=this.$el,a=this.activeCls,s=n.fromCollection,l=n.fromListen,c=r.get('context'),u=r.get('options'),f=r.get('command'),h={};f&&(i&&(0,S.isString)(f)?h=i.get(f)||{}:(0,S.isFunction)(f)?h=i.create({run:f}):null!==f&&(0,S.isObject)(f)&&(h=i.create(f)),r.get('active')?(!s&&r.collection.deactivateAll(c,r),r.set('active',!0,{silent:!0}).trigger('checkActive'),!l&&i.runCommand(h,_(_({},u),{},{sender:r})),h.noStop&&r.set('active',!1)):(o.removeClass(a),!l&&i.stopCommand(h,_(_({},u),{},{sender:r,force:1}))))}},{key:"updateDisable",value:function(){var t=this.disableCls,e=this.model.get('disable');this.$el[e?'addClass':'removeClass'](t)}},{key:"checkActive",value:function(){var t=this.model,e=this.$el,n=this.activeCls;t.get('active')?e.addClass(n):e.removeClass(n)}},{key:"clicked",value:function(t){var e=this.model;e.get('bntsVis')||e.get('disable')||!e.get('command')||this.toggleActive()}},{key:"toggleActive",value:function(){var t=this.model,e=this.em,n=t.attributes,r=n.active,i=n.togglable;r&&!i||(t.set('active',!r),r?t.get('runDefaultCommand')&&e.runDefault():t.get('stopDefaultCommand')&&e.stopDefault())}},{key:"render",value:function(){var t=this.model,e=t.get('label'),n=this.$el;return!t.get('el')&&n.empty(),this.updateAttributes(),e&&n.append(e),this.checkActive(),this.updateDisable(),this}}]),n}(k.View);function j(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var D=function(t){(0,p.Z)(n,t);var e=j(n);function n(){return(0,h.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"initialize",value:function(t){this.opt=t||{},this.config=this.opt.config||{},this.pfx=this.config.stylePrefix||'',this.parentM=this.opt.parentM||null,this.listenTo(this.collection,'add',this.addTo),this.listenTo(this.collection,'reset remove',this.render),this.className=this.pfx+'buttons'}},{key:"addTo",value:function(t){this.addToCollection(t)}},{key:"addToCollection",value:function(t,e){var n=e||null,r=new E({el:t.get('el'),model:t,config:this.config,parentM:this.parentM}).render().el;return n?n.appendChild(r):this.$el.append(r),r}},{key:"render",value:function(){var t=document.createDocumentFragment();return this.$el.empty(),this.collection.each((function(e){this.addToCollection(e,t)}),this),this.$el.append(t),this.$el.attr('class',(0,S.result)(this,'className')),this}}]),n}(k.View);function R(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function A(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,v.Z)(t);if(e){var i=(0,v.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,g.Z)(this,n)}}var M=function(t){(0,p.Z)(n,t);var e=A(n);function n(){return(0,h.Z)(this,n),e.apply(this,arguments)}return(0,d.Z)(n,[{key:"initialize",value:function(t){var e=t.config||{},n=this.model;this.config=e,this.pfx=e.stylePrefix||'',this.ppfx=e.pStylePrefix||'',this.buttons=n.get('buttons'),this.className=this.pfx+'panel',this.id=this.pfx+n.get('id'),this.listenTo(n,'change:appendContent',this.appendContent),this.listenTo(n,'change:content',this.updateContent),this.listenTo(n,'change:visible',this.toggleVisible),n.view=this}},{key:"appendContent",value:function(){this.$el.append(this.model.get('appendContent'))}},{key:"updateContent",value:function(){this.$el.html(this.model.get('content'))}},{key:"toggleVisible",value:function(){this.model.get('visible')?this.$el.removeClass("".concat(this.ppfx,"hidden")):this.$el.addClass("".concat(this.ppfx,"hidden"))}},{key:"attributes",value:function(){return this.model.get('attributes')}},{key:"initResize",value:function(){var t=this.config.em,e=t?t.get('Editor'):'',n=this.model.get('resizable');if(e&&n){var r,i,o,a=!0===n?[1,1,1,1]:n,s=a.length,l=0;2==s?(r=a[0],o=a[0],i=a[1],l=a[1]):4==s&&(r=a[0],i=a[1],o=a[2],l=a[3]);var c=e.Utils.Resizer.init(function(t){for(var e=1;e{"use strict";n.d(e,{Z:()=>h});var r=n(5671),i=n(3144),o=n(9340),a=n(2963),s=n(1120),l=n(2316);function c(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var u=function(t){(0,o.Z)(a,t);var e=c(a);function a(){return(0,r.Z)(this,a),e.apply(this,arguments)}return(0,i.Z)(a,[{key:"defaults",value:function(){return{id:'',label:'',tagName:'span',className:'',command:'',context:'',buttons:[],attributes:{},options:{},active:!1,dragDrop:!1,togglable:!0,runDefaultCommand:!0,stopDefaultCommand:!1,disable:!1}}},{key:"initialize",value:function(t){if(this.get('buttons').length){var e=n(5253).Z;this.set('buttons',new e(this.get('buttons')))}}}]),a}(n(6409).Z);function f(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var h=function(t){(0,o.Z)(n,t);var e=f(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"deactivateAllExceptOne",value:function(t,e){this.forEach((function(n,r){n!==t&&(n.set('active',!1),e&&n.get('buttons').length&&n.get('buttons').deactivateAllExceptOne(t,e))}))}},{key:"deactivateAll",value:function(t,e){var n=t||'';this.forEach((function(t){t.get('context')==n&&t!==e&&t.set('active',!1,{fromCollection:1})}))}},{key:"disableAllButtons",value:function(t){var e=t||'';this.forEach((function(t,n){t.get('context')==e&&t.set('disable',!0)}))}},{key:"disableAllButtonsExceptOne",value:function(t,e){this.forEach((function(n,r){n!==t&&(n.set('disable',!0),e&&n.get('buttons').length&&n.get('buttons').disableAllButtonsExceptOne(t,e))}))}}]),n}(l.Collection);h.prototype.model=u},3030:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>w});var r=n(4942);const i={textTags:['br','b','i','u','a','ul','ol'],parserCss:null,parserHtml:null,optionsHtml:{htmlType:null,allowScripts:!1,allowUnsafeAttr:!1}};var o=n(9050),a={4:'media',5:'font-face',6:'page',7:'keyframes',11:'counter-style',12:'supports',13:'document',14:'font-feature-values',15:'viewport'},s=(0,o.keys)(a),l=['5','6','11','15'],c=['font-face','page','counter-style','viewport'],u=function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',e=[],n=[],r=t.split(','),i=0,o=r.length;i1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={},i=t.length,o=t[i-1],a=o?o.split(/:(.+)/):[],s=a[1],l=n.atRule,u=n.selectorsAdd,f=n.mediaText,h=c.indexOf(l)>=0;return h&&(r.singleAtRule=1),l&&(r.atRuleType=l),u&&(r.selectorsAdd=u),f&&(r.mediaText=f),s&&(t[i-1]=a[0],r.state=s,a.splice(a.length-1,1)),r.selectors=t,r.style=e,r},p=function t(e){for(var n=[],r=e.cssRules||[],i=0,o=r.length;i=0;if(b)g=1,v=a[p],m=h(c);else if(s.indexOf(p)>=0){var w=t(c);m=h(c);for(var k=0,x=w.length;k0&&void 0!==arguments[0]?arguments[0]:{};return{parse:function(e){var n=this,r=[],i=t.parserCss,o=t.em,a=o&&o.get&&o.get('Editor');return(i?i(e,a):g(e)).forEach((function(t){return r=r.concat(n.checkNode(t))})),o&&o.trigger('parse:css',{input:e,output:r}),r},checkNode:function(t){var e=t,n=e.selectors,r=e.style;if((0,o.isString)(n)){var i=[],a=u(n),s=a.result,l=a.add.join(', '),c={atRule:t.atRule,mediaText:t.params};if(s.length?s.forEach((function(t){i.push(d(t,r,c))})):i.push(d([],r,c)),l)i[i.length-1].selectorsAdd=l;t=i}return t}}};var m=n(4119);function y(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function b(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return(n=b(b({},i),r)).Parser=this,t=new m.Z(n),e=new v(n),this.em=n.em,this.parserCss=e,this.parserHtml=t,this},getConfig:function(){return n},parseHtml:function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=this.em,o=this.compTypes;return t.compTypes=i?i.get('DomComponents').getTypes():o,t.parse(n,e,r)},parseCss:function(t){return e.parse(t)},destroy:function(){var r=this;[n,t,e].forEach((function(t){return{}})),['em','parserCss','parserHtml'].forEach((function(t){return r[t]={}}))}}}},4119:(t,e,n)=>{"use strict";n.d(e,{Z:()=>f});var r=n(4942),i=n(1002),o=n(9050),a='text/html',s=a;const l=function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=new DOMParser,i=n.htmlType||s,l=i===a,c=l?t:"
".concat(t,"
"),u=r.parseFromString(c,i);if(l){var f=u.head,h=u.body,d=f.querySelectorAll('script');(0,o.each)(d,(function(t){return h.appendChild(t)}));var p=[];(0,o.each)(f.children,(function(t){return p.push(t)})),(0,o.each)(p,(function(t,e){return h.insertBefore(t,h.children[e])})),e=h}else e=u.firstChild;return e};function c(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function u(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},r={},i={};return(0,o.each)(e,(function(e,a){if(0===a.indexOf(t.modelAttrStart)){var s=a.replace(n,''),l=e.length,c=e&&(0,o.isString)(e),u=c&&e.substr(0,1),f=c&&e.substr(l-1);e='false'!==(e='true'===e||e)&&e;try{e='{'==u&&'}'==f||'['==u&&']'==f?JSON.parse(e):e}catch(t){}r[s]=e}else i[a]=e})),{props:r,attrs:i}},parseStyle:function(t){for(var e={},n=t.split(';'),r=0,i=n.length;r1&&void 0!==arguments[1]?arguments[1]:{},a=[],s=r.childNodes,l=0,c=s.length;l'!=="".concat(f.outerHTML).slice(-2)||(m.void=!0);var A=m.components;if(!m.type&&A){for(var M=1,Z=0,L=0;L2&&void 0!==arguments[2]?arguments[2]:{},c=e.em,f=c&&c.get('Config')||{},h={html:null,css:null},d=u(u({},t),s),p=u(u({},t.optionsHtml),{},{htmlType:(null===(a=t.optionsHtml)||void 0===a?void 0:a.htmlType)||t.htmlType},s),g=(0,o.isFunction)(d.parserHtml)?d.parserHtml(n,p):l(n,p),v=g.querySelectorAll('script'),m=v.length,y=(0,o.isUndefined)(f.allowScripts)?p.allowScripts:f.allowScripts;if(!y)for(;m--;)v[m].parentNode.removeChild(v[m]);if(p.allowUnsafeAttr||this.__clearUnsafeAttr(g),i){for(var b=g.querySelectorAll('style'),w=b.length,k='';w--;)k=b[w].innerHTML+k,b[w].parentNode.removeChild(b[w]);k&&(h.css=i.parse(k))}c&&c.trigger("".concat(r,":root"),{input:n,root:g});var x=this.parseNode(g,d),O=1!==x.length||e.returnArray?x:x[0];return h.html=O,c&&c.trigger(r,{input:n,output:h}),h},__clearUnsafeAttr:function(t){var e=this,n=t.attributes||[],r=t.childNodes||[],i=[];(0,o.each)(n,(function(t){var e=t.nodeName||'';0===e.indexOf('on')&&i.push(e)})),i.map((function(e){return t.removeAttribute(e)})),(0,o.each)(r,(function(t){return e.__clearUnsafeAttr(t)}))}}}},9697:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>S});var r=n(5861),i=n(2982),o=n(4942),a=n(7757),s=n.n(a),l=n(3168),c=n(5671),u=n(3144),f=n(9050);function h(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function d(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:'A',n=t.selection(),r=n.anchorNode,i=n.focusNode,o=null==r?void 0:r.parentNode,a=null==i?void 0:i.parentNode;return(null==o?void 0:o.nodeName)==e||(null==a?void 0:a.nodeName)==e},y='data-selectme',b={bold:{name:'bold',icon:'B',attributes:{title:'Bold'},result:function(t){return t.exec('bold')}},italic:{name:'italic',icon:'I',attributes:{title:'Italic'},result:function(t){return t.exec('italic')}},underline:{name:'underline',icon:'U',attributes:{title:'Underline'},result:function(t){return t.exec('underline')}},strikethrough:{name:'strikethrough',icon:'S',attributes:{title:'Strike-through'},result:function(t){return t.exec('strikeThrough')}},link:{icon:"\n \n ",name:'link',attributes:{style:'font-size:1.4rem;padding:0 4px 2px;',title:'Link'},state:function(t){return t&&t.selection()&&m(t)?p:g},result:function(t){m(t)?t.exec('unlink'):t.insertHTML("").concat(t.selection(),""),{select:!0})}},wrap:{icon:"\n \n ",attributes:{title:'Wrap for style'},state:function(t){return null!=t&&t.selection()&&m(t,'SPAN')?v:g},result:function(t){!m(t,'SPAN')&&t.insertHTML("").concat(t.selection(),""),{select:!0})}}},w=function(){function t(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,c.Z)(this,t);var r=n.el,i=n.em;if(this.em=i,r._rte)return r._rte;r._rte=this,this.setEl(r),this.updateActiveActions=this.updateActiveActions.bind(this),this.__onKeydown=this.__onKeydown.bind(this),this.__onPaste=this.__onPaste.bind(this);var o=(n.actions||[]).map((function(t){var e=t;return'string'==typeof t?e=d({},b[t]):b[t.name]&&(e=d(d({},b[t.name]),t)),e})),a=o.length?o:Object.keys(b).map((function(t){return b[t]}));n.classes=d(d({},{actionbar:'actionbar',button:'action',active:'active',disabled:'disabled',inactive:'inactive'}),n.classes);var s=n.classes,l=n.actionbar;if(this.actionbar=l,this.settings=n,this.classes=s,this.actions=a,!l){var u=n.actionbarContainer;(l=document.createElement('div')).className=s.actionbar,u.appendChild(l),this.actionbar=l,a.forEach((function(t){return e.addAction(t)}))}return n.styleWithCSS&&this.exec('styleWithCSS'),this}return(0,u.Z)(t,[{key:"destroy",value:function(){this.el=0,this.doc=0,this.actionbar=0,this.settings={},this.classes={},this.actions=[]}},{key:"setEl",value:function(t){this.el=t,this.doc=t.ownerDocument}},{key:"updateActiveActions",value:function(){var t=this;this.getActions().forEach((function(e){var n=e.btn,r=e.update,i=d({},t.classes),o=i.active,a=i.inactive,s=i.disabled,l=e.state,c=e.name,u=t.doc;if(n.className=n.className.replace(o,'').trim(),n.className=n.className.replace(a,'').trim(),n.className=n.className.replace(s,'').trim(),l)switch(l(t,u)){case p:n.className+=" ".concat(o);break;case g:n.className+=" ".concat(a);break;case v:n.className+=" ".concat(s)}else u.queryCommandSupported(c)&&u.queryCommandState(c)&&(n.className+=" ".concat(o));r&&r(t,e)}))}},{key:"enable",value:function(t){return this.enabled?this:this.__toggleEffects(!0,t)}},{key:"disable",value:function(){return this.__toggleEffects(!1)}},{key:"__toggleEffects",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t?l.on:l.off,r=this.el,i=this.doc;if(this.actionbarEl().style.display=t?'':'none',r.contentEditable=!!t,n(r,'mouseup keyup',this.updateActiveActions),n(i,'keydown',this.__onKeydown),n(i,'paste',this.__onPaste),this.enabled=t,t){var o=e.event;if(this.syncActions(),this.updateActiveActions(),o){var a=null;if(i.caretRangeFromPoint){var s=(0,l.getPointerEvent)(o);a=i.caretRangeFromPoint(s.clientX,s.clientY)}else o.rangeParent&&(a=i.createRange()).setStart(o.rangeParent,o.rangeOffset);var c=i.getSelection();c.removeAllRanges(),a&&c.addRange(a)}r.focus()}return this}},{key:"__onKeydown",value:function(t){'Enter'===t.key&&(this.doc.execCommand('insertLineBreak'),t.preventDefault())}},{key:"__onPaste",value:function(t){var e=t.clipboardData||window.clipboardData,n=e.getData('text'),r=e.getData('text/html');if(n&&!r){t.preventDefault();var i=n.replace(/(?:\r\n|\r|\n)/g,'
');this.doc.execCommand('insertHTML',!1,i)}}},{key:"syncActions",value:function(){var t=this;this.getActions().forEach((function(e){if(t.actionbar&&(!e.state||e.state&&e.state(t,t.doc)>=0)){var n=e.event||'click';e.btn["on".concat(n)]=function(n){e.result(t,e),t.updateActiveActions()}}}))}},{key:"addAction",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.sync,r=document.createElement('span'),i=t.icon,o=t.attributes||{};for(var a in r.className=this.classes.button,t.btn=r,o)r.setAttribute(a,o[a]);'string'==typeof i?r.innerHTML=i:r.appendChild(i),this.actionbarEl().appendChild(r),n&&(this.actions.push(t),this.syncActions())}},{key:"getActions",value:function(){return this.actions}},{key:"selection",value:function(){return this.doc.getSelection()}},{key:"exec",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.doc.execCommand(t,!1,e)}},{key:"actionbarEl",value:function(){return this.actionbar}},{key:"insertHTML",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.select,r=this.em,i=this.doc,o=this.el,a=i.getSelection();if(a&&a.rangeCount){var s=(0,l.getModel)(o),c=i.createElement('div'),u=a.getRangeAt(0);u.deleteContents(),(0,f.isString)(t)?c.innerHTML=t:t&&c.appendChild(t),Array.prototype.slice.call(c.childNodes).forEach((function(t){u.insertNode(t)})),a.removeAllRanges(),a.addRange(u),o.focus(),n&&s&&(s.once('rte:disable',(function(){var t=s.find("[".concat(y,"]"))[0];t&&(r.setSelected(t),t.removeAttributes(y))})),s.trigger('disable'))}}}]),t}();const k={stylePrefix:'rte-',adjustToolbar:1,actions:['bold','italic','underline','strikethrough','link','wrap']};function x(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function O(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},n=O(O({},k),e),r=n.pStylePrefix;return r&&(n.stylePrefix=r+n.stylePrefix),this.config=n,this.pfx=n.stylePrefix,this.em=n.em,this.actions=n.actions||[],(0,l.hasWin)()?((t=document.createElement('div')).className="".concat(r,"rte-toolbar ").concat(r,"one-bg"),this.initRte(document.createElement('div')),(0,l.on)(t,'mousedown',(function(t){return t.stopPropagation()})),this):this},destroy:function(){var e,n,r,i=this;null===(e=this.globalRte)||void 0===e||e.destroy(),null===(n=this.customRte)||void 0===n||null===(r=n.destroy)||void 0===r||r.call(n),t=0,['actionbar','actions','em','config','globalRte','lastEl'].map((function(t){delete i[t]}))},postRender:function(n){var r=n.model.get('Canvas');t.style.pointerEvents='all',e(),r.getToolsEl().appendChild(t)},initRte:function(e){var n=this.globalRte,r=this.em,o=this.pfx,a=this.actionbar,s=this.config,l=t,c=this.actions||(0,i.Z)(s.actions),u={actionbar:"".concat(o,"actionbar"),button:"".concat(o,"action"),active:"".concat(o,"active"),inactive:"".concat(o,"inactive"),disabled:"".concat(o,"disabled")};return n?(n.em=r,n.setEl(e)):(n=new w({em:r,el:e,classes:u,actions:c,actionbar:a,actionbarContainer:l}),this.globalRte=n),n.actionbar&&(this.actionbar=n.actionbar),n.actions&&(this.actions=n.actions),n},add:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n.name=t,null===(e=this.globalRte)||void 0===e||e.addAction(n,{sync:1})},get:function(t){var e,n;return null===(e=this.globalRte)||void 0===e||e.getActions().forEach((function(e){e.name==t&&(n=e)})),n},getAll:function(){var t;return null===(t=this.globalRte)||void 0===t?void 0:t.getActions()},remove:function(t){var e=this.getAll(),n=this.get(t);if(n){var r=n.btn,i=e.indexOf(n);r.parentNode.removeChild(r),e.splice(i,1)}return n},getToolbarEl:function(){return t},updatePosition:function(){var e=this.em.get('Canvas'),n=t.style,r=e.getTargetToElementFixed(this.lastEl,t,{event:'rteToolbarPosUpdate',left:0});n.top=(r.top||0)+"px",n.left=(r.left||0)+"px"},enable:function(e,n,i){var o=this;return(0,r.Z)(s().mark((function r(){var a,l,c,u;return s().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return o.lastEl=e.el,a=o.customRte,l=o.em,c=e.getChildrenContainer(),t.style.display='',r.next=6,a?a.enable(c,n):o.initRte(c).enable(i);case 6:return u=r.sent,l&&(setTimeout(o.updatePosition.bind(o),0),l.off(C,o.updatePosition,o),l.on(C,o.updatePosition,o),l.trigger('rte:enable',e,u)),r.abrupt("return",u);case 9:case"end":return r.stop()}}),r)})))()},disable:function(t,n){var r=this.em,i=this.customRte,o=t.getChildrenContainer();i?i.disable(o,n):n&&n.disable(),e(),r&&(r.off(C,this.updatePosition,this),r.trigger('rte:disable',t,n))}}}},8835:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>z,evAdd:()=>N,evAll:()=>Z,evCustom:()=>V,evPfx:()=>L,evRemove:()=>F,evRemoveBefore:()=>B,evState:()=>H,evUpdate:()=>I});var r=n(2982),i=n(4942),o=n(9050),a=n(3168),s=n(3821),l=n(2316),c=n(6409);const u={stylePrefix:'clm-',appendTo:'',selectors:[],states:[{name:'hover'},{name:'active'},{name:'nth-of-type(2n)'}],escapeName:0,selectedName:0,iconAdd:'',iconSync:'',iconTagOn:'',iconTagOff:'',iconTagRemove:'',render:0,componentFirst:0,custom:!1};var f=n(9985),h=n(2030),d=n(5671),p=n(3144),g=n(9340),v=n(2963),m=n(1120);function y(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,m.Z)(t);if(e){var i=(0,m.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,v.Z)(this,n)}}var b=function(t){(0,g.Z)(n,t);var e=y(n);function n(){return(0,d.Z)(this,n),e.apply(this,arguments)}return(0,p.Z)(n,[{key:"defaults",value:function(){return{name:'',label:''}}},{key:"getName",value:function(){return this.get('name')}},{key:"getLabel",value:function(){return this.get('label')||this.getName()}}]),n}(c.Z);b.prototype.idAttribute='name';var w=n(168);function k(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,m.Z)(t);if(e){var i=(0,m.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,v.Z)(this,n)}}var x,O,C,S,P='contentEditable',_=function(t){(0,g.Z)(n,t);var e=k(n);function n(){return(0,d.Z)(this,n),e.apply(this,arguments)}return(0,p.Z)(n,[{key:"template",value:function(){var t=this.pfx,e=this.model,n=this.config,r=e.get('label')||'';return"\n \n ").concat(r,"\n \n ").concat(n.iconTagRemove,"\n \n ")}},{key:"events",value:function(){return{'click [data-tag-remove]':'removeTag','click [data-tag-status]':'changeStatus','dblclick [data-tag-name]':'startEditTag','focusout [data-tag-name]':'endEditTag'}}},{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.config||{};this.config=e,this.module=t.module,this.coll=t.coll||null,this.pfx=e.stylePrefix||'',this.ppfx=e.pStylePrefix||'',this.em=e.em,this.listenTo(this.model,'change:active',this.updateStatus)}},{key:"getInputEl",value:function(){return this.inputEl||(this.inputEl=this.el.querySelector('[data-tag-name]')),this.inputEl}},{key:"startEditTag",value:function(){var t=this.em,e=this.getInputEl();e[P]=!0,e.focus(),t&&t.setEditing(1)}},{key:"endEditTag",value:function(){var t=this.model,e=this.getInputEl(),n=e.textContent,r=this.em,i=r&&r.get('SelectorManager');if(e[P]=!1,r&&r.setEditing(0),i){var o=i.escapeName(n);i.get(o)?e.innerText=t.get('label'):t.set({name:o,label:n})}}},{key:"changeStatus",value:function(){var t=this.model;t.set('active',!t.get('active'))}},{key:"removeTag",value:function(){this.module.removeSelected(this.model)}},{key:"updateStatus",value:function(){var t=this.model,e=this.$el,n=this.config,r=n.iconTagOn,i=n.iconTagOff,o=e.find('[data-tag-status]');t.get('active')?(o.html(r),e.removeClass('opac50')):(o.html(i),e.addClass('opac50'))}},{key:"render",value:function(){var t=this.pfx,e=this.ppfx;return this.$el.html(this.template()),this.$el.attr('class',"".concat(t,"tag ").concat(e,"three-bg")),this.updateStatus(),this}}]),n}(l.View),T=n(8595);function E(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,m.Z)(t);if(e){var i=(0,m.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,v.Z)(this,n)}}var j=function(t){(0,g.Z)(n,t);var e=E(n);function n(){return(0,d.Z)(this,n),e.apply(this,arguments)}return(0,p.Z)(n,[{key:"template",value:function(t){var e=t.labelInfo,n=t.labelHead,r=t.iconSync,i=t.iconAdd,o=t.pfx,a=t.ppfx;return"\n
\n
").concat(n,"
\n
\n \n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n ").concat(i,"\n \n \n ").concat(r,"\n \n
\n
\n
").concat(e,":
\n
\n
")}},{key:"events",value:function(){return{'change [data-states]':'stateChanged','click [data-add]':'startNewTag','focusout [data-input]':'endNewTag','keyup [data-input]':'onInputKeyUp','click [data-sync-style]':'syncStyle'}}},{key:"initialize",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.config=e.config||{},this.pfx=this.config.stylePrefix||'',this.ppfx=this.config.pStylePrefix||'',this.className=this.pfx+'tags',this.stateInputId=this.pfx+'states',this.stateInputC=this.pfx+'input-c',this.states=this.config.states||[];var n=this.config.em,r=this.collection;this.target=this.config.em;var i=e.module;this.module=i,this.em=n,this.componentChanged=(0,o.debounce)(this.componentChanged.bind(this)),this.checkSync=(0,o.debounce)(this.checkSync.bind(this));var a='component:toggled component:update:classes',s='component:update:classes change:state';this.listenTo(n,a,this.componentChanged),this.listenTo(n,'styleManager:update',this.componentChanged),this.listenTo(n,s,this.__handleStateChange),this.listenTo(n,'styleable:change change:device',this.checkSync),this.listenTo(r,'add',this.addNew),this.listenTo(r,'reset',this.renderClasses),this.listenTo(r,'remove',this.tagRemoved),this.listenTo(i.getAll(),i.events.state,(0,o.debounce)((function(){return t.renderStates()}))),this.delegateEvents()}},{key:"syncStyle",value:function(){var t,e=this.em,n=this.getTarget(),r=e.get('CssComposer'),i=this.getCommonSelectors({opts:{noDisabled:1}}),o=e.get('state'),a=e.getCurrentMedia(),s=[],l=r.get(i,o,a)||r.add(i,o,a);this.getTargets().forEach((function(e){var n=r.getIdRule(e.getId(),{state:o,mediaText:a});t=n.getStyle(),n.setStyle({}),s.push(n)})),t&&l.addStyle(t),e.trigger('component:toggled'),e.trigger('component:sync-style',{component:n,selectors:i,mediaText:a,rule:l,ruleComponents:s,state:o})}},{key:"tagRemoved",value:function(t){this.updateStateVis()}},{key:"addNew",value:function(t){this.addToClasses(t)}},{key:"startNewTag",value:function(){this.$addBtn.css({display:'none'}),this.$input.show().focus()}},{key:"endNewTag",value:function(){this.$addBtn.css({display:''}),this.$input.hide().val('')}},{key:"onInputKeyUp",value:function(t){13===t.keyCode?(t.preventDefault(),this.addNewTag(this.$input.val())):27===t.keyCode&&this.endNewTag()}},{key:"checkStates",value:function(){var t=this.em.getState(),e=this.getStates();e&&e.val(t)}},{key:"componentChanged",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.targets;this.updateSelection(e)}},{key:"updateSelection",value:function(t){var e=t||this.getTargets(),n=[];return(e=(0,o.isArray)(e)?e:[e])&&e.length&&(n=this.getCommonSelectors({targets:e}),this.checkSync({validSelectors:n})),this.collection.reset(n),this.updateStateVis(e),this.module.__trgCustom(),n}},{key:"getCommonSelectors",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.targets,n=t.opts,r=void 0===n?{}:n,i=e||this.getTargets();return this.module.__getCommonSelectors(i,r)}},{key:"_commonSelectors",value:function(){var t;return(t=this.module).__common.apply(t,arguments)}},{key:"checkSync",value:function(){var t,e=this.$btnSyncEl,n=this.config,r=this.collection,i=this.getTarget();if(i&&n.componentFirst&&r.length){var a=i.getStyle();t=!(0,o.isEmpty)(a)}e&&e[t?'show':'hide']()}},{key:"getTarget",value:function(){return this.target.getSelected()}},{key:"getTargets",value:function(){return this.target.getSelectedAll()}},{key:"updateStateVis",value:function(t){var e=this.em,n=e&&e.getConfig('avoidInlineStyle'),r=this.collection.length||n?'':'none';this.getStatesC().css('display',r),this.updateSelector(t)}},{key:"__handleStateChange",value:function(){this.updateSelector(this.getTargets())}},{key:"updateSelector",value:function(t){var e=this,n=this.el.querySelector('[data-selected]'),r=[],i=t||this.getTargets();(i=(0,o.isArray)(i)?i:[i]).forEach((function(t){return r.push(e.__getName(t))})),n&&(n.innerHTML=r.join(', ')),this.checkStates()}},{key:"__getName",value:function(t){var e,n=this.pfx,r=this.config,i=this.em,a=r.selectedName,s=r.componentFirst;if((0,o.isString)(t))e=(0,T.Z)(x||(x=(0,w.Z)(["",""])),n,t);else{var l=t&&t.get&&t.getSelectors();if(!l)return;var c=l.getStyleable(),u=i.get('state'),f=t.getId?(0,T.Z)(O||(O=(0,w.Z)(["","\n #",""])),n,t.getName(),n,t.getId()):'';e=(e=this.collection.getFullString(c))?(0,T.Z)(C||(C=(0,w.Z)(["",""])),n,e):t.get('selectorsAdd')||f,e=s&&f?f:e,e+=u?(0,T.Z)(S||(S=(0,w.Z)([":",""])),n,u):'',e=a?a({result:e,state:u,target:t}):e}return e&&"").concat(e,"")}},{key:"stateChanged",value:function(t){var e=this.em,n=t.target.value;e.set('state',n)}},{key:"addNewTag",value:function(t){var e=t.trim();e&&(this.module.addSelected({label:e}),this.endNewTag())}},{key:"addToClasses",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=e,r=this.getClasses(),i=new _({model:t,config:this.config,coll:this.collection,module:this.module}).render().el;return n?n.appendChild(i):r.append(i),i}},{key:"renderClasses",value:function(){var t=this,e=document.createDocumentFragment(),n=this.getClasses();n.empty(),this.collection.each((function(n){return t.addToClasses(n,e)})),n.append(e)}},{key:"getClasses",value:function(){return this.$el.find('[data-selectors]')}},{key:"getStates",value:function(){if(!this.$states){var t=this.$el.find('[data-states]');this.$states=t[0]&&t}return this.$states}},{key:"getStatesC",value:function(){return this.$statesC||(this.$statesC=this.$el.find('#'+this.stateInputC)),this.$statesC}},{key:"renderStates",value:function(){var t=this.module,e=this.em,n=e.t('selectorManager.emptyState'),r=t.getStates().map((function(t){var n=e.t("selectorManager.states.".concat(t.id))||t.getLabel()||t.id;return"")})).join(''),i=this.getStates();i&&i.html("").concat(r)),this.checkStates()}},{key:"render",value:function(){var t=this.em,e=this.pfx,n=this.ppfx,r=this.config,i=this.$el,o=this.el,a=r.render,s={iconSync:r.iconSync,iconAdd:r.iconAdd,labelHead:t.t('selectorManager.label'),labelInfo:t.t('selectorManager.selected'),ppfx:n,pfx:e,el:o};i.html(this.template(s));var l=a&&a(s);return l&&l!==o&&i.empty().append(l),this.$input=i.find('[data-input]'),this.$addBtn=i.find('[data-add]'),this.$classes=i.find('#'+e+'tags-c'),this.$btnSyncEl=i.find('[data-sync-style]'),this.$input.hide(),this.renderStates(),this.renderClasses(),i.attr('class',"".concat(this.className," ").concat(n,"one-bg ").concat(n,"two-color")),this}}]),n}(l.View);function D(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function R(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.__initConfig(u,e);var n=this.getConfig(),r=n.em,i=n.pStylePrefix;i&&(n.stylePrefix=i+n.stylePrefix),this.all=new h.Z(n.selectors),this.selected=new h.Z([],{em:r,config:n}),this.states=new l.Collection(n.states,{model:b}),this.model=new c.Z({cFirst:n.componentFirst,_undo:!0}),this.__initListen({collections:[this.states,this.selected],propagate:[{entity:this.states,event:this.events.state}]}),r.on('change:state',(function(t,e){return r.trigger(H,e)})),this.model.on('change:cFirst',(function(t,e){return r.trigger('selector:type',e)}));var o='component:toggled component:update:classes change:device styleManager:update selector:state selector:type';return this.model.listenTo(r,o,(function(){return t.__update()})),this},__update:(0,o.debounce)((function(){this.__trgCustom()})),__trgCustom:function(t){this.em.trigger(this.events.custom,this.__customData(t))},__customData:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.container;return{states:this.getStates(),selected:this.getSelected(),container:e}},postRender:function(){this.__appendTo(),this.__trgCustom()},select:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Array.isArray(t)?t:[t],r=this.em.get('StyleManager').select(n,e),i=this.selectorTags,o=r.filter((function(t){return t})).map((function(t){return(0,a.isComponent)(t)||(0,a.isRule)(t)&&!t.get('selectorsAdd')?t:t.getSelectorsString()}));return i&&i.componentChanged({targets:o}),this},addSelector:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=R({},e);(0,o.isObject)(t)?r=t:r.name=t,A(r.name)?(r.name=r.name.substr(1),r.type=f.Z.TYPE_ID):M(r.name)&&(r.name=r.name.substr(1)),r.label&&!r.name&&(r.name=this.escapeName(r.label));var i=r.name,a=this.getConfig(),s=this.getAll(),l=i?this.get(i,r.type):s.where(r)[0];return l||s.add(r,R(R({},n),{},{config:a}))},getSelector:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:f.Z.TYPE_CLASS;return A(t)?(t=t.substr(1),e=f.Z.TYPE_ID):M(t)&&(t=t.substr(1)),this.getAll().where({name:t,type:e})[0]},add:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(0,o.isString)(t)?{}:n;return(0,o.isArray)(t)?t.map((function(t){return e.addSelector(t,n,r)})):this.addSelector(t,n,r)},addClass:function(t){var e=this,n=[];return(0,o.isString)(t)&&(t=t.trim().split(' ')),t.forEach((function(t){return n.push(e.addSelector(t))})),n},get:function(t,e){var n=this;if((0,o.isArray)(t)){var r=[];return t.map((function(t){return n.getSelector(t)})).filter((function(t){return t})).forEach((function(t){return r.indexOf(t)<0&&r.push(t)})),r}return this.getSelector(t,e)||null},remove:function(t,e){return this.__remove(t,e)},setState:function(t){return this.em.setState(t),this},getState:function(){return this.em.getState()},getStates:function(){return(0,r.Z)(this.states.models)},setStates:function(t,e){return this.states.reset(t,e)},getSelected:function(){return this.__getCommon()},addSelected:function(t){var e=this.add(t);this.em.getSelectedAll().forEach((function(t){t.getSelectors().add(e)}))},removeSelected:function(t){this.em.getSelectedAll().forEach((function(e){!t.get('protected')&&e&&e.getSelectors().remove(t)}))},getSelectedTargets:function(){return this.em.get('StyleManager').getSelectedAll()},setComponentFirst:function(t){this.getConfig().componentFirst=t,this.model.set({cFirst:t})},getComponentFirst:function(){return this.getConfig().componentFirst},escapeName:function(t){var e=this.getConfig().escapeName;return e?e(t):f.Z.escapeName(t)},render:function(t){this.em;var e=this.selectorTags,n=this.getConfig(),r=e&&e.el;return this.selected.reset(t),this.selectorTags=new j({el:r,collection:this.selected,module:this,config:n}),this.selectorTags.render().el},destroy:function(){var t=this.selectorTags;this.model.stopListening(),this.__destroy(),t&&t.remove(),this.selectorTags={}},__getCommon:function(){return this.__getCommonSelectors(this.em.getSelectedAll())},__getCommonSelectors:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.map((function(t){return t.getSelectors&&t.getSelectors().getValid(e)})).filter(Boolean);return this.__common.apply(this,(0,r.Z)(n))},__common:function(){for(var t=this,e=arguments.length,n=new Array(e),r=0;r=0})):n.slice(1).reduce((function(e,n){return t.__common(e,n)}),n[0]):[]}})}},9985:(t,e,n)=>{"use strict";n.d(e,{Z:()=>f});var r=n(5671),i=n(3144),o=n(9340),a=n(2963),s=n(1120),l=n(9050),c=n(6409);function u(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var f=function(t){(0,o.Z)(n,t);var e=u(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"defaults",value:function(){return{name:'',label:'',type:1,active:!0,private:!1,protected:!1,_undo:!0}}},{key:"initialize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.config,i=void 0===r?{}:r,o=this.get('name'),a=this.get('label');o?a||this.set('label',o):this.set('name',a);var s=this.get('name'),l=i.escapeName,c=l?l(s):n.escapeName(s);this.set('name',c),this.em=i.em}},{key:"isId",value:function(){return 2===this.get('type')}},{key:"isClass",value:function(){return 1===this.get('type')}},{key:"getFullName",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.escape,n=this.get('name'),r='';switch(this.get('type')){case 1:r='.';break;case 2:r='#'}return r+(e?e(n):n)}},{key:"toString",value:function(){return this.getFullName()}},{key:"getLabel",value:function(){return this.get('label')}},{key:"setLabel",value:function(t){return this.set('label',t)}},{key:"getActive",value:function(){return this.get('active')}},{key:"setActive",value:function(t){return this.set('active',t)}},{key:"toJSON",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.em,n=c.Z.prototype.toJSON.call(this,[t]),r=(0,l.result)(this,'defaults');if(e&&e.getConfig('avoidDefaults')){(0,l.forEach)(r,(function(t,e){n[e]===t&&delete n[e]})),n.label===n.name&&delete n.label;var i=(0,l.keys)(n).length;1===i&&n.name&&(n=n.name),2===i&&n.name&&n.type&&(n=this.getFullName())}return n}}]),n}(c.Z);f.prototype.idAttribute='name',f.TYPE_CLASS=1,f.TYPE_ID=2,f.escapeName=function(t){return"".concat(t).trim().replace(/([^a-z0-9\w-\:]+)/gi,'-')}},2030:(t,e,n)=>{"use strict";n.d(e,{Z:()=>d});var r=n(5671),i=n(3144),o=n(9340),a=n(2963),s=n(1120),l=n(9050),c=n(2316),u=n(9985);function f(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,s.Z)(t);if(e){var i=(0,s.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,a.Z)(this,n)}}var h=function t(e,n){return e.reduce((function(r,i,o){return r.concat(t(e.slice(o+1),"".concat(n).concat(i)))}),[n])},d=function(t){(0,o.Z)(n,t);var e=f(n);function n(){return(0,r.Z)(this,n),e.apply(this,arguments)}return(0,i.Z)(n,[{key:"modelId",value:function(t){return"".concat(t.name,"_").concat(t.type||u.Z.TYPE_CLASS)}},{key:"getStyleable",value:function(){return(0,l.filter)(this.models,(function(t){return t.get('active')&&!t.get('private')}))}},{key:"getValid",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.noDisabled;return(0,l.filter)(this.models,(function(t){return!t.get('private')})).filter((function(t){return e?t.get('active'):1}))}},{key:"getFullString",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[],r=t||this;return r.forEach((function(t){return n.push(t.getFullName(e))})),n.join('').trim()}},{key:"getFullName",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.combination,n=t.array,r=[],i=this.map((function(e){return e.getFullName(t)})).sort();return e?i.forEach((function(t,e){r=r.concat(h(i.slice(e+1),t))})):r=i,n?r:e?r.join(','):r.join('')}}]),n}(c.Collection);d.prototype.model=u.Z},1311:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>P});var r=n(5861),i=n(4942),o=n(7757),a=n.n(o),s=n(3821);const l={id:'gjs-',type:'local',autosave:!0,autoload:!0,recovery:!1,stepsBeforeSave:1,onStore:function(t){return t},onLoad:function(t){return t},options:{local:{key:'gjsProject',checkLocal:!0},remote:{headers:{},urlStore:'',urlLoad:'',contentTypeJson:!0,fetchOptions:'',credentials:'include',onStore:function(t){return t},onLoad:function(t){return t}}}};var c=n(5671),u=n(3144),f=n(3168),h=function(){function t(){(0,c.Z)(this,t)}var e,n;return(0,u.Z)(t,[{key:"store",value:(n=(0,r.Z)(a().mark((function t(e){var n,r=arguments;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=r.length>1&&void 0!==r[1]?r[1]:{},this.hasLocal(n,!0)&&localStorage.setItem(n.key,JSON.stringify(e));case 2:case"end":return t.stop()}}),t,this)}))),function(t){return n.apply(this,arguments)})},{key:"load",value:(e=(0,r.Z)(a().mark((function t(){var e,n,r=arguments;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=r.length>0&&void 0!==r[0]?r[0]:{},n={},this.hasLocal(e,!0)&&(n=JSON.parse(localStorage.getItem(e.key)||'{}')),t.abrupt("return",n);case 4:case"end":return t.stop()}}),t,this)}))),function(){return e.apply(this,arguments)})},{key:"hasLocal",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0;if(t.checkLocal&&(!(0,f.hasWin)()||!localStorage)){if(e)throw new Error('localStorage not available');return!1}return!0}}]),t}(),d=n(9050),p=n(7644);function g(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function v(t){for(var e=1;e1&&void 0!==r[1]?r[1]:{},t.next=3,this.request(n.urlStore,this.__props(n,e),n);case 3:case"end":return t.stop()}}),t,this)}))),function(t){return n.apply(this,arguments)})},{key:"load",value:(e=(0,r.Z)(a().mark((function t(e){return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this.request(e.urlLoad,this.__props(e),e);case 2:return t.abrupt("return",t.sent);case 3:case"end":return t.stop()}}),t,this)}))),function(t){return e.apply(this,arguments)})},{key:"request",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return(0,p.Z)(t,e).then((function(t){var e=t.text();return 1==(t.status/200|0)?e:e.then(Promise.reject)})).then((function(t){var e=t&&(0,d.isString)(t);return n.contentTypeJson&&e?JSON.parse(t):t}))}},{key:"__props",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0,r=e.contentTypeJson,i=e.headers||{},o=e.fetchOptions||{},a='X-Requested-With',s='Content-Type';if((0,d.isUndefined)(i[a])&&(i[a]='XMLHttpRequest'),(0,d.isUndefined)(i[s])&&r&&(i[s]='application/json; charset=utf-8'),n)if(r)t=JSON.stringify(n);else for(var l in t=new FormData,n)t.append(l,n[l]);var c={method:t?'POST':'GET',credentials:e.credentials,headers:i,body:t};return v(v({},c),(0,d.isFunction)(o)?o(c):o)}}]),t}();function y(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function b(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.__initConfig(l,t);var e=this.getConfig();return e._disable&&(e.type=0),this.storages={},this.add(C,new h(e)),this.add(S,new m(e)),this.setCurrent(e.type),this},isAutosave:function(){return!!this.getConfig().autosave},setAutosave:function(t){return this.getConfig().autosave=!!t,this},getStepsBeforeSave:function(){return this.getConfig().stepsBeforeSave},setStepsBeforeSave:function(t){return this.getConfig().stepsBeforeSave=t,this},add:function(t,e){return this.storages[t]=e,this},get:function(t){return this.storages[t]||null},getStorages:function(){return this.storages},getCurrent:function(){return this.getConfig().currentStorage},setCurrent:function(t){return this.getConfig().currentStorage=t,this},getCurrentStorage:function(){return this.get(this.getCurrent())},getStorageOptions:function(t){return this.getCurrentOptions(t)},store:function(t){var e=arguments,n=this;return(0,r.Z)(a().mark((function r(){var i,o,s,l,c;return a().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return i=e.length>1&&void 0!==e[1]?e[1]:{},o=n.getCurrentStorage(),s=b(b({},n.getCurrentOptions()),i),l=n.getRecoveryStorage(),c=n.getCurrentOptions(C),r.prev=5,r.next=8,n.__exec(o,s,t);case 8:if(r.t0=l,!r.t0){r.next=12;break}return r.next=12,n.__exec(l,c,{});case 12:case 19:r.next=22;break;case 14:if(r.prev=14,r.t1=r.catch(5),!l){r.next=21;break}return r.next=19,n.__exec(l,c,t);case 21:throw r.t1;case 22:return r.abrupt("return",t);case 23:case"end":return r.stop()}}),r,null,[[5,14]])})))()},load:function(){var t=arguments,e=this;return(0,r.Z)(a().mark((function n(){var r,i,o,s,l,c;return a().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(r=t.length>0&&void 0!==t[0]?t[0]:{},i=e.getCurrentStorage(),o=b(b({},e.getCurrentOptions()),r),!(s=e.getRecoveryStorage())){n.next=17;break}return n.next=7,e.__exec(s,e.getCurrentOptions(C));case 7:if(c=n.sent,(0,d.isEmpty)(c)){n.next=17;break}return n.prev=9,n.next=12,e.__askRecovery();case 12:l=c,n.next=17;break;case 15:n.prev=15,n.t0=n.catch(9);case 17:if(l){n.next=21;break}return n.next=20,e.__exec(i,o);case 20:l=n.sent;case 21:return n.abrupt("return",l||{});case 22:case"end":return n.stop()}}),n,null,[[9,15]])})))()},__askRecovery:function(){var t=this.em,e=this.getRecovery();return new Promise((function(n,r){(0,d.isFunction)(e)?e(n,r,null==t?void 0:t.getEditor()):confirm(null==t?void 0:t.t('storageManager.recover'))?n():r()}))},getRecovery:function(){return this.getConfig().recovery},getRecoveryStorage:function(){return this.getRecovery()&&this.getCurrent()===S&&this.get(C)},__exec:function(t,e,n){var i=this;return(0,r.Z)(a().mark((function r(){var o,s,l,c,u,f,h,d;return a().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(o=n?'store':'load',s=i.getConfig(),l=s.onStore,c=s.onLoad,i.onStart(o,n),t){r.next=5;break}return r.abrupt("return",n||{});case 5:if(r.prev=5,h=null===(f=i.em)||void 0===f?void 0:f.getEditor(),!n){r.next=31;break}if(r.t1=l,!r.t1){r.next=13;break}return r.next=12,l(n,h);case 12:r.t1=r.sent;case 13:if(r.t0=r.t1,r.t0){r.next=16;break}r.t0=n;case 16:if(d=r.t0,r.t3=e.onStore,!r.t3){r.next=22;break}return r.next=21,e.onStore(d,h);case 21:r.t3=r.sent;case 22:if(r.t2=r.t3,r.t2){r.next=25;break}r.t2=d;case 25:return d=r.t2,r.next=28,t.store(d,e);case 28:u=n,r.next=53;break;case 31:return r.next=33,t.load(e);case 33:if(u=r.sent,u=i.__clearKeys(u),r.t5=e.onLoad,!r.t5){r.next=40;break}return r.next=39,e.onLoad(u,h);case 39:r.t5=r.sent;case 40:if(r.t4=r.t5,r.t4){r.next=43;break}r.t4=u;case 43:if(u=r.t4,r.t7=c,!r.t7){r.next=49;break}return r.next=48,c(u,h);case 48:r.t7=r.sent;case 49:if(r.t6=r.t7,r.t6){r.next=52;break}r.t6=u;case 52:u=r.t6;case 53:i.onAfter(o,u),i.onEnd(o,u),r.next=61;break;case 57:throw r.prev=57,r.t8=r.catch(5),i.onError(o,r.t8),r.t8;case 61:return r.abrupt("return",u);case 62:case"end":return r.stop()}}),r,null,[[5,57]])})))()},__clearKeys:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getConfig(),n=new RegExp("^".concat(e.id)),r={};for(var i in t){var o=i.replace(n,'');r[o]=t[i]}return r},getCurrentOptions:function(t){var e=this.getConfig(),n=t||this.getCurrent();return e.options[n]||{}},onStart:function(t,e){var n=this.em;n&&(n.trigger(w),t&&n.trigger("".concat(w,":").concat(t),e))},onAfter:function(t,e){var n=this.em;n&&(n.trigger(k),n.trigger("".concat(k,":").concat(t),e),n.trigger("storage:".concat(t),e))},onEnd:function(t,e){var n=this.em;n&&(n.trigger(x),t&&n.trigger("".concat(x,":").concat(t),e))},onError:function(t,e){var n=this.em;n&&(n.trigger(O,e),t&&n.trigger("".concat(O,":").concat(t),e),this.onEnd(t,e))},canAutoload:function(){return this.getCurrentStorage()&&this.getConfig().autoload},destroy:function(){this.__destroy(),this.storages={}}})}},3096:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>Te,evAll:()=>pe,evCustom:()=>Pe,evLayerSelect:()=>Ce,evPfx:()=>ge,evProp:()=>we,evPropAdd:()=>ke,evPropRemove:()=>xe,evPropUp:()=>Oe,evSector:()=>ve,evSectorAdd:()=>me,evSectorRemove:()=>ye,evSectorUpdate:()=>be,evTarget:()=>Se});var r=n(2982),i=n(4942),o=n(9050),a=n(3168),s=n(3821),l=n(6409);const c={sectors:[{name:'General',open:!1,properties:['display','float','position','top','right','left','bottom']},{name:'Flex',open:!1,properties:['flex-direction','flex-wrap','justify-content','align-items','align-content','order','flex-basis','flex-grow','flex-shrink','align-self']},{name:'Dimension',open:!1,properties:['width','height','max-width','min-height','margin','padding']},{name:'Typography',open:!1,properties:['font-family','font-size','font-weight','letter-spacing','color','line-height','text-align','text-shadow']},{name:'Decorations',open:!1,properties:['background-color','border-radius','border','box-shadow','background']},{name:'Extra',open:!1,properties:['opacity','transition']}],appendTo:'',stylePrefix:'sm-',custom:!1,hideNotStylable:!0,highlightChanged:!0,highlightComputed:!0,showComputed:!0,clearProperties:!0,avoidComputed:['width','height']};var u=n(4925),f=n(5671),h=n(3144),d=n(9340),p=n(2963),g=n(1120),v=n(2316),m=n.n(v),y=n(6475),b=["partial"];function w(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function k(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.em=e.em;var r=this.get('id')||'',i=this.get('name')||this.get('label')||'';!this.get('property')&&this.set('property',(i||r).replace(/ /g,'-'));var o=this.get('property');!this.get('id')&&this.set('id',o),!i&&this.set('name',(0,a.capitalize)(o).replace(/-/g,' ')),this.on('change',this.__upTargets),n.callInit(this,t,e)}},{key:"__getParentProp",value:function(){var t,e;return null===(t=this.collection)||void 0===t||null===(e=t.opts)||void 0===e?void 0:e.parentProp}},{key:"__upTargets",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=this.em,s=a.get('StyleManager'),l=this.getName(),c=n.__clear,u=c?'':this.__getFullValue(n),f=this.__getParentProp(),h=this.changedAttributes(),d=(0,o.keys)(h).reduce((function(t,n){return t[n]=e.previous(n),t}),{}),p=[].concat((0,r.Z)((0,o.keys)(this.__getClearProps())),['__p']),g=(0,o.keys)(h),v=!n.__up&&!f&&(c||p.some((function(t){return g.indexOf(t)>=0}))),m=this.get('onChange'),y={property:this,from:d,to:h,value:u,opts:n};s.__trgEv(s.events.propertyUpdate,y),m&&m(y),v&&this.__upTargetsStyle((0,i.Z)({},l,u),n)}},{key:"__upTargetsStyle",value:function(t,e){var n,r=null===(n=this.em)||void 0===n?void 0:n.get('StyleManager');null==r||r.addStyleTargets(k(k({},t),{},{__p:!!e.avoidStore}),e)}},{key:"_up",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.noTarget&&(e.__up=!0);var n=e.partial,r=(0,u.Z)(e,b);return t.__p=!(!r.avoidStore&&!n),this.set(t,k(k({},r),{},{avoidStore:t.__p}))}},{key:"up",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.set(t,k(k({},e),{},{__up:!0}))}},{key:"init",value:function(){}},{key:"getId",value:function(){return this.get('id')}},{key:"getType",value:function(){return this.get('type')}},{key:"getName",value:function(){return this.get('property')}},{key:"getLabel",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.locale,r=void 0===n||n,i=this.getId(),o=this.get('name')||this.get('label');return r&&(null===(t=this.em)||void 0===t?void 0:t.t("styleManager.properties.".concat(i)))||o}},{key:"getValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.noDefault,n=this.get('value');return this.hasValue()||e?n:this.getDefaultValue()}},{key:"hasValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.noParent,n=e&&this.getParentTarget(),r=this.get('value');return!(0,o.isUndefined)(r)&&''!==r&&!n}},{key:"hasValueParent",value:function(){return this.hasValue()&&!this.hasValue({noParent:!0})}},{key:"getStyle",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getName(),n=t.camelCase?(0,a.camelCase)(e):e;return(0,i.Z)({},n,this.__getFullValue(t))}},{key:"getDefaultValue",value:function(){var t=this.get('default');return"".concat((0,o.isUndefined)(t)?this.get('defaults'):t)}},{key:"upValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null===t||''===t?this.__getClearProps():this.__parseValue(t,e);return this._up(n,e)}},{key:"isVisible",value:function(){return!!this.get('visible')}},{key:"clear",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._up(this.__getClearProps(),k(k({},t),{},{__clear:!0}))}},{key:"canClear",value:function(){var t=this.getParent();return t?t.__canClearProp(this):this.hasValue({noParent:!0})}},{key:"getParent",value:function(){return this.__getParentProp()||null}},{key:"isFull",value:function(){return!!this.get('full')}},{key:"__parseValue",value:function(t,e){return this.parseValue(t,e)}},{key:"__getClearProps",value:function(){return{value:''}}},{key:"setValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.parseValue(t),i=!e;!i&&this.set({value:void 0},{avoidStore:i,silent:!0}),this.set(r,k({avoidStore:i},n))}},{key:"setValueFromInput",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.setValue(t,e,k(k({},n),{},{fromInput:1}))}},{key:"parseValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={value:t},r='!important';if((0,o.isString)(t)&&-1!==t.indexOf(r)&&(n.value=t.replace(r,'').trim(),n.important=1),!this.get('functionName')&&!e.complete)return n;var i=[],a="".concat(n.value),s=a.indexOf('(')+1,l=a.lastIndexOf(')'),c=a.substring(0,s-1);if(c&&(n.functionName=c),i.push(s),l>=0&&i.push(l),n.value=String.prototype.substring.apply(a,i),e.numeric){var u=parseFloat(n.value);n.unit=n.value.replace(u,''),n.value=u}return n}},{key:"__getFullValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.withDefault;return!this.hasValue()&&e?this.getDefaultValue():this.getFullValue()}},{key:"getFullValue",value:function(t){var e=this.get('functionName'),n=this.getDefaultValue(),r=(0,o.isUndefined)(t)?this.get('value'):t,i=!(0,o.isUndefined)(r)&&''!==r;if(r&&n&&r===n)return n;if(e&&i){var a='url'===e?"'".concat(r.replace(/'/g,''),"'"):r;r="".concat(e,"(").concat(a,")")}return i&&this.get('important')&&(r="".concat(r," !important")),r||''}},{key:"__setParentTarget",value:function(t){this.__parentTarget=t}},{key:"getParentTarget",value:function(){return this.__parentTarget||null}},{key:"__parseFn",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',e=t.indexOf('(')+1,n=t.lastIndexOf(')');return{name:t.substring(0,e-1).trim(),value:String.prototype.substring.apply(t,[e,n>=0?n:void 0]).trim()}}},{key:"__checkVisibility",value:function(t){var e=t.target,n=t.component,r=t.sectors,i=n||e;if(!i)return!1;var s=this.getId(),l=this.getName(),c=this.get('toRequire'),u=this.get('requires'),f=this.get('requiresParent'),h=i.get('unstylable'),d=i.get('stylable-require'),p=i.get('stylable');if((0,o.isArray)(p)&&(p=p.indexOf(l)>=0),(0,o.isArray)(h)&&(p=h.indexOf(l)<0),c&&(p=!e||d&&(d.indexOf(s)>=0||d.indexOf(l)>=0)),r&&u){var g=(0,o.keys)(u);r.forEach((function(t){t.getProperties().forEach((function(t){if((0,o.includes)(g,t.id)){var e=u[t.id];p=p&&(0,o.includes)(e,t.get('value'))}}))}))}if(f){var v=n&&n.parent(),m=v&&v.getEl();if(m){var y=(0,a.hasWin)()?window.getComputedStyle(m):{};(0,o.each)(f,(function(t,e){p=p&&y[e]&&(0,o.includes)(t,y[e])}))}else p=!1}return!!p}}]),n}(l.Z);function C(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function S(t){for(var e=1;e3&&void 0!==arguments[3]?arguments[3]:{};t.prototype.initialize.apply(e,[n,k(k({},r),{},{skipInit:1})])},O.callInit=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!n.skipInit&&t.init(e,n)},O.getDefaults=function(){return(0,o.result)(this.prototype,'defaults')},O.prototype.defaults={name:'',property:'',type:'',defaults:'',info:'',value:'',icon:'',functionName:'',status:'',visible:!0,fixedValues:['initial','inherit'],onChange:null,full:0,important:0,toRequire:0,requires:null,requiresParent:null};var _=function(t){return'integer'===t||'number'===t},T=function(t){(0,d.Z)(n,t);var e=P(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n,[{key:"defaults",value:function(){return S(S({},O.getDefaults()),{},{detached:!1,properties:[],separator:' ',join:null,fromStyle:null,toStyle:null,full:!0})}},{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};O.callParentInit(O,this,t,e);var n=this.em,r=new zt(this.get('properties')||[],{em:n,parentProp:this});this.set('properties',r,{silent:1}),this.listenTo(r,'change',this.__upProperties),O.callInit(this,t,e)}},{key:"getProperties",value:function(){return(0,r.Z)(this.get('properties').models)}},{key:"getProperty",value:function(t){return this.get('properties').filter((function(e){return e.getId()===t||e.getName()===t}))[0]||null}},{key:"getPropertyAt",value:function(t){return this.get('properties').at(t)}},{key:"isDetached",value:function(){return!!this.get('detached')}},{key:"getValues",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.byName;return this.getProperties().reduce((function(t,n){return t[e?n.getName():n.getId()]="".concat(n.__getFullValue()),t}),{})}},{key:"getSeparator",value:function(){return this.getSplitSeparator()}},{key:"getJoin",value:function(){return this.__getJoin()}},{key:"getStyleFromProps",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getName(),n=this.__getJoin(),r=this.get('toStyle'),o=this.getValues(),a={};if(r)a=r(o,{join:n,name:e,property:this});else if(o=this.getValues({byName:!0}),this.isDetached())a=o;else{var s=this.getProperties().map((function(t){return t.__getFullValue({withDefault:1})})).filter(Boolean).join(n);a=(0,i.Z)({},e,s)}return this.isDetached()?a[e]='':(a[e]=a[e]||'',a=S(S({},a),this.getProperties().reduce((function(t,e){return t[e.getName()]='',t}),{}))),t.camelCase?Object.keys(a).reduce((function(t,e){return t[camelCase(e)]=a[e],t}),{}):a}},{key:"getSplitSeparator",value:function(){return new RegExp("".concat(this.get('separator'),"(?![^\\(]*\\))"))}},{key:"__upProperties",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.__up&&!e.__clearIn){var n=this.__getParentProp();if(n)return n.__upProperties(this,e);this.__upTargetsStyleProps(e,t)}}},{key:"__upTargetsStyleProps",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=this.getStyleFromProps();if(this.isDetached()&&e){var r=e.getName();n=(0,i.Z)({},r,n[r])}this.__upTargetsStyle(n,t)}},{key:"_up",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.__setProperties(this.__getSplitValue(t.value),e),O.prototype._up.call(this,t,e)}},{key:"getStyle",value:function(t){return this.getStyleFromProps(t)}},{key:"__getFullValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.isDetached()||t.__clear?'':this.getStyleFromProps()[this.getName()]||''}},{key:"__getJoin",value:function(){var t=this.get('join');return(0,o.isString)(t)?t:this.get('separator')}},{key:"__styleHasProps",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.getName(),n=this.getProperties(),i=n.map((function(t){return t.getName()})),a=[e].concat((0,r.Z)(i));return a.some((function(e){return!(0,o.isUndefined)(t[e])&&''!==t[e]}))}},{key:"__splitValue",value:function(t,e){return t.split(e).map((function(t){return t.trim()})).filter(Boolean)}},{key:"__splitStyleName",value:function(t,e,n){return this.__splitValue(t[e]||'',n)}},{key:"__getSplitValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.byName,r=this.getProperties(),i=4===r.length&&r.every((function(t){return _(t.getType())})),a=this.__splitValue(t,this.getSplitSeparator()),s={};return r.forEach((function(t,e){var r=a[e],l=(0,o.isUndefined)(r)?'':r;if(i){var c=a.length;l=a[e]||a[e%c+(1!=c&&c%2?1:0)]||l}var u=n?t.getName():t.getId();s[u]=l||''})),s}},{key:"__getPropsFromStyle",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.__styleHasProps(t))return null;var n=e.byName,r=this.getName(),i=this.getProperties(),a=this.getSplitSeparator(),s=this.get('fromStyle'),l=s?s(t,{property:this,name:r,separator:a}):{};return s||(l=this.__getSplitValue(t[r]||'',{byName:n}),i.forEach((function(e){var r=t[e.getName()],i=n?e.getName():e.getId();(0,o.isUndefined)(r)||''===r||(l[i]=r)}))),l}},{key:"__setProperties",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.getProperties().forEach((function(n){var r=t[n.getId()];n.__getFullValue()!==r&&n.upValue(r,e)}));var n=(0,o.keys)(t).map((function(e){return t[e]})).join(' ');this.set('value',n,{silent:!0})}},{key:"clear",value:function(){var t=this;return this.getProperties().map((function(e){return e.clear({__clearIn:!t.isDetached()})})),O.prototype.clear.call(this)}},{key:"hasValue",value:function(t){return this.getProperties().some((function(e){return e.hasValue(t)}))}},{key:"getFullValue",value:function(){return this.__getFullValue()}},{key:"__canClearProp",value:function(t){return this.isDetached()&&t.hasValue({noParent:!0})}}]),n}(O);function E(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function j(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=this.get('values');return t.camelCase?Object.keys(e).reduce((function(t,n){return t[(0,a.camelCase)(n)]=e[n],t}),{}):e}},{key:"getLabel",value:function(){var t;return null===(t=this.prop)||void 0===t?void 0:t.getLayerLabel(this)}},{key:"isSelected",value:function(){var t;return(null===(t=this.prop)||void 0===t?void 0:t.getSelectedLayer())===this}},{key:"select",value:function(){var t;return null===(t=this.prop)||void 0===t?void 0:t.selectLayer(this)}},{key:"remove",value:function(){var t;return null===(t=this.prop)||void 0===t?void 0:t.removeLayer(this)}},{key:"move",value:function(t){var e;return null===(e=this.prop)||void 0===e?void 0:e.moveLayer(this,t)}},{key:"getStylePreview",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return null===(t=this.prop)||void 0===t?void 0:t.getStylePreview(this,e)}},{key:"hasPreview",value:function(){var t;return!(null===(t=this.prop)||void 0===t||!t.get('preview'))}},{key:"upValues",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.set('values',j(j({},this.getValues()),t))}}]),n}(l.Z);function A(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,g.Z)(t);if(e){var i=(0,g.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,p.Z)(this,n)}}var M=function(t){(0,d.Z)(n,t);var e=A(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n,[{key:"initialize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prop=e.prop}}]),n}(v.Collection);M.prototype.model=R;var Z=["__layers"];function L(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function N(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};T.callParentInit(T,this,t,e);var n=this.get('layers'),r=new M(n,{prop:this});r.property=this,r.properties=this.get('properties'),this.set('layers',r,{silent:!0}),this.on('change:selectedLayer',this.__upSelected),this.listenTo(r,'add remove',this.__upLayers),T.callInit(this,t,e)}},{key:"getLayers",value:function(){return this.__getLayers().models}},{key:"__getLayers",value:function(){return this.get('layers')}},{key:"getLayer",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.__getLayers().at(t)||null}},{key:"getSelectedLayer",value:function(){var t=this.get('selectedLayer');return t&&t.getIndex()>=0?t:null}},{key:"selectLayer",value:function(t){return this.set('selectedLayer',t,{__select:!0})}},{key:"selectLayerAt",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=this.getLayer(t);return e&&this.selectLayer(e)}},{key:"moveLayer",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=t?t.getIndex():-1;n>=0&&(0,o.isNumber)(e)&&e>=0&&e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={};this.getProperties().forEach((function(e){var r=e.getId(),i=t[r];n[r]=(0,o.isUndefined)(i)?e.getDefaultValue():i}));var r=this.get('layers').push({values:n},e);return r}},{key:"removeLayer",value:function(t){return this.get('layers').remove(t)}},{key:"removeLayerAt",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=this.getLayer(t);return e?this.removeLayer(e):null}},{key:"getLayerLabel",value:function(t){var e='';if(t){var n=this.get('layerLabel'),r=t.getValues(),i=t.getIndex();if(n)e=n(t,{index:i,values:r,property:this});else{var o=[];this.getProperties().map((function(t){o.push(r[t.getId()])})),e=o.filter(Boolean).join(' ')}}return e}},{key:"getStyleFromLayer",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.__getJoin(),s=this.__getJoinLayers(),l=this.get('toStyle'),c=this.getName(),u=t.getValues();if(l)e=l(u,{join:r,joinLayers:s,name:c,layer:t,property:this});else{var f=this.getProperties().map((function(t){var e=t.getName(),r=u[t.getId()],i=(0,o.isUndefined)(r)?t.getDefaultValue():r;if(n.number&&_(t.getType())){var a=t.parseValue(r,n.number);i="".concat(a.value).concat(a.unit)}return{name:e,value:i}}));e=this.isDetached()?f.reduce((function(t,e){return t[e.name]=e.value,t}),{}):(0,i.Z)({},this.getName(),f.map((function(t){return t.value})).join(r))}return n.camelCase?Object.keys(e).reduce((function(t,n){return t[(0,a.camelCase)(n)]=e[n],t}),{}):e}},{key:"getStylePreview",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={},r=this.get('preview');return r&&(n=this.getStyleFromLayer(t,e)),n}},{key:"getLayerSeparator",value:function(){var t=this.get('layerSeparator');return(0,o.isString)(t)?new RegExp("".concat(t,"(?![^\\(]*\\))")):t}},{key:"__upProperties",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.getSelectedLayer();n&&(n.upValues((0,i.Z)({},t.getId(),t.__getFullValue())),e.__up||this.__upTargetsStyleProps(e))}},{key:"__upLayers",value:function(t,e,n){this.__upTargetsStyleProps(n||e)}},{key:"__upTargets",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.__select)return O.prototype.__upTargets.call(this,t,e)}},{key:"__upTargetsStyleProps",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.__upTargetsStyle(this.getStyleFromLayers(),t)}},{key:"__upTargetsStyle",value:function(t,e){return O.prototype.__upTargetsStyle.call(this,t,e)}},{key:"__upSelected",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.noEvent,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em.get('StyleManager'),i=this.getSelectedLayer(),o=null==i?void 0:i.getValues();o&&this.getProperties().forEach((function(t){var e=o[t.getId()];t.__getFullValue()!==e&&t.upValue(e,N(N({},n),{},{__up:!0}))})),!e&&r.__trgEv(r.events.layerSelect,{property:this})}},{key:"_up",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.__layers,r=void 0===n?[]:n,i=(0,u.Z)(t,Z);return!this.isDetached()&&this.__setLayers(r),this.__upSelected({noEvent:!0},e),O.prototype._up.call(this,i,e)}},{key:"__setLayers",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=this.__getLayers(),n=t.map((function(t){return{values:t}}));e.length===n.length?n.map((function(t,n){var r;return null===(r=e.at(n))||void 0===r?void 0:r.upValues(t.values)})):this.__getLayers().reset(n),this.__upSelected({noEvent:!0})}},{key:"__parseValue",value:function(t){var e=this,n=this.parseValue(t);return n.__layers=t.split(F).map((function(t){return t.trim()})).map((function(t){return e.__parseLayer(t)})).filter(Boolean),n}},{key:"__parseLayer",value:function(t){var e=this.get('parseLayer'),n=t.split(B),r=this.getProperties();return e?e({value:t,values:n}):r.reduce((function(t,e,r){var i=n[r];return t[e.getId()]=(0,o.isUndefined)(i)?e.getDefaultValue():i,t}),{})}},{key:"__getLayersFromStyle",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!this.__styleHasProps(e))return null;var n=this.getName(),r=this.getProperties(),a=this.getLayerSeparator(),s=this.get('fromStyle'),l=s?s(e,{property:this,name:n,separatorLayers:a}):[];if(!s){var c=this.__splitStyleName(e,n,a).map((function(e){return e.split(t.getSplitSeparator())})).map((function(t){var e={};return r.forEach((function(n,r){var i=t[r];e[n.getId()]=(0,o.isUndefined)(i)?n.getDefaultValue():i})),e}));r.forEach((function(n){var r=n.getId();t.__splitStyleName(e,n.getName(),a).map((function(t){return(0,i.Z)({},r,t||n.getDefaultValue())})).forEach((function(t,e){c[e]=c[e]?N(N({},c[e]),t):t}))})),l=c}return(0,o.isArray)(l)?l:[l]}},{key:"getStyle",value:function(t){return this.getStyleFromLayers(t)}},{key:"getStyleFromLayers",value:function(t){var e=this,n={},r=this.getName(),i=this.getLayers(),a=this.getProperties();if(i.map((function(n){return e.getStyleFromLayer(n,t)})).forEach((function(t){(0,o.keys)(t).map((function(e){n[e]||(n[e]=[]),n[e].push(t[e])}))})),(0,o.keys)(n).map((function(t){n[t]=n[t].join(e.__getJoinLayers())})),this.isDetached())n[r]='',!i.length&&a.map((function(t){n[t.getName()]=''}));else{var s=a.reduce((function(t,e){return t[e.getName()]='',t}),{});n[r]=n[r]||'',n=N(N({},n),s)}return n}},{key:"__getJoinLayers",value:function(){var t=this.get('layerJoin'),e=this.get('layerSeparator');return t||((0,o.isString)(e)?e:t)}},{key:"__getFullValue",value:function(){return this.get('detached')?'':this.getStyleFromLayers()[this.getName()]}},{key:"hasValue",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.noParent,n=e&&this.getParentTarget();return this.getLayers().length>0&&!n}},{key:"clear",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.__getLayers().reset(),this.__upTargetsStyleProps(t),O.prototype.clear.call(this)}},{key:"__canClearProp",value:function(){return!1}}]),n}(T),H=["complete","partial"];function z(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function U(t){for(var e=1;e
\n
\n ")}},{key:"templateLabel",value:function(t){var e=this.pfx,n=this.em,r=t.parent,i=t.attributes,o=i.icon,a=void 0===o?'':o,s=i.info,l=void 0===s?'':s,c=null==n?void 0:n.getConfig('icons'),u=(null==c?void 0:c.close)||'';return"\n \n ").concat(t.getLabel(),"\n \n ").concat(r?'':"
").concat(u,"
"),"\n ")}},{key:"templateInput",value:function(t){return"\n
\n \n
\n ")}},{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,o.bindAll)(this,'__change','__updateStyle');var e=t.config||{},n=e.em;this.config=e,this.em=n,this.pfx=e.stylePrefix||'',this.ppfx=e.pStylePrefix||'',this.__destroyFn=this.destroy?this.destroy.bind(this):function(){};var r=this.model;r.view=this,this.onValueChange=(0,o.debounce)(this.onValueChange.bind(this),10),this.updateStatus=(0,o.debounce)(this.updateStatus.bind(this)),this.listenTo(r,'destroy remove',this.remove),this.listenTo(r,'change:visible',this.updateVisibility),this.listenTo(r,'change:name change:className change:full',this.render),this.listenTo(r,'change:value',this.onValueChange),this.listenTo(n,'change:device',this.onValueChange);var i=this.init&&this.init.bind(this);i&&i()}},{key:"remove",value:function(){var t=this;v.View.prototype.remove.apply(this,arguments),['em','input','$input','view'].forEach((function(e){return t[e]=null})),this.__destroyFn(this._getClbOpts())}},{key:"updateStatus",value:function(){var t,e=this.model,n=this.pfx,r=this.ppfx,i=this.config,o="".concat(r,"four-color"),a="".concat(r,"color-warn"),s=this.$el.children(".".concat(n,"label")),l=this.getClearEl(),c=l?l.style:{};s.removeClass("".concat(o," ").concat(a)),c.display='none',e.hasValue({noParent:!0})&&i.highlightChanged?(s.addClass(o),i.clearProperties&&(c.display='')):e.hasValue()&&i.highlightComputed&&s.addClass(a),null===(t=this.parent)||void 0===t||t.updateStatus()}},{key:"clear",value:function(t){t&&t.stopPropagation(),this.model.clear()}},{key:"getClearEl",value:function(){return this.clearEl||(this.clearEl=this.el.querySelector("[".concat($,"]"))),this.clearEl}},{key:"inputValueChanged",value:function(t){t&&t.stopPropagation(),this.emit||this.model.upValue(t.target.value)}},{key:"onValueChange",value:function(t,e){this.setValue(this.model.getFullValue()),this.updateStatus()}},{key:"setValue",value:function(t){var e=this.model,n=(0,o.isUndefined)(t)||''===t?e.getDefaultValue():t;if(this.update)return this.__update(n);this.__setValueInput(n)}},{key:"__setValueInput",value:function(t){var e=this.getInputEl();e&&(e.value=t)}},{key:"getInputEl",value:function(){return this.input||(this.input=this.el.querySelector('input')),this.input}},{key:"updateVisibility",value:function(){this.el.style.display=this.model.isVisible()?'':'none'}},{key:"clearCached",value:function(){this.clearEl=null,this.input=null,this.$input=null}},{key:"__unset",value:function(){var t=this.unset&&this.unset.bind(this);t&&t(this._getClbOpts())}},{key:"__update",value:function(t){var e=this.update&&this.update.bind(this);e&&e(U(U({},this._getClbOpts()),{},{value:t}))}},{key:"__change",value:function(){for(var t=this.emit&&this.emit.bind(this),e=arguments.length,n=new Array(e),r=0;r1&&void 0!==arguments[1]?arguments[1]:{},n=e.complete,r=e.partial,i=((0,u.Z)(e,H),this.model),o=!1!==n&&!0!==r;(0,a.isObject)(t)?i.__upTargetsStyle(t,{avoidStore:!o}):i.upValue(t,{partial:!o})}},{key:"_getClbOpts",value:function(){var t=this.model;return{el:this.el,createdEl:this.createdEl,property:t,props:t.attributes,change:this.__change,updateStyle:this.__updateStyle}}},{key:"render",value:function(){this.clearCached();var t=this.pfx,e=this.model,n=this.el,r=this.$el,i=e.getName(),o=e.getType(),a=e.get('className')||'',s="".concat(t,"property"),l='number'===o?"".concat(t).concat(o," ").concat(t,"integer"):"".concat(t).concat(o);this.createdEl&&this.__destroyFn(this._getClbOpts()),r.empty().append(this.template(e)),r.find('[data-sm-label]').append(this.templateLabel(e));var c=this.create&&this.create.bind(this);this.createdEl=c&&c(this._getClbOpts()),r.find('[data-sm-fields]').append(this.createdEl||this.templateInput(e)),n.className="".concat(s," ").concat(l," ").concat(s,"__").concat(i," ").concat(a).trim(),n.className+=e.isFull()?" ".concat(s,"--full"):'';var u=this.onRender&&this.onRender.bind(this);u&&u(),this.setValue(e.getValue())}}]),n}(v.View);q.prototype.events=(0,i.Z)({change:'inputValueChanged'},"click [".concat($,"]"),'clear');var G=n(827);function K(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,g.Z)(t);if(e){var i=(0,g.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,p.Z)(this,n)}}var Y=function(t){(0,d.Z)(n,t);var e=K(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n,[{key:"initialize",value:function(t){this.config=t.config||{},this.pfx=this.config.stylePrefix||'',this.properties=[],this.parent=t.parent;var e=this.collection;this.listenTo(e,'add',this.addTo),this.listenTo(e,'reset',this.render)}},{key:"addTo",value:function(t,e,n){this.add(t,null,n)}},{key:"add",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.parent,i=this.config,o=e||this.el,a=new t.typeView({model:t,config:i});r&&(a.parent=r),a.render();var s=a.el;this.properties.push(a),(0,G.$Q)(o,s,n.at)}},{key:"remove",value:function(){v.View.prototype.remove.apply(this,arguments),this.clearItems()}},{key:"clearItems",value:function(){this.properties.forEach((function(t){return t.remove()})),this.properties=[]}},{key:"render",value:function(){var t=this,e=this.$el,n=this.pfx;this.clearItems();var r=document.createDocumentFragment();return this.collection.forEach((function(e){return t.add(e,r)})),e.empty(),e.append(r),e.attr('class',"".concat(n,"properties")),this}}]),n}(v.View);function X(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function J(t){for(var e=1;e\n \n \n ")}},{key:"remove",value:function(){var t;null===(t=this.props)||void 0===t||t.remove(),q.prototype.remove.apply(this,arguments)}},{key:"onValueChange",value:function(){}},{key:"onRender",value:function(){var t=this.model,e=this.pfx,n=t.get('properties');if(n.length&&!this.props){var r=t.isDetached(),i=new Y({config:J(J({},this.config),{},{highlightComputed:r,highlightChanged:r}),collection:n,parent:this});i.render(),this.$el.find("#".concat(e,"input-holder")).append(i.el),this.props=i}}},{key:"clearCached",value:function(){q.prototype.clearCached.apply(this,arguments),this.props=null}}]),n}(q);function et(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,g.Z)(t);if(e){var i=(0,g.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,p.Z)(this,n)}}var nt=function(t){(0,d.Z)(n,t);var e=et(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n,[{key:"events",value:function(){return{click:'select','click [data-close-layer]':'removeItem','mousedown [data-move-layer]':'initSorter','touchstart [data-move-layer]':'initSorter'}}},{key:"template",value:function(){var t=this.pfx,e=this.ppfx,n=this.em,r=null==n?void 0:n.getConfig('icons'),i=(null==r?void 0:r.close)||'',o=(null==r?void 0:r.move)||'';return"\n
\n
\n ").concat(o,"\n
\n
\n
\n
\n
\n
\n ").concat(i,"\n
\n
\n
\n ")}},{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.model,n=t.config||{};this.em=n.em,this.config=n,this.sorter=t.sorter,this.pfx=n.stylePrefix||'',this.ppfx=n.pStylePrefix||'',this.propertyView=t.propertyView;var r=this.propertyView.model;this.listenTo(e,'destroy remove',this.remove),this.listenTo(e,'change:values',this.updateLabel),this.listenTo(r,'change:selectedLayer',this.updateVisibility),e.view=this,e.set({droppable:0,draggable:1}),this.$el.data('model',e)}},{key:"initSorter",value:function(){var t;null===(t=this.sorter)||void 0===t||t.startSort(this.el)}},{key:"removeItem",value:function(t){t&&t.stopPropagation(),this.model.remove()}},{key:"select",value:function(){this.model.select()}},{key:"getPropertiesWrapper",value:function(){return this.propsWrapEl||(this.propsWrapEl=this.el.querySelector('[data-properties]')),this.propsWrapEl}},{key:"getPreviewEl",value:function(){return this.previewEl||(this.previewEl=this.el.querySelector('[data-preview]')),this.previewEl}},{key:"getLabelEl",value:function(){return this.labelEl||(this.labelEl=this.el.querySelector('[data-label]')),this.labelEl}},{key:"updateLabel",value:function(){var t=this.model,e=t.getLabel();if(this.getLabelEl().innerHTML=e,t.hasPreview()){var n=this.getPreviewEl(),r=t.getStylePreview({number:{min:-3,max:3}}),i=(0,o.keys)(r).map((function(t){return"".concat(t,":").concat(r[t])})).join(';');n.setAttribute('style',i)}}},{key:"updateVisibility",value:function(){var t=this.pfx,e=this.model,n=this.propertyView,r=this.getPropertiesWrapper(),i=e.isSelected();r.style.display=i?'':'none',this.$el[i?'addClass':'removeClass']("".concat(t,"active")),i&&r.appendChild(n.props.el)}},{key:"render",value:function(){var t=this.el,e=this.pfx,n=this.model;return t.innerHTML=this.template(),t.className="".concat(e,"layer"),n.hasPreview()&&(t.querySelector("[data-preview-box]").style.display=''),this.updateLabel(),this.updateVisibility(),this}}]),n}(v.View);function rt(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,g.Z)(t);if(e){var i=(0,g.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,p.Z)(this,n)}}var it=function(t){(0,d.Z)(n,t);var e=rt(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n,[{key:"initialize",value:function(t){var e=this.collection,n=t.config||{},r=n.em,i=n.stylePrefix||'',o=n.pStylePrefix||'';this.config=n,this.pfx=i,this.ppfx=o,this.propertyView=t.propertyView,this.className="".concat(i,"layers ").concat(o,"field"),this.listenTo(e,'add',this.addTo),this.listenTo(e,'reset',this.reset),this.items=[];var a=r?r.get('Utils'):'';this.sorter=a?new a.Sorter({container:this.el,ignoreViewChildren:1,containerSel:".".concat(i,"layers"),itemSel:".".concat(i,"layer"),pfx:n.pStylePrefix}):'',e.view=this,this.$el.data('model',e),this.$el.data('collection',e)}},{key:"addTo",value:function(t){var e=this.collection.indexOf(t);this.addToCollection(t,null,e)}},{key:"addToCollection",value:function(t,e,n){var r=e||null,i=this.propertyView,o=this.config,a=this.sorter,s=this.$el,l=new nt({model:t,config:o,sorter:a,propertyView:i}),c=l.render().el;if(this.items.push(l),r)r.appendChild(c);else if(void 0!==n){var u='before';s.children().length===n&&(n--,u='after'),n<0?s.append(c):s.children().eq(n)[u](c)}else s.append(c);return c}},{key:"reset",value:function(t,e){this.clearItems(e),this.render()}},{key:"remove",value:function(){this.clearItems(),v.View.prototype.remove.apply(this,arguments)}},{key:"clearItems",value:function(){this.items.forEach((function(t){return t.remove()})),this.items=[]}},{key:"render",value:function(){var t=this,e=this.$el,n=this.sorter,r=document.createDocumentFragment();return e.empty(),this.collection.forEach((function(e){return t.addToCollection(e,r)})),e.append(r),e.attr('class',this.className),n&&(n.plh=null),this}}]),n}(v.View);function ot(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function at(t){for(var e=1;e\n \n
\n \n ")}},{key:"init",value:function(){var t=this.model;this.listenTo(t.__getLayers(),'change reset',this.updateStatus)}},{key:"addLayer",value:function(){this.model.addLayer({},{at:0})}},{key:"setValue",value:function(){}},{key:"remove",value:function(){var t;null===(t=this.layersView)||void 0===t||t.remove(),tt.prototype.remove.apply(this,arguments)}},{key:"clearCached",value:function(){tt.prototype.clearCached.apply(this,arguments),this.layersView=null}},{key:"onRender",value:function(){var t=this.model,e=this.el,n=this.config,r=t.get('properties');if(r.length&&!this.props){var i=new Y({config:at(at({},n),{},{highlightComputed:!1,highlightChanged:!1}),collection:r,parent:this});i.render();var o=new it({collection:t.__getLayers(),config:n,propertyView:this});o.render(),e.querySelector('[data-layers-wrapper]').appendChild(o.el),this.props=i,this.layersView=o}}}]),n}(tt);function ct(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function ut(t){for(var e=1;e\n
\n
\n \n
\n
\n
\n
\n
\n
").concat(i,"
\n
\n \n ")}},{key:"__setValueInput",value:function(t){var e=this.model,n=this.el,r=e.getDefaultValue(),i=n.querySelector('[data-preview-box]'),o=n.querySelector('[data-preview]');i.style.display=t&&t!==r?'':'none',o.style.backgroundImage=t||e.getDefaultValue()}},{key:"openAssetManager",value:function(){var t,e=this,n=null===(t=this.em)||void 0===t?void 0:t.get('AssetManager');null==n||n.open({select:function(t,r){var i=(0,o.isString)(t)?t:t.get('src');e.model.upValue(i,{partial:!r}),r&&n.close()},types:['image'],accept:'image/*'})}}]),n}(q);function dt(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,g.Z)(t);if(e){var i=(0,g.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,p.Z)(this,n)}}var pt=function(t){(0,d.Z)(n,t);var e=dt(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n,[{key:"templateInput",value:function(){return''}},{key:"init",value:function(){var t=this.model;this.listenTo(t,'change:unit',this.onValueChange),this.listenTo(t,'change:units',this.render)}},{key:"setValue",value:function(){}},{key:"onRender",value:function(){var t=this.ppfx,e=this.model,n=this.el;if(!this.inputInst){var r=e.input;r.ppfx=t,r.render(),n.querySelector(".".concat(t,"fields")).appendChild(r.el),this.input=r.inputEl.get(0),this.inputInst=r}}},{key:"clearCached",value:function(){q.prototype.clearCached.apply(this,arguments),this.inputInst=null}}]),n}(q),gt=n(4e3);function vt(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,g.Z)(t);if(e){var i=(0,g.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,p.Z)(this,n)}}var mt=function(t){(0,d.Z)(n,t);var e=vt(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n,[{key:"setValue",value:function(t){var e;null===(e=this.inputInst)||void 0===e||e.setValue(t,{fromTarget:1,def:this.model.getDefaultValue()})}},{key:"remove",value:function(){var t=this;pt.prototype.remove.apply(this,arguments);var e=this.inputInst;e&&e.remove&&e.remove(),['inputInst','$color'].forEach((function(e){return t[e]=null}))}},{key:"__handleChange",value:function(t,e){this.model.upValue(t,{partial:e})}},{key:"onRender",value:function(){if(!this.inputInst){this.__handleChange=this.__handleChange.bind(this);var t=this.ppfx,e=this.model,n=this.em,r=this.el,i=new gt.Z({target:n,model:e,ppfx:t,onChange:this.__handleChange}).render();r.querySelector(".".concat(t,"fields")).appendChild(i.el),this.input=i.inputEl.get(0),this.inputInst=i}}}]),n}(pt);function yt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function bt(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:[];return this.set('options',t),this}},{key:"addOption",value:function(t){if(t){var e=this.getOptions();this.setOptions([].concat((0,r.Z)(e),[t]))}return this}},{key:"getOptionId",value:function(t){return(0,a.isDef)(t.id)?t.id:t.value}},{key:"getOptionLabel",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.locale,i=void 0===r||r,a=((0,o.isString)(t)?this.getOption(t):t)||{},s=this.getOptionId(a),l=a.label||a.name||s,c=this.getId();return i&&(null===(e=this.em)||void 0===e?void 0:e.t("styleManager.options.".concat(c,".").concat(s)))||l}},{key:"initialize",value:function(){for(var t=arguments.length,e=new Array(t),n=0;n\n \n
\n
\n
\n \n ")}},{key:"initialize",value:function(){for(var t=arguments.length,e=new Array(t),n=0;n").concat(i,""))}));var i=this.el.querySelector("#".concat(e,"input-holder"));i.innerHTML=""),this.input=i.firstChild}}},{key:"__setValueInput",value:function(t){var e=this.model,n=this.getInputEl(),r=e.getOptions()[0],i=r?e.getOptionId(r):'';n&&(n.value=t||i)}}]),n}(q);function Ct(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function St(t){for(var e=1;e")}},{key:"onRender",value:function(){var t=this.pfx,e=this.ppfx,n=this.model,r="".concat(e,"radio-item-label"),i=n.getName(),o=n.getOptions(),a="".concat(t,"radio ").concat(t,"radio-").concat(i),s=n.cid;if(!this.input){var l=[];o.forEach((function(o){var c=o.className?"".concat(o.className," ").concat(t,"icon ").concat(r):'',u=n.getOptionId(o),f="".concat(i,"-").concat(u,"-").concat(s),h=c?'':n.getOptionLabel(u),d=o.title?"title=\"".concat(o.title,"\""):'',p=n.getValue()===u?'checked':'';l.push("\n
\n \n \n
\n "))}));var c=this.el.querySelector(".".concat(e,"field"));c.innerHTML="
").concat(l.join(''),"
"),this.input=c.firstChild}}},{key:"__setValueInput",value:function(t){var e,n=this.model,r=t||n.getDefaultValue(),i=null===(e=this.getInputEl())||void 0===e?void 0:e.querySelector("[value=\"".concat(r,"\"]"));i&&(i.checked=!0)}}]),n}(Ot),jt=n(7813);function Dt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Rt(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};O.callParentInit(O,this,t,e);var n=this.get('unit'),r=this.get('units');this.input=(0,a.hasWin)()&&new jt.Z({model:this}),r.length&&!n&&this.set('unit',r[0],{silent:1}),O.callInit(this,t,e)}},{key:"__getClearProps",value:function(){return Rt(Rt({},O.prototype.__getClearProps()),{},{unit:''})}},{key:"parseValue",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=O.prototype.parseValue.apply(this,arguments),r=this.input.validateInputValue(n.value,Rt({deepCheck:1},e)),i=r.value,o=r.unit;return n.value=i,n.unit=o,n}},{key:"getFullValue",value:function(){var t=this.get('value'),e=this.get('unit');return t=(0,o.isUndefined)(t)?'':t,e=!(0,o.isUndefined)(e)&&t?e:'',t="".concat(t).concat(e),O.prototype.getFullValue.apply(this,[t])}}]),n}(O);function Zt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Lt(t){for(var e=1;e\n \n \n ")}},{key:"getSliderEl",value:function(){return this.slider||(this.slider=this.el.querySelector('input[type=range]')),this.slider}},{key:"inputValueChanged",value:function(){this.model.upValue(this.getSliderEl().value)}},{key:"inputValueChangedSoft",value:function(){this.model.upValue(this.getSliderEl().value,{partial:!0})}},{key:"setValue",value:function(t){var e=this.model,n=e.parseValue(t);this.getSliderEl().value=''===t?e.getDefaultValue():parseFloat(n.value),pt.prototype.setValue.apply(this,arguments)}},{key:"onRender",value:function(){pt.prototype.onRender.apply(this,arguments),this.model.get('showInput')||(this.inputInst.el.style.display='none')}},{key:"clearCached",value:function(){pt.prototype.clearCached.apply(this,arguments),this.slider=null}}]),n}(pt);const zt=m().Collection.extend(y.Z).extend({extendViewApi:1,init:function(){var t=this.opts,e=this.em,n=t.module||(null==e?void 0:e.get('StyleManager'));n&&(n.__listenAdd(this,n.events.propertyAdd),n.__listenRemove(this,n.events.propertyRemove))},types:[{id:'stack',model:V,view:lt,isType:function(t){if(t&&'stack'==t.type)return t}},{id:'composite',model:T,view:tt,isType:function(t){if(t&&'composite'==t.type)return t}},{id:'file',model:O,view:ht,isType:function(t){if(t&&'file'==t.type)return t}},{id:'color',model:O,view:mt,isType:function(t){if(t&&'color'==t.type)return t}},{id:'select',model:kt,view:Ot,isType:function(t){if(t&&'select'==t.type)return t}},{id:'radio',model:_t,view:Et,isType:function(t){if(t&&'radio'==t.type)return t}},{id:'slider',model:It,view:Ht,isType:function(t){if(t&&'slider'==t.type)return t}},{id:'integer',model:Mt,view:pt,isType:function(t){if(t&&'integer'==t.type)return t}},{id:'number',model:Mt,view:pt,isType:function(t){if(t&&'number'==t.type)return t}},{id:'base',model:O,view:q,isType:function(t){return t.type='base',t}}]});var Ut=["extend"];function Wt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function $t(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},r=n.em;this.em=r;var i=t||{},a=this.buildProperties(i.buildProps),s=this.get('name')||'',l=[];!this.get('id')&&this.set('id',s.replace(/ /g,'_').toLowerCase()),l=(l=a?this.extendProperties(a):this.get('properties').map((function(t){return(0,o.isString)(t)?e.buildProperties(t)[0]:t})).filter(Boolean)).map((function(t){return e.checkExtend(t)}));var c=new zt(l,{em:r});c.sector=this,this.set('properties',c)}},{key:"getId",value:function(){return this.get('id')}},{key:"getName",value:function(){var t,e=this.getId();return(null===(t=this.em)||void 0===t?void 0:t.t("styleManager.sectors.".concat(e)))||this.get('name')}},{key:"setName",value:function(t){return this.set('name',t)}},{key:"isOpen",value:function(){return!!this.get('open')}},{key:"setOpen",value:function(t){return this.set('open',t)}},{key:"isVisible",value:function(){return!!this.get('visible')}},{key:"getProperties",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.get('properties'),n=e.models?(0,r.Z)(e.models):e;return n.filter((function(e){var n=!0;(t.withValue&&(n=e.hasValue({noParent:!0})),t.withParentValue)&&(n=!e.hasValue({noParent:!0})&&e.hasValue());return n}))}},{key:"getProperty",value:function(t){return this.getProperties().filter((function(e){return e.get('id')===t}))[0]||null}},{key:"addProperty",value:function(t,e){return this.get('properties').add(this.checkExtend(t),e)}},{key:"extendProperties",value:function(t,e,n){for(var r=t.length,i=e||this.get('properties'),a=this.get('extendBuilded'),s=[],l=0,c=i.length;l1&&void 0!==arguments[1]?arguments[1]:{},n=e.module,r=e.em;this.em=r,this.module=n,this.listenTo(this,'reset',this.onReset)}},{key:"model",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.collection.em;return new Gt(t,Yt(Yt({},e),{},{em:n}))}},{key:"onReset",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.previousModels||[];n.forEach((function(t){return t.get('properties').reset()}))}}]),n}(v.Collection),Qt=n(885),te=["extend"];function ee(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function ne(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.from||'',i=this.props[r||t]||{},a=ne(ne({},i),{},{property:t},e);return a.properties&&(0,o.isFunction)(a.properties)&&(a.properties=a.properties()),this.props[t]=a,a}},{key:"get",value:function(t){return this.props[t]||null}},{key:"build",value:function(t){var e=this,n=[];return((0,o.isString)(t)?[t]:t).forEach((function(t){n.push(e.get(t)||{property:t})})),n}}]),t}(),ae=n(168),se=n(8595);function le(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,g.Z)(t);if(e){var i=(0,g.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,p.Z)(this,n)}}var ce=function(t){(0,d.Z)(n,t);var e=le(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n,[{key:"template",value:function(t){var e,n=t.pfx,r=t.label,i=null===(e=this.em)||void 0===e?void 0:e.getConfig('icons'),o=(null==i?void 0:i.caret)||'',a="".concat(n,"sector-");return(0,se.Z)(re||(re=(0,ae.Z)(["\n
\n
$","
\n
","
\n
\n "])),a,a,o,a,r)}},{key:"events",value:function(){return{'click [data-sector-title]':'toggle'}}},{key:"initialize",value:function(t){var e=t.config||{},n=this.model,r=e.em;this.config=e,this.em=r,this.pfx=e.stylePrefix||'',this.listenTo(n,'destroy remove',this.remove),this.listenTo(n,'change:open',this.updateOpen),this.listenTo(n,'change:visible',this.updateVisibility)}},{key:"updateOpen",value:function(){var t=this.$el,e=this.model,n=this.pfx,r=e.isOpen();t[r?'addClass':'removeClass']("".concat(n,"open")),this.getPropertiesEl().style.display=r?'':'none'}},{key:"updateVisibility",value:function(){this.el.style.display=this.model.isVisible()?'':'none'}},{key:"getPropertiesEl",value:function(){var t=this.$el,e=this.pfx;return t.find(".".concat(e,"properties")).get(0)}},{key:"toggle",value:function(){var t=this.model;t.setOpen(!t.get('open'))}},{key:"renderProperties",value:function(){var t=this.model,e=this.config,n=t.get('properties');if(n){var r=new Y({collection:n,config:e});this.$el.append(r.render().el)}}},{key:"render",value:function(){var t=this.pfx,e=this.model,n=this.$el,r=e.getId(),i=e.getName();return n.html(this.template({pfx:t,label:i})),this.renderProperties(),n.attr('class',"".concat(t,"sector ").concat(t,"sector__").concat(r," no-select")),this.updateOpen(),this}}]),n}(v.View);function ue(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,g.Z)(t);if(e){var i=(0,g.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,p.Z)(this,n)}}var fe=function(t){(0,d.Z)(n,t);var e=ue(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n,[{key:"initialize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.module,n=t.config,r=void 0===n?{}:n,i=this.collection;this.pfx=r.stylePrefix||'',this.ppfx=r.pStylePrefix||'',this.config=r,this.module=e,this.listenTo(i,'add',this.addTo),this.listenTo(i,'reset',this.render)}},{key:"remove",value:function(){var t=this;v.View.prototype.remove.apply(this,arguments),['config','module','em'].forEach((function(e){return t[e]={}}))}},{key:"addTo",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.addToCollection(t,null,n)}},{key:"addToCollection",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.config,i=this.el,o=e||i,a=new ce({model:t,config:r}).render().el;return(0,G.$Q)(o,a,n.at),a}},{key:"render",value:function(){var t=this,e=this.$el,n=this.pfx,r=this.ppfx;e.empty();var i=document.createDocumentFragment();return this.collection.each((function(e){return t.addToCollection(e,i)})),e.append(i),e.addClass("".concat(n,"sectors ").concat(r,"one-bg ").concat(r,"two-color")),this}}]),n}(v.View);function he(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function de(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};(0,o.bindAll)(this,'__clearStateTarget'),this.__initConfig(c,r);var i=this.config,a=i.em,s=i.pStylePrefix;s&&(i.stylePrefix=s+i.stylePrefix),this.builtIn=new oe,t=new zt([],{em:a,module:this}),e=new Jt([],de(de({},i),{},{module:this}));var u=new l.Z({targets:[]});this.model=u,this.__listenAdd(e,me),this.__listenRemove(e,ye),this.__listenUpdate(e,be);var f='component:toggled component:update:classes change:state change:device frame:resized selector:type',h=(0,o.debounce)((function(){return n.__upSel()}));u.listenTo(a,f,h),u.listenTo(a,'component:toggled',this.__clearStateTarget);var d=(0,o.debounce)((function(){n.__upProps(),n.__trgCustom()}));u.listenTo(a,'styleable:change undo redo',d);var p=(0,o.debounce)((function(){return n.__trgCustom()}));return u.listenTo(a,"".concat(Ce," ").concat(Se),p),u.on('change:lastTarget',(function(){return a.trigger(Se,n.getSelected())})),this},__upSel:function(){this.select(this.em.getSelectedAll())},__trgCustom:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.__ctn=this.__ctn||t.container,this.em.trigger(this.events.custom,{container:this.__ctn})},__trgEv:function(t){for(var e,n=arguments.length,r=new Array(n>1?n-1:0),i=1;i2&&void 0!==arguments[2]?arguments[2]:{},i=this.getSector(t);return i||(n.id=t,i=e.add(n,r)),i},getSector:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.where({id:t})[0];return!r&&n.warn&&this._logNoSector(t),r||null},getSectors:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e&&e.models?t.array?(0,r.Z)(e.models):e:[];return t.visible?n.filter((function(t){return t.isVisible()})):n},removeSector:function(t){return this.getSectors().remove(this.getSector(t,{warn:1}))},addProperty:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=this.getSector(t,{warn:1}),i=null;return r&&(i=r.addProperty(e,n)),i},getProperty:function(t,e){var n,r=this.getSector(t,{warn:1});return r&&(n=r.get('properties').filter((function(t){return t.get('property')===e||t.get('id')===e}))[0]),n||null},getProperties:function(t){var e=null,n=this.getSector(t,{warn:1});return n&&(e=n.get('properties')),e},removeProperty:function(t,e){var n=this.getProperties(t);return n?n.remove(this.getProperty(t,e)):null},select:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em,i=(0,o.isArray)(t)?t:[t],s=n.stylable,l=r.get('CssComposer'),c=[];i.filter(Boolean).forEach((function(t){var e=t;if((0,o.isString)(t)){var n=l.getRule(t)||l.setRule(t);!(0,o.isUndefined)(s)&&n.set({stylable:s}),e=n}c.push(e)}));var u=n.component||c.filter((function(t){return(0,a.isComponent)(t)})).reverse()[0];c=c.map((function(t){return e.getModelToStyle(t)}));var f=r.getState(),h=c.slice().reverse()[0],d=this.getParentRules(h,{state:f,component:u}),p=this.__getStateTarget();return r.skip((function(){var t;if(f&&null!=h&&null!==(t=h.getState)&&void 0!==t&&t.call(h)){var e=h.getStyle();p?p.setStyle(e):p=l.getAll().add({selectors:'gjs-selected',style:e,shallow:!0,important:!0})}else p&&(l.remove(p),p=null)})),this.model.set({targets:c,lastTarget:h,lastTargetParents:d,stateTarget:p,component:u}),this.__upProps(n),c},getSelected:function(){return this.model.get('lastTarget')||null},getSelectedAll:function(){return this.model.get('targets')},getSelectedParents:function(){return this.model.get('lastTargetParents')||[]},__getStateTarget:function(){return this.model.get('stateTarget')||null},addStyleTargets:function(t,e){this.getSelectedAll().map((function(n){return n.addStyle(t,e)}));var n=this.getSelected(),r=this.__getStateTarget();n&&(null==r||r.setStyle(n.getStyle(),e))},getBuiltIn:function(t){return this.builtIn.get(t)},getBuiltInAll:function(){return this.builtIn.props},addBuiltIn:function(t,e){return this.builtIn.add(t,e)},getModelToStyle:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.em,i=n.skipAdd;if(r&&null!==(e=t)&&void 0!==e&&e.toHTML){var o,a=r.getConfig(),s=r.get('UndoManager'),l=r.get('CssComposer'),c=r.get('SelectorManager'),u=c?c.getConfig():{},f=a.devicePreviewMode?'':r.get('state'),h=t.get('classes'),d=h.getStyleable(),p=d.length,g=!u.componentFirst||n.useClasses,v={noCount:1},m={state:f,addOpts:v};if(s.stop(),p&&g){var y=r.getCurrentMedia();(o=l.get(d,f,y))||i||(o=l.add(d,f,y,{},v))}else if(a.avoidInlineStyle){var b=t.getId();!(o=l.getIdRule(b,m))&&!i&&(o=l.setIdRule(b,{},m)),t.is('wrapper')&&o.set('wrapper',1,v)}o&&(t=o),s.start()}return t},getParentRules:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.state,r=e.component,i=this.em,a=[];if(i&&t){var s=r,l=i.get('CssComposer'),c=i.get('CodeManager').getGenerator('css'),u=t.toHTML?t:t.getComponent(),f={combination:!0,array:!0},h=[],d=[],p=[];u?(h=l.getRules("#".concat(u.getId())),p=(d=s?l.getRules(s.getSelectors().getFullName(f)):[]).concat(h)):(h=s?l.getRules("#".concat(s.getId())):[],d=l.getRules(t.getSelectors().getFullName(f)),p=h.concat(d));var g=p.filter((function(t){return(0,o.isUndefined)(n)?1:t.get('state')===n})).sort(c.sortRules).reverse();a=g.slice(g.indexOf(t)+1)}return a},addType:function(e,n){t.addType(e,n)},getType:function(e){return t.getType(e)},getTypes:function(){return t.getTypes()},createType:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.model,r=void 0===n?{}:n,i=e.view,o=void 0===i?{}:i,a=this.config,s=this.getType(t);if(s)return new s.view(de({model:new s.model(r),config:a},o))},render:function(){var t=this.config,r=this.em,i=n&&n.el;return(n=new fe({el:i,em:r,config:t,collection:e,module:this})).render().el},_logNoSector:function(t){var e=this.em;e&&e.logWarning("'".concat(t,"' sector not found"))},__upProps:function(t){var n=this,r=this.getSelected();if(r){var i=this.model.get('component'),o=this.getSelectedParents(),a=r.getStyle(),s=o.map((function(t){return{target:t,style:t.getStyle()}}));e.map((function(e){e.getProperties().map((function(e){n.__upProp(e,a,s,t)}))})),e.forEach((function(t){var n=t.getProperties();n.forEach((function(t){var n=t.__checkVisibility({target:r,component:i,sectors:e});t.set('visible',n)}));var o=n.some((function(t){return t.isVisible()}));t.set('visible',o)}))}},__upProp:function(t,e,n,r){var i=this,o=t.getName(),a=e[o],s=_e(a),l='stack'===t.getType(),c='composite'===t.getType(),u=de(de({},r),{},{__up:!0}),f=!c&&!l,h=l?t.__getLayersFromStyle(e):[],d=c?t.__getPropsFromStyle(e):{},p=s?a:null,g=null;if(l&&null===h||c&&null===d){var v=l?'__getLayersFromStyle':'__getPropsFromStyle',m=n.filter((function(e){return null!==t[v](e.style)}))[0];if(m){p=m.style[o],g=m.target;var y=t[v](m.style);l?h=y:d=y}}else if(!s){p=null;var b=n.filter((function(t){return _e(t.style[o])}))[0];b&&(p=b.style[o],g=b.target)}if(t.__setParentTarget(g),f&&t.__getFullValue()!==p&&t.upValue(p,u),l&&t.__setLayers(h||[]),c){var w=t.getProperties();if(t.isDetached()){var k=t.__getPropsFromStyle(e,{byName:!0})||{},x=n.map((function(e){return de(de({},e),{},{style:t.__getPropsFromStyle(e.style,{byName:!0})||{}})}));w.map((function(t){return i.__upProp(t,k,x,r)}))}else t.__setProperties(d||{},u),t.getProperties().map((function(t){return t.__setParentTarget(g)}))}},destroy:function(){[t,e].forEach((function(t){t.reset(),t.stopListening()})),n&&n.remove(),[t,e,n].forEach((function(t){return{}})),this.em={},this.config={},this.builtIn={},this.model={}}})}},4406:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>U,evAll:()=>V,evCustom:()=>z,evPfx:()=>H});var r=n(4942),i=n(9050),o=n(3821),a=n(6409);const s={stylePrefix:'trt-',appendTo:'',optionsTarget:[{value:!1},{value:'_blank'}]};var l=n(5671),c=n(3144),u=n(7326),f=n(9340),h=n(2963),d=n(1120),p=n(9384),g=n(885),v=n(2316),m=n.n(v),y=n(3168);function b(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function w(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};(0,l.Z)(this,n),t=e.call(this,i),(0,r.Z)((0,u.Z)(t),"events",{}),(0,r.Z)((0,u.Z)(t),"appendInput",!0);var o=i.config,a=void 0===o?{}:o,s=(0,u.Z)(t),c=s.model,f=s.eventCapture,h=c.target,d=c.attributes.type;t.config=a,t.em=a.em,t.pfx=a.stylePrefix||'',t.ppfx=a.pStylePrefix||'',t.target=h;var p=(0,u.Z)(t),v=p.ppfx;return t.clsField="".concat(v,"field ").concat(v,"field-").concat(d),[['change:value',t.onValueChange],['remove',t.removeView]].forEach((function(e){var n=(0,g.Z)(e,2),r=n[0],i=n[1];c.off(r,i),t.listenTo(c,r,i)})),c.view=(0,u.Z)(t),t.listenTo(c,'change:label',t.render),t.listenTo(c,'change:placeholder',t.rerender),t.events={},f.forEach((function(e){return t.events[e]='onChange'})),t.delegateEvents(),t.init(),t}return(0,c.Z)(n,[{key:"attributes",value:function(){return this.model.get('attributes')}},{key:"templateLabel",value:function(){var t=this.ppfx,e=this.getLabel();return"
").concat(e,"
")}},{key:"templateInput",value:function(){var t=this.clsField;return"
")}},{key:"getClbOpts",value:function(){return{component:this.target,trait:this.model,elInput:this.getInputElem()}}},{key:"removeView",value:function(){this.remove(),this.removed()}},{key:"init",value:function(){}},{key:"removed",value:function(){}},{key:"onRender",value:function(){}},{key:"onUpdate",value:function(){}},{key:"onEvent",value:function(){}},{key:"onChange",value:function(t){var e=this.getInputElem();e&&!(0,i.isUndefined)(e.value)&&this.model.set('value',e.value),this.onEvent(w(w({},this.getClbOpts()),{},{event:t}))}},{key:"getValueForTarget",value:function(){return this.model.get('value')}},{key:"setInputValue",value:function(t){var e=this.getInputElem();e&&(e.value=t)}},{key:"onValueChange",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(n.fromTarget)this.setInputValue(t.get('value')),this.postUpdate();else{var r=this.getValueForTarget();t.setTargetValue(r,n)}}},{key:"renderLabel",value:function(){var t=this.$el,e=this.target,n=this.getLabel(),r=this.templateLabel(e);this.createLabel&&(r=this.createLabel({label:n,component:e,trait:this})||''),t.find('[data-label]').append(r)}},{key:"getLabel",value:function(){var t=this.em,e=this.model.attributes,n=e.label,r=e.name;return t.t("traitManager.traits.labels.".concat(r))||(0,y.capitalize)(n||r).replace(/-/g,' ')}},{key:"getComponent",value:function(){return this.target}},{key:"getInputEl",value:function(){if(!this.$input){var t=this.em,e=this.model,n=e,r=e.attributes.name,o=n.get('placeholder')||n.get('default')||'',a=n.get('type')||'text',s=n.get('min'),l=n.get('max'),c=this.getModelValue(),u=x("")),f=t.t("traitManager.traits.attributes.".concat(r))||{};u.attr(f),(0,i.isUndefined)(c)||(n.set({value:c},{silent:!0}),u.prop('value',c)),s&&u.prop('min',s),l&&u.prop('max',l),this.$input=u}return this.$input.get(0)}},{key:"getInputElem",value:function(){var t=this.input,e=this.$input;return t||e&&e.get&&e.get(0)||this.getElInput()}},{key:"getModelValue",value:function(){var t,e=this.model,n=this.target,r=e.get('name');if(e.get('changeProp'))t=n.get(r);else{var o=n.get('attributes');t=e.get('value')||o[r]}return(0,i.isUndefined)(t)?'':t}},{key:"getElInput",value:function(){return this.elInput}},{key:"renderField",value:function(){var t=this.$el,e=this.appendInput,n=this.model,r=t.find('[data-input]'),o=r[r.length-1],a=n.el;a||(a=this.createInput?this.createInput(this.getClbOpts()):this.getInputEl()),(0,i.isString)(a)?(o.innerHTML=a,this.elInput=o.firstChild):(e?o.appendChild(a):o.insertBefore(a,o.firstChild),this.elInput=a),n.el=this.elInput}},{key:"hasLabel",value:function(){var t=this.model.attributes.label;return!this.noLabel&&!1!==t}},{key:"rerender",value:function(){this.model.el=null,this.render()}},{key:"postUpdate",value:function(){this.onUpdate(this.getClbOpts())}},{key:"render",value:function(){var t=this.$el,e=this.pfx,n=this.ppfx,r=this.model.attributes,o=r.type,a=r.id,s=this.hasLabel&&this.hasLabel(),l="".concat(e,"trait");this.$input=null;var c="
\n ").concat(s?"
"):'',"\n
\n ").concat(this.templateInput?(0,i.isFunction)(this.templateInput)?this.templateInput(this.getClbOpts()):this.templateInput:'',"\n
\n
");return t.empty().append(c),s&&this.renderLabel(),this.renderField(),this.el.className="".concat(l,"__wrp ").concat(l,"__wrp-").concat(a),this.postUpdate(),this.onRender(this.getClbOpts()),this}}]),n}(m().View);function C(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,d.Z)(t);if(e){var i=(0,d.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,h.Z)(this,n)}}O.prototype.eventCapture=['change'];var S=function(t){(0,f.Z)(n,t);var e=C(n);function n(){var t,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0;(0,l.Z)(this,n),t=e.call(this,i),(0,r.Z)((0,u.Z)(t),"reuseView",!0),t.itemsView=o;var a=i.config||{},s=a.stylePrefix||'',c=i.editor;return t.config=a,t.em=c,t.pfx=s,t.ppfx=a.pStylePrefix||'',t.className="".concat(s,"traits"),t.listenTo(c,'component:toggled',t.updatedCollection),t.updatedCollection(),t}return(0,c.Z)(n,[{key:"updatedCollection",value:function(){var t=this.ppfx,e=this.className,n=this.em.getSelected();this.el.className="".concat(e," ").concat(t,"one-bg ").concat(t,"two-color"),this.collection=n?n.get('traits'):[],this.render()}}]),n}(p.Z);function P(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,d.Z)(t);if(e){var i=(0,d.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,h.Z)(this,n)}}O.prototype.itemView=O;var _=m().$,T=function(t){(0,f.Z)(n,t);var e=P(n);function n(){var t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,l.Z)(this,n),(t=e.call(this,r)).listenTo(t.model,'change:options',t.rerender),t}return(0,c.Z)(n,[{key:"templateInput",value:function(){var t=this.ppfx,e=this.clsField;return"
\n
\n
\n
\n
\n
")}},{key:"getInputEl",value:function(){if(!this.$input){var t=this.model,e=this.em,n=t.get('name'),r=t.get('options')||[],o=[],a='',this.$input=_(a);var s=t.getTargetValue(),l=o.indexOf(s)>=0?s:t.get('default');!(0,i.isUndefined)(l)&&this.$input.val(l)}return this.$input.get(0)}}]),n}(O);function E(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,d.Z)(t);if(e){var i=(0,d.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,h.Z)(this,n)}}var j=function(t){(0,f.Z)(n,t);var e=E(n);function n(){var t;(0,l.Z)(this,n);for(var i=arguments.length,o=new Array(i),a=0;a\n \n ")}},{key:"onChange",value:function(){var t=this.getInputElem().checked;this.model.set('value',this.getCheckedValue(t))}},{key:"getCheckedValue",value:function(t){var e=t,n=this.model.attributes,r=n.valueTrue,o=n.valueFalse;return e&&!(0,i.isUndefined)(r)&&(e=r),e||(0,i.isUndefined)(o)||(e=o),e}},{key:"getInputEl",value:function(){for(var t=!this.$input,e=arguments.length,n=new Array(e),r=0;r").concat(a,"")}}]),n}(O);function F(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function B(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.__initConfig(s,n);var r=this.config,o=new a.Z;this.model=o;var l=this.em,c=r.pStylePrefix;this.types=B({},t),c&&(r.stylePrefix="".concat(c).concat(r.stylePrefix));var u=(0,i.debounce)((function(){return e.__upSel()}));o.listenTo(l,'component:toggled',u);var f=(0,i.debounce)((function(){return e.__onUp()}));return o.listenTo(l,'trait:update',f),this},__upSel:function(){this.select(this.em.getSelected())},__onUp:function(){this.select(this.getSelected())},select:function(t){var e=t?t.getTraits():[];this.model.set({component:t,traits:e}),this.__trgCustom()},getSelected:function(){return this.model.get('component')||null},getCurrent:function(){return this.model.get('traits')||[]},__trgCustom:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.__ctn=this.__ctn||t.container,this.em.trigger(this.events.custom,{container:this.__ctn})},postRender:function(){this.__appendTo()},getTraitsViewer:function(){return this.view},addType:function(t,e){var n=this.getType('text');this.types[t]=n.extend(e)},getType:function(t){return this.getTypes()[t]},getTypes:function(){return this.types},render:function(){var t=this.view,e=this.getConfig(),n=t&&t.el;return t=new S({el:n,collection:[],editor:e.em,config:e},this.getTypes()),this.view=t,t.el},destroy:function(){this.__destroy()}})}},9960:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>u});var r=n(2982),i=n(4942),o=n(3410),a=n.n(o),s=n(9050);function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function c(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};n=c(c({},o),h),t=n.em,this.em=t,n._disable&&(n=c(c({},n),{},{maximumStackLength:0}));var d=!0;return(e=new(a())(c({track:!0,register:[]},n))).changeUndoType('change',{condition:function(t){var e=t.get('_undo');if(e){var n=t.get('_undoexc');if((0,s.isArray)(n)&&u(t).some((function(t){return n.indexOf(t)>=0})))return!1;if((0,s.isBoolean)(e))return!0;if((0,s.isArray)(e)&&u(t).some((function(t){return e.indexOf(t)>=0})))return!0}return!1},on:function(t,e,n){!i&&(i=t.previousAttributes());var r=n||e||{};if(r.noUndo&&setTimeout((function(){i=null})),!l(r)){var o=t.toJSON({fromUndo:d}),a={object:t,before:i,after:o};if(i=null,!(0,s.isEmpty)(o))return a}}}),e.changeUndoType('add',{on:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!l(n)&&f.isRegistered(e))return{object:e,before:void 0,after:t,options:c(c({},n),{},{fromUndo:d})}}}),e.changeUndoType('remove',{on:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!l(n)&&f.isRegistered(e))return{object:e,before:t,after:void 0,options:c(c({},n),{},{fromUndo:d})}}}),e.changeUndoType('reset',{undo:function(t,e){t.reset(e,{fromUndo:d})},redo:function(t,e,n){t.reset(n,{fromUndo:d})},on:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!l(e)&&f.isRegistered(t))return{object:t,before:e.previousModels,after:(0,r.Z)(t.models),options:c(c({},e),{},{fromUndo:d})}}}),e.on('undo redo',(function(){t.trigger('change:canvasOffset'),t.getSelectedAll().map((function(t){return t.trigger('rerender:layer')}))})),['undo','redo'].forEach((function(n){return e.on(n,(function(){return t.trigger(n)}))})),this},postLoad:function(){n.trackSelection&&t&&this.add(t.get('selected'))},getConfig:function(){return n},add:function(t){return e.register(t),this},remove:function(t){return e.unregister(t),this},removeAll:function(){return e.unregisterAll(),this},start:function(){return e.startTracking(),this},stop:function(){return e.stopTracking(),this},undo:function(){var n=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return!t.isEditing()&&e.undo(n),this},undoAll:function(){return e.undoAll(),this},redo:function(){var n=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return!t.isEditing()&&e.redo(n),this},redoAll:function(){return e.redoAll(),this},hasUndo:function(){return e.isAvailable('undo')},hasRedo:function(){return e.isAvailable('redo')},isRegistered:function(t){return!!this.getInstance().objectRegistry.isRegistered(t)},getStack:function(){return e.stack},getStackGroup:function(){var t=[],e=[];return this.getStack().forEach((function(n){var r=n.get('magicFusionIndex');e.indexOf(r)<0&&(e.push(r),t.push(n))})),t},skip:function(t){this.stop(),t(),this.start()},getGroupedStack:function(){var t={},e=this.getStack();return e.forEach((function(e,n){var r=e.get('magicFusionIndex'),i=function(t,e){var n=t.attributes,r=n.type,i=n.after,o=n.before,a=n.object,s=n.options;return{index:e,type:r,after:i,before:o,object:a,options:void 0===s?{}:s}}(e,n);t[r]?t[r].push(i):t[r]=[i]})),Object.keys(t).map((function(e){var n=t[e];return{index:n[n.length-1].index,actions:n,labels:(0,s.unique)(n.reduce((function(t,e){var n,r=null===(n=e.options)||void 0===n?void 0:n.action;return r&&t.push(r),t}),[]))}}))},goToGroup:function(t){var e=this;if(t){var n=this.getPointer(),r=t.index-n;(0,s.times)(Math.abs(r),(function(){e[r<0?'undo':'redo'](!1)}))}},getPointer:function(){return this.getStack().pointer},clear:function(){return e.clear(),this},getInstance:function(){return e},destroy:function(){this.clear().removeAll(),[t,e,n,i].forEach((function(t){return{}})),this.em={}}}}},1981:(t,e,n)=>{"use strict";n.d(e,{Z:()=>u});var r=n(4942),i=n(5671),o=n(3144),a=n(9050),s=n(3168);function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function c(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return(0,i.Z)(this,t),this.opts={container:null,onStart:null,onDrag:null,onEnd:null,setPosition:null,getPosition:null,guidesStatic:null,guidesTarget:null,snapOffset:5,doc:0,scale:1},(0,a.bindAll)(this,'drag','stop','keyHandle','handleScroll'),this.setOptions(e),this.delta={x:0,y:0},this}return(0,o.Z)(t,[{key:"setOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.opts=c(c({},this.opts),t)}},{key:"toggleDrag",value:function(t){var e=this.getDocumentEl(),n=this.getContainerEl(),r=this.getWindowEl(),i=t?'on':'off',o={on:s.on,off:s.off};o[i](n,'mousemove dragover',this.drag),o[i](e,'mouseup dragend touchend',this.stop),o[i](e,'keydown',this.keyHandle),o[i](r,'scroll',this.handleScroll)}},{key:"handleScroll",value:function(){var t=this.lastScroll,e=this.delta,n=this.getScrollInfo(),r={x:n.x-t.x,y:n.y-t.y};this.move(e.x+r.x,e.y+r.y),this.lastScrollDiff=r}},{key:"start",value:function(t){var e=this.opts,n=e.onStart;this.toggleDrag(1),this.startPointer=this.getPointerPos(t),this.guidesStatic=(0,a.result)(e,'guidesStatic')||[],this.guidesTarget=(0,a.result)(e,'guidesTarget')||[],(0,a.isFunction)(n)&&n(t,this),this.startPosition=this.getStartPosition(),this.lastScrollDiff={x:0,y:0},this.globScrollDiff={x:0,y:0},this.drag(t)}},{key:"drag",value:function(t){var e=this,n=this.opts,r=this.lastScrollDiff,i=this.globScrollDiff,o=n.onDrag,s=this.startPointer,l=this.getPointerPos(t),u={x:i.x+r.x,y:i.y+r.y};this.globScrollDiff=u;var f={x:l.x-s.x+u.x,y:l.y-s.y+u.y};this.lastScrollDiff={x:0,y:0};var h=this.lockedAxis;'x'===(h=t.shiftKey?!h&&this.detectAxisLock(f.x,f.y):null)?f.x=s.x:'y'===h&&(f.y=s.y);var d=function(r){['x','y'].forEach((function(t){return r[t]=r[t]*(0,a.result)(n,'scale')})),e.delta=r,e.move(r.x,r.y),(0,a.isFunction)(o)&&o(t,e)},p=c({},f);if(this.currentPointer=l,this.lockedAxis=h,this.lastScroll=this.getScrollInfo(),d(f),this.guidesTarget.length){var g=this.snapGuides(p),v=g.newDelta,m=g.trgX,y=g.trgY;(m||y)&&d(v)}0===t.which&&this.stop(t)}},{key:"snapGuides",value:function(t){var e=this,n=t,r=this.trgX,i=this.trgY;return this.guidesTarget.forEach((function(n){n.x&&e.trgX||n.y&&e.trgY||(n.active=0,e.guidesStatic.forEach((function(o){if(!(n.y&&o.x||n.x&&o.y)){var s=n.y&&o.y,l=s?'y':'x',c=n[l],u=o[l],f=t[l],h=s?i:r;if(e.isPointIn(c,u)&&(0,a.isUndefined)(h)){var d=f-(c-u);e.setGuideLock(n,d)}}})))})),r=this.trgX,i=this.trgY,['x','y'].forEach((function(r){var i=r.toUpperCase(),o=e["trg".concat(i)];o&&!e.isPointIn(t[r],o.lock)&&(e.setGuideLock(o,null),o=null),o&&!(0,a.isUndefined)(o.lock)&&(n[r]=o.lock)})),{newDelta:n,trgX:this.trgX,trgY:this.trgY}}},{key:"isPointIn",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.offset,i=r||this.opts.snapOffset;return t>=e&&t<=e+i||t<=e&&t>=e-i}},{key:"setGuideLock",value:function(t,e){var n=(0,a.isUndefined)(t.x)?'Y':'X',r="trg".concat(n);return null!==e?(t.active=1,t.lock=e,this[r]=t):(delete t.active,delete t.lock,delete this[r]),t}},{key:"stop",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.delta,r=e.cancel,i=r?0:n.x,o=r?0:n.y;this.toggleDrag(),this.lockedAxis=null,this.move(i,o,1);var s=this.opts.onEnd;(0,a.isFunction)(s)&&s(t,this,{cancelled:r})}},{key:"keyHandle",value:function(t){(0,s.isEscKey)(t)&&this.stop(t,{cancel:1})}},{key:"move",value:function(t,e,n){var r=this.el,i=this.opts,o=this.startPosition;if(o){var s=i.setPosition,l=o.x+t,c=o.y+e;this.position={x:l,y:c,end:n},(0,a.isFunction)(s)&&s(this.position),r&&(r.style.left="".concat(l,"px"),r.style.top="".concat(c,"px"))}}},{key:"getContainerEl",value:function(){var t=this.opts.container;return t?[t]:this.getDocumentEl()}},{key:"getWindowEl",value:function(){return this.getContainerEl().map((function(t){var e=t.ownerDocument||t;return e.defaultView||e.parentWindow}))}},{key:"getDocumentEl",value:function(t){var e=this.opts.doc;if(t=t||this.el,!this.docs){var n=[document];t&&n.push(t.ownerDocument),e&&n.push(e),this.docs=n}return this.docs}},{key:"getPointerPos",value:function(t){var e=this.opts.getPointerPosition,n=(0,s.getPointerEvent)(t);return e?e(t):{x:n.clientX,y:n.clientY}}},{key:"getStartPosition",value:function(){var t=this.el,e=this.opts.getPosition,n={x:0,y:0};return(0,a.isFunction)(e)?n=e():t&&(n={x:parseFloat(t.style.left),y:parseFloat(t.style.top)}),n}},{key:"getScrollInfo",value:function(){var t=this.opts.doc,e=t&&t.body;return{y:e?e.scrollTop:0,x:e?e.scrollLeft:0}}},{key:"detectAxisLock",value:function(t,e){var n=t,r=e,i=Math.abs(n),o=Math.abs(r);return r>=i||r<=-i?'x':n>o||n<-o?'y':void 0}}]),t}()},290:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>pt});var r='undefined'!=typeof document?document:null,i='undefined'!=typeof window?window:null,o=Array.prototype,a=o.filter,s=o.indexOf,l=o.map,c=o.push,u=o.reverse,f=o.slice,h=o.splice,d=/^#[\w-]*$/,p=/^\.[\w-]*$/,g=/<.+>/,v=/^\w+$/;function m(t,e){return void 0===e&&(e=r),p.test(t)?e.getElementsByClassName(t.slice(1)):v.test(t)?e.getElementsByTagName(t):e.querySelectorAll(t)}function y(t,e){if(void 0===e&&(e=r),t){if(t.__cash)return t;var n=t;if(T(t)){if(e.__cash&&(e=e[0]),!(n=d.test(t)?e.getElementById(t.slice(1)):g.test(t)?ft(t):m(t,e)))return}else if(_(t))return this.ready(t);(n.nodeType||n===i)&&(n=[n]),this.length=n.length;for(var o=0,a=this.length;o=0})):n.value=i}))},w.clone=function(){return this.map((function(t,e){return e.cloneNode(!0)}))},w.detach=function(){return this.each((function(t,e){e.parentNode&&e.parentNode.removeChild(e)}))};var lt,ct=/^\s*<(\w+)[^>]*>/,ut=/^\s*<(\w+)\s*\/?>(?:<\/\1>)?\s*$/;function ft(t){if(function(){if(!lt){var t=r.createElement('table'),e=r.createElement('tr');lt={'*':r.createElement('div'),tr:r.createElement('tbody'),td:e,th:e,thead:t,tbody:t,tfoot:t}}}(),!T(t))return[];if(ut.test(t))return[r.createElement(RegExp.$1)];var e=ct.test(t)&&RegExp.$1,n=lt[e]||lt['*'];return n.innerHTML=t,b(n.childNodes).detach().get()}function ht(t,e,n){if(void 0!==e){var r=T(e);!r&&e.length?C(e,(function(e){return ht(t,e,n)})):C(t,r?function(t){t.insertAdjacentHTML(n?'afterbegin':'beforeend',e)}:function(t,r){return function(t,e,n){n?t.insertBefore(e,t.childNodes[0]):t.appendChild(e)}(t,r?e.cloneNode(!0):e,n)})}}b.parseHTML=ft,w.empty=function(){var t=this[0];if(t)for(;t.firstChild;)t.removeChild(t.firstChild);return this},w.append=function(){var t=this;return C(arguments,(function(e){ht(t,e)})),this},w.appendTo=function(t){return ht(b(t),this),this},w.html=function(t){if(void 0===t)return this[0]&&this[0].innerHTML;var e=t.nodeType?t[0].outerHTML:t;return this.each((function(t,n){n.innerHTML=e}))},w.insertAfter=function(t){var e=this;return b(t).each((function(t,n){var r=n.parentNode;e.each((function(e,i){r.insertBefore(t?i.cloneNode(!0):i,n.nextSibling)}))})),this},w.after=function(){var t=this;return C(u.apply(arguments),(function(e){u.apply(b(e).slice()).insertAfter(t)})),this},w.insertBefore=function(t){var e=this;return b(t).each((function(t,n){var r=n.parentNode;e.each((function(e,i){r.insertBefore(t?i.cloneNode(!0):i,n)}))})),this},w.before=function(){var t=this;return C(arguments,(function(e){b(e).insertBefore(t)})),this},w.prepend=function(){var t=this;return C(arguments,(function(e){ht(t,e,!0)})),this},w.prependTo=function(t){return ht(b(t),u.apply(this.slice()),!0),this},w.remove=function(){return this.detach().off()},w.replaceWith=function(t){var e=this;return this.each((function(n,r){var i=r.parentNode;if(i){var o=n?b(t).clone():b(t);if(!o[0])return e.remove(),!1;i.replaceChild(o[0],r),b(o[0]).after(o.slice(1))}}))},w.replaceAll=function(t){return b(t).replaceWith(this),this},w.text=function(t){return void 0===t?this[0]?this[0].textContent:'':this.each((function(e,n){n.textContent=t}))};var dt=r&&r.documentElement;w.offset=function(){var t=this[0];if(t){var e=t.getBoundingClientRect();return{top:e.top+i.pageYOffset-dt.clientTop,left:e.left+i.pageXOffset-dt.clientLeft}}},w.offsetParent=function(){return b(this[0]&&this[0].offsetParent)},w.position=function(){var t=this[0];if(t)return{left:t.offsetLeft,top:t.offsetTop}},w.children=function(t){var e=[];return this.each((function(t,n){c.apply(e,n.children)})),e=b(M(e)),t?e.filter((function(e,n){return P(n,t)})):e},w.contents=function(){var t=[];return this.each((function(e,n){c.apply(t,'IFRAME'===n.tagName?[n.contentDocument]:n.childNodes)})),b(t.length&&M(t))},w.find=function(t){for(var e=[],n=0,r=this.length;n{"use strict";n.d(e,{G1:()=>o,Mx:()=>a,L_:()=>s,sE:()=>l,FW:()=>c,pn:()=>u,dL:()=>f,$Q:()=>h,R3:()=>d,ut:()=>p,rw:()=>g,t3:()=>v,SJ:()=>m});var r=n(9050),i='attributes',o='transitionend oTransitionEnd transitionend webkitTransitionEnd',a=function(t){return t&&9===t.nodeType},s=function(t){var e=t&&t.parentNode;e&&e.removeChild(t)},l=function(t,e){return t.querySelectorAll(e)},c=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t&&t.setAttribute&&(0,r.each)(e,(function(e,n){return t.setAttribute(n,e)}))},u=function(t){return t&&!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)},f=function(t,e){t.parentNode.replaceChild(e,t)},h=function(t,e,n){var i=t.childNodes,o=i.length,a=(0,r.isUndefined)(n)?o:n;(0,r.isString)(e)&&(t.insertAdjacentHTML('beforeEnd',e),e=t.lastChild,t.removeChild(e)),a>=o?t.appendChild(e):t.insertBefore(e,i[a])},d=function(t,e){return h(t,e)},p=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'',n=arguments.length>2?arguments[2]:void 0,i=document.createElement(t);return e&&(0,r.each)(e,(function(t,e){return i.setAttribute(e,t)})),n&&((0,r.isString)(n)?i.innerHTML=n:i.appendChild(n)),i},g=function(t){return document.createTextNode(t)},v=function(t,e){var n,r=t.type;try{n=new window[e](r,t)}catch(t){(n=document.createEvent(e)).initEvent(r,!0,!0)}return n._parentEvent=t,0===r.indexOf('key')&&(n.keyCodeVal=t.keyCode,['keyCode','which'].forEach((function(t){Object.defineProperty(n,t,{get:function(){return this.keyCodeVal}})}))),n},m=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=Array.isArray(e)?e:[e];n.forEach((function(e){var n=e.tag||'div',o=e[i]||{},a=document.createElement(n);(0,r.each)(o,(function(t,e){a.setAttribute(e,t)})),t.appendChild(a)}))}},7644:(t,e,n)=>{"use strict";n.d(e,{Z:()=>m});var r=n(1002);const i=function(t){var e=this.constructor;return this.then((function(n){return e.resolve(t()).then((function(){return n}))}),(function(n){return e.resolve(t()).then((function(){return e.reject(n)}))}))};const o=function(t){return new this((function(e,n){if(!t||void 0===t.length)return n(new TypeError((0,r.Z)(t)+' '+t+' is not iterable(cannot read property Symbol(Symbol.iterator))'));var i=Array.prototype.slice.call(t);if(0===i.length)return e([]);var o=i.length;function a(t,n){if(n&&('object'===(0,r.Z)(n)||'function'==typeof n)){var s=n.then;if('function'==typeof s)return void s.call(n,(function(e){a(t,e)}),(function(n){i[t]={status:'rejected',reason:n},0==--o&&e(i)}))}i[t]={status:'fulfilled',value:n},0==--o&&e(i)}for(var s=0;s{"use strict";n.d(e,{Z:()=>i});var r=n(3168);function i(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i{"use strict";n.r(e),n.d(e,{default:()=>C});var r=n(4942),i=n(1981),o=n(2316),a=n.n(o),s=n(9050),l=n(3168);function c(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function u(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},s=this.em,c=this.itemSel,u=this.containerSel,f=this.plh,h=this.getContainerEl(a.container),d=this.getDocuments(t);this.dropModel=null,this.target=null,this.prevTarget=null,this.moved=0,t&&!this.matches(t,"".concat(c,", ").concat(u))&&(t=this.closest(t,c)),this.sourceEl=t,f||(this.plh=this.createPlaceholder(),h.appendChild(this.plh)),t&&((o=this.getSourceModel(t))&&o.set&&o.set('status','freezed'),this.srcModel=o),(0,l.on)(h,'mousemove dragover',this.onMove),(0,l.on)(d,'mouseup dragend touchend',this.endMove),(0,l.on)(d,'keydown',this.rollback),this.onStart({sorter:this,target:o,parent:o&&(null===(e=(n=o).parent)||void 0===e?void 0:e.call(n)),index:o&&(null===(r=(i=o).index)||void 0===r?void 0:r.call(i))}),null==s||s.clearSelection(),this.toggleSortCursor(1),null==s||s.trigger('sorter:drag:start',t,o)},getTargetModel:function(t){var e=t||this.target;return f(e).data('model')},getSourceModel:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.target,i=n.avoidChildren,o=void 0===i?1:i,a=this.em,s=this.sourceEl,l=t||s,c=this.dropModel,h=this.dropContent,d=function(t){return t&&r&&t.opt&&t.opt.avoidChildren&&e.isTextableActive(t,r)};if(h&&a){if(d(c)&&(c=null),!c){var p=a.get('DomComponents').getComponents(),g={avoidChildren:o,avoidStore:1,avoidUpdateStyle:1},v=p.add(h,u(u({},g),{},{temporary:1}));if(c=(c=p.remove(v,g))instanceof Array?c[0]:c,this.dropModel=c,d(c))return this.getSourceModel(l,{target:r,avoidChildren:0})}return c}return l&&f(l).data('model')},selectTargetModel:function(t,e){if(!(t instanceof a().Collection||e&&e===t)){var n=this.targetModel;n&&n!==this.srcModel&&n.set('status',''),t&&t.set&&(t.set('status','selected-parent'),this.targetModel=t)}},onMove:function(t){var e=t,n=this.em,r=this.onMoveClb,i=this.plh,o=this.customTarget;this.moved=1;var a=i.style.display;a&&'none'!==a||(i.style.display='block');var l=this.offset(this.el);this.elT=this.wmargin?Math.abs(l.top):l.top,this.elL=this.wmargin?Math.abs(l.left):l.left;var c=t.pageY-this.elT+this.el.scrollTop,u=t.pageX-this.elL+this.el.scrollLeft;if(this.canvasRelative&&n){var h=n.get('Canvas').getMouseRelativeCanvas(t,{noScroll:1});u=h.x,c=h.y}this.rX=u,this.rY=c,this.eventMove=t;var d=this.getSourceModel(),p=o?o({sorter:this,event:t}):t.target,g=this.dimsFromTarget(p,u,c),v=this.target,m=v&&this.getTargetModel(v);if(this.selectTargetModel(m,d),m||(i.style.display='none'),v){this.lastDims=g;var y=this.findPosition(g,u,c);this.isTextableActive(d,m)?(this.activeTextModel=m,i.style.display='none',this.lastPos=y,this.updateTextViewCursorPosition(e)):(this.disableTextable(),this.activeTextModel=null,this.lastPos&&this.lastPos.index==y.index&&this.lastPos.method==y.method||(this.movePlaceholder(this.plh,g,y,this.prevTargetDim),this.$plh||(this.$plh=f(this.plh)),this.canvasRelative||(this.offTop&&this.$plh.css('top','+='+this.offTop+'px'),this.offLeft&&this.$plh.css('left','+='+this.offLeft+'px')),this.lastPos=y)),(0,s.isFunction)(r)&&r({event:t,target:d,parent:m,index:y.index+('after'==y.method?1:0)}),n&&n.trigger('sorter:drag',{target:v,targetModel:m,sourceModel:d,dims:g,pos:y,x:u,y:c})}},isTextableActive:function(t,e){return t&&t.get&&t.get('textable')&&e&&e.is('text')},disableTextable:function(){var t=this.activeTextModel;t&&t.getView().disableEditing(),this.setContentEditable(t,!1)},isInFlow:function(t,e){if(!t)return!1;e=e||document.body;var n=t;return n.offsetHeight,!!this.styleInFlow(n,e)},styleInFlow:function(t,e){if(!(0,l.isTextNode)(t)){var n=t.style||{},r=f(t),i=e&&f(e);if(!n.overflow||'visible'===n.overflow){var o=r.css('float');if(!(o&&'none'!==o||i&&'flex'==i.css('display')&&'column'!==i.css('flex-direction'))){switch(n.position){case'static':case'relative':case'':break;default:return}switch(t.tagName){case'TR':case'TBODY':case'THEAD':case'TFOOT':return!0}switch(r.css('display')){case'block':case'list-item':case'table':case'flex':return!0}}}}},validTarget:function(t,e){var n=this.getTargetModel(t),r=this.getSourceModel(e,{target:n}),i={valid:!0,src:e=r&&r.view&&r.view.el,srcModel:r,trg:t=n&&n.view&&n.view.el,trgModel:n};if(!e||!t)return i.valid=!1,i;var o=r.get('draggable');if((0,s.isFunction)(o)){var l=o(r,n);i.dragInfo=l,i.draggable=l,o=l}else o=o instanceof Array?o.join(', '):o,i.dragInfo=o,o=(0,s.isString)(o)?this.matches(t,o):o,i.draggable=o;var c=n.get('droppable');if((0,s.isFunction)(c)){var u=c(r,n);i.droppable=u,i.dropInfo=u,c=u}else c=(c=c instanceof a().Collection?1:c)instanceof Array?c.join(', '):c,i.dropInfo=c,c=(0,s.isString)(c)?this.matches(e,c):c,c=o&&this.isTextableActive(r,n)?1:c,i.droppable=c;return c&&o||(i.valid=!1),i},dimsFromTarget:function(t,e,n){var r=this.em,i=[];if(!t)return i;if(this.matches(t,"".concat(this.itemSel,", ").concat(this.containerSel))||(t=this.closest(t,this.itemSel)),this.draggable instanceof Array&&(t=this.closest(t,this.draggable.join(','))),!t)return i;if(this.prevTarget&&this.prevTarget!=t&&(this.prevTarget=null),!this.prevTarget){this.targetP=this.closest(t,this.containerSel);var o=this.validTarget(t);if(r&&r.trigger('sorter:drag:validation',o),!o.valid&&this.targetP)return this.dimsFromTarget(this.targetP,e,n);this.prevTarget=t,this.prevTargetDim=this.getDim(t),this.cacheDimsP=this.getChildrenDim(this.targetP),this.cacheDims=this.getChildrenDim(t)}if(this.prevTarget==t&&(i=this.cacheDims),this.target=this.prevTarget,this.nearBorders(this.prevTargetDim,e,n)||!this.nested&&!this.cacheDims.length){var a=this.targetP;a&&this.validTarget(a).valid&&(i=this.cacheDimsP,this.target=a)}return this.lastPos=null,i},getTargetFromEl:function(t){var e,n=t,r=this.targetPrev,i=this.em,o=this.containerSel,a=this.itemSel;if(this.matches(n,"".concat(a,", ").concat(o))||(n=this.closest(n,a)),this.draggable instanceof Array&&(n=this.closest(n,this.draggable.join(','))),r&&r!=n&&(this.targetPrev=''),!this.targetPrev){e=this.closest(n,o);var s=this.validTarget(n);if(i&&i.trigger('sorter:drag:validation',s),!s.valid&&e)return this.getTargetFromEl(e);this.targetPrev=n}return this.nearElBorders(n)&&(e=this.closest(n,o))&&this.validTarget(e).valid&&(n=e),n},nearElBorders:function(t){var e=t.getBoundingClientRect(),n=t.ownerDocument.body,r=this.getCurrentPos(),i=r.x,o=r.y,a=e.top+n.scrollTop,s=e.left+n.scrollLeft,l=e.width,c=e.height;if(oa+c-10||is+l-10)return 1},getCurrentPos:function(){var t=this.eventMove;return{x:t.pageX||0,y:t.pageY||0}},getDim:function(t){var e,n,r,i,o=this.em,a=this.canvasRelative,s=o&&o.get('Canvas'),l=s?s.getElementOffsets(t):{};if(a&&o){var c=s.getElementPos(t,{noScroll:1});e=c.top,n=c.left,r=c.height,i=c.width}else{var u=this.offset(t);e=this.relative?t.offsetTop:u.top-(this.wmargin?-1:1)*this.elT,n=this.relative?t.offsetLeft:u.left-(this.wmargin?-1:1)*this.elL,r=t.offsetHeight,i=t.offsetWidth}return{top:e,left:n,height:r,width:i,offsets:l}},getChildrenDim:function(t){var e=this,n=[];if(!t)return n;var r=this.getTargetModel(t);if(r&&r.view&&!this.ignoreViewChildren){var i=r.getCurrentView?r.getCurrentView():r.view;t=i.getChildrenContainer()}return(0,s.each)(t.children,(function(r,i){var o=(0,l.getModel)(r,f),a=o&&o.index?o.index():i;if((0,l.isTextNode)(r)||e.matches(r,e.itemSel)){var s=e.getDim(r),c=e.direction;c='v'==c||'h'!=c&&e.isInFlow(r,t),s.dir=c,s.el=r,s.indexEl=a,n.push(s)}})),n},nearBorders:function(t,e,n){var r=0,i=this.borderOffset,o=e||0,a=n||0,s=t.top,l=t.left,c=t.height,u=t.width;return(s+i>a||a>s+c-i||l+i>o||o>l+u-i)&&(r=1),!!r},findPosition:function(t,e,n){for(var r={index:0,indexEl:0,method:'before'},i=0,o=0,a=0,s=0,l=0,c=0,u=0,f=0,h=t.length;fo||a&&l>=a||i&&g+mx&&(w.at=d-1))}r&&(k?(delete w.at,i=v.getView().insertComponent(r,w)):i=g.add(r,w)),this.dropContent=null,this.prevTarget=null}else if(o){var C=p.dropInfo||(null==v?void 0:v.get('droppable')),S=p.dragInfo||(null==m?void 0:m.get('draggable'));!g&&h.push('Target collection not found'),!b&&C&&h.push("Target is not droppable, accepts [".concat(C,"]")),!y&&S&&h.push("Component not draggable, acceptable by [".concat(S,"]")),o.logWarning('Invalid target position',{errors:h,model:m,context:'sorter',target:v})}return null==o||o.trigger('sorter:drag:end',{targetCollection:g,modelToDrop:r,warns:h,validResult:p,dst:t,srcEl:u}),i},rollback:function(t){(0,l.off)(this.getDocuments(),'keydown',this.rollback),27==(t.which||t.keyCode)&&(this.moved=0,this.endMove())}});var p=n(5671),g=n(3144);function v(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function m(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return(0,p.Z)(this,t),this.setOptions(e),(0,s.bindAll)(this,'handleKeyDown','handleMouseDown','move','stop'),this}return(0,g.Z)(t,[{key:"getConfig",value:function(){return this.opts}},{key:"setOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.opts=(0,s.defaults)(t,y),this.setup()}},{key:"setup",value:function(){var t=this.opts,e=t.prefix||'',n=t.appendTo||document.body,r=this.container;for(r||((r=document.createElement('div')).className="".concat(e,"resizer-c"),n.appendChild(r),this.container=r);r.firstChild;)r.removeChild(r.firstChild);var i={};for(var o in['tl','tc','tr','cl','cr','bl','bc','br'].forEach((function(e){return i[e]=t[e]?function(t,e){var n=e.prefix||'',r=document.createElement('i');return r.className=n+'resizer-h '+n+'resizer-h-'+t,r.setAttribute('data-'+n+'handler',t),r}(e,t):''})),i){var a=i[o];a&&r.appendChild(a)}this.handlers=i,this.mousePosFetcher=t.mousePosFetcher,this.updateTarget=t.updateTarget,this.posFetcher=t.posFetcher,this.onStart=t.onStart,this.onMove=t.onMove,this.onEnd=t.onEnd,this.onUpdateContainer=t.onUpdateContainer}},{key:"toggleFrames",value:function(t){if(this.opts.silentFrames){var e=document.querySelectorAll('iframe');(0,s.each)(e,(function(e){return e.style.pointerEvents=t?'none':''}))}}},{key:"isHandler",value:function(t){var e=this.handlers;for(var n in e)if(e[n]===t)return!0;return!1}},{key:"getFocusedEl",value:function(){return this.el}},{key:"getParentEl",value:function(){return this.el.parentElement}},{key:"getDocumentEl",value:function(){return[this.el.ownerDocument,document]}},{key:"getElementPos",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.posFetcher||'';return n?n(t,e):b(t)}},{key:"focus",value:function(t){t&&t===this.el||(this.el=t,this.updateContainer({forceShow:1}),(0,l.on)(this.getDocumentEl(),'mousedown',this.handleMouseDown))}},{key:"blur",value:function(){this.container.style.display='none',this.el&&((0,l.off)(this.getDocumentEl(),'mousedown',this.handleMouseDown),this.el=null)}},{key:"start",value:function(t){if(0===t.button){t.preventDefault(),t.stopPropagation();var e=this.el,n=this.getParentEl(),r=this.opts||{},i='data-'+r.prefix+'handler',o=this.getElementPos(e,{target:'el'}),a=this.getElementPos(n);this.handlerAttr=t.target.getAttribute(i),this.clickedHandler=t.target,this.startDim={t:o.top,l:o.left,w:o.width,h:o.height},this.rectDim={t:o.top,l:o.left,w:o.width,h:o.height},this.startPos={x:t.clientX,y:t.clientY},this.parentDim={t:a.top,l:a.left,w:a.width,h:a.height};var c=this.getDocumentEl();(0,l.on)(c,'mousemove',this.move),(0,l.on)(c,'keydown',this.handleKeyDown),(0,l.on)(c,'mouseup',this.stop),(0,s.isFunction)(this.onStart)&&this.onStart(t,{docs:c,config:r,el:e,resizer:this}),this.toggleFrames(1),this.move(t)}}},{key:"move",value:function(t){var e=this.onMove,n=this.mousePosFetcher,r=n?n(t):{x:t.clientX,y:t.clientY};this.currentPos=r,this.delta={x:r.x-this.startPos.x,y:r.y-this.startPos.y},this.keys={shift:t.shiftKey,ctrl:t.ctrlKey,alt:t.altKey},this.rectDim=this.calc(this),this.updateRect(0),e&&e(t),0===t.which&&this.stop(t)}},{key:"stop",value:function(t){var e=this.opts,n=this.getDocumentEl();(0,l.off)(n,'mousemove',this.move),(0,l.off)(n,'keydown',this.handleKeyDown),(0,l.off)(n,'mouseup',this.stop),this.updateRect(1),this.toggleFrames(),(0,s.isFunction)(this.onEnd)&&this.onEnd(t,{docs:n,config:e})}},{key:"updateRect",value:function(t){var e=this.el,n=this.opts,r=this.rectDim,i=this.updateTarget,o=this.getSelectedHandler(),a=n.unitHeight,l=n.unitWidth,c=n.keyWidth,u=n.keyHeight;if((0,s.isFunction)(i))i(e,r,{store:t,selectedHandler:o,resizer:this,config:n});else{var f=e.style;f[c]=r.w+l,f[u]=r.h+a}this.updateContainer()}},{key:"updateContainer",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.opts,n=this.container,r=this.el,i=n.style;!e.avoidContainerUpdate&&r&&t.forceShow&&(i.display='block'),this.onUpdateContainer({el:n,resizer:this,opts:m(m({},e),t)})}},{key:"getSelectedHandler",value:function(){var t=this.handlers;if(this.selectedHandler)for(var e in t)if(t[e]===this.selectedHandler)return e}},{key:"handleKeyDown",value:function(t){27===t.keyCode&&(this.rectDim=this.startDim,this.stop(t))}},{key:"handleMouseDown",value:function(t){var e=t.target;this.isHandler(e)?(this.selectedHandler=e,this.start(t)):e!==this.el&&(this.selectedHandler='',this.blur())}},{key:"calc",value:function(t){var e,n=this.opts||{},r=n.step,i=this.startDim,o=n.minDim,a=n.maxDim,s=t.delta.x,c=t.delta.y,u=this.parentDim.w,f=this.parentDim.h,h=this.opts.unitWidth,d=this.opts.unitHeight,p='%'===h?i.w/100*u:i.w,g='%'===d?i.h/100*f:i.h,v={t:0,l:0,w:p,h:g};if(t){var m=t.handlerAttr;~m.indexOf('r')&&(e='%'===h?(0,l.normalizeFloat)((p+s*r)/u*100,.01):(0,l.normalizeFloat)(p+s*r,r),e=Math.max(o,e),a&&(e=Math.min(a,e)),v.w=e),~m.indexOf('b')&&(e='%'===d?(0,l.normalizeFloat)((g+c*r)/f*100,.01):(0,l.normalizeFloat)(g+c*r,r),e=Math.max(o,e),a&&(e=Math.min(a,e)),v.h=e),~m.indexOf('l')&&(e='%'===h?(0,l.normalizeFloat)((p-s*r)/u*100,.01):(0,l.normalizeFloat)(p-s*r,r),e=Math.max(o,e),a&&(e=Math.min(a,e)),v.w=e),~m.indexOf('t')&&(e='%'===d?(0,l.normalizeFloat)((g-c*r)/f*100,.01):(0,l.normalizeFloat)(g-c*r,r),e=Math.max(o,e),a&&(e=Math.min(a,e)),v.h=e);var y=n.ratioDefault?!t.keys.shift:t.keys.shift;if(m.indexOf('c')<0&&y){var b=i.w/i.h;v.w/v.h>b?v.h=Math.round(v.w/b):v.w=Math.round(v.h*b)}return~m.indexOf('l')&&(v.l=i.w-v.w),~m.indexOf('t')&&(v.t=i.h-v.h),v}}}]),t}();const k={init:function(t){return new w(t)}};function x(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function O(t){for(var e=1;e{"use strict";n.r(e),n.d(e,{isDef:()=>c,hasWin:()=>u,getGlobal:()=>f,toLowerCase:()=>h,getUiClass:()=>g,isCommentNode:()=>_,isTaggableNode:()=>T,find:()=>E,escape:()=>j,deepMerge:()=>D,on:()=>y,off:()=>b,hasDnd:()=>C,upFirst:()=>k,matches:()=>p,getModel:()=>R,getElRect:()=>A,camelCase:()=>x,isTextNode:()=>P,getKeyCode:()=>Z,getKeyChar:()=>L,isEscKey:()=>N,isEnterKey:()=>I,getElement:()=>S,shallowDiff:()=>m,normalizeFloat:()=>O,getPointerEvent:()=>M,getUnitFromValue:()=>w,capitalize:()=>V,getViewEl:()=>U,setViewEl:()=>W,appendStyles:()=>v,isObject:()=>F,isEmptyObj:()=>B,isComponent:()=>H,createId:()=>$,isRule:()=>z});var r=n(1002),i=n(4942),o=n(2982),a=n(9050);function s(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function l(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},r=(0,a.isArray)(e)?(0,o.Z)(e):[e];if(r.length){var i=r.shift();if(i&&(!n.unique||!document.querySelector("link[href=\"".concat(i,"\"]")))){var s=document,l=s.head,c=document.createElement('link');c.href=i,c.rel='stylesheet',n.prepand?l.insertBefore(c,l.firstChild):l.appendChild(c)}t(r)}},m=function(t,e){var n={},r=(0,a.keys)(e);for(var i in t)if(t.hasOwnProperty(i)){var o=t[i],s=e[i];r.indexOf(i)>=0?o!==s&&(n[i]=s):n[i]=null}for(var l in e)e.hasOwnProperty(l)&&(0,a.isUndefined)(t[l])&&(n[l]=e[l]);return n},y=function(t,e,n,r){e=e.split(/\s+/),t=t instanceof Array?t:[t];for(var i=function(i){t.forEach((function(t){return t&&t.addEventListener(e[i],n,r)}))},o=0;o1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=0;if(isNaN(t))return n;if(t=parseFloat(t),Math.floor(t)!==t){var i=e.toString().split('.')[1];r=i?i.length:0}return r?parseFloat(t.toFixed(r)):t},C=function(t){return'draggable'in document.createElement('i')&&(t?t.get('Config').nativeDnD:1)},S=function(t){return(0,a.isElement)(t)||P(t)?t:t&&t.getEl?t.getEl():void 0},P=function(t){return t&&3===t.nodeType},_=function(t){return t&&8===t.nodeType},T=function(t){return t&&!P(t)&&!_(t)},E=function(t,e){var n=null;return t.some((function(r,i){return e(r,i,t)?(n=r,1):0})),n},j=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'';return"".concat(t).replace(/&/g,'&').replace(//g,'>').replace(/"/g,'"').replace(/'/g,''').replace(/`/g,'`')},D=function t(){for(var e=l({},arguments.length<=0?void 0:arguments[0]),n=1;n0&&void 0!==arguments[0]?arguments[0]:16,e='',n='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',r=n.length,i=0;i{var r,i,o;i=[n(9050),n(2316)],r=function(t,e){var n=Array.prototype.slice;function r(t,e,n){return n.length<=4?t.call(e,n[0],n[1],n[2],n[3]):t.apply(e,n)}function i(t,e){return n.call(t,e)}function o(e,n){return null!=e&&(t.isArray(n)||(n=i(arguments,1)),t.all(n,(function(t){return t in e})))}var a=function(){var e=!1,n=-1;function r(){n++,e=!0,t.defer((function(){e=!1}))}return function(){return e||r(),n}}();function s(){this.registeredObjects=[],this.cidIndexes=[]}function l(e,n,r,i){for(var o,a=0,s=n.length;at.maximumStackLength&&(t.shift(),t.pointer--)}}}s.prototype={isRegistered:function(e){return e&&e.cid?this.registeredObjects[e.cid]:t.contains(this.registeredObjects,e)},register:function(t){return!this.isRegistered(t)&&(t&&t.cid?(this.registeredObjects[t.cid]=t,this.cidIndexes.push(t.cid)):this.registeredObjects.push(t),!0)},unregister:function(e){if(this.isRegistered(e)){if(e&&e.cid)delete this.registeredObjects[e.cid],this.cidIndexes.splice(t.indexOf(this.cidIndexes,e.cid),1);else{var n=t.indexOf(this.registeredObjects,e);this.registeredObjects.splice(n,1)}return!0}return!1},get:function(){return t.map(this.cidIndexes,(function(t){return this.registeredObjects[t]}),this).concat(this.registeredObjects)}};var d={add:{undo:function(t,e,n,r){t.remove(n,r)},redo:function(t,e,n,r){r.index&&(r.at=r.index),t.add(n,r)},on:function(e,n,r){return{object:n,before:void 0,after:e,options:t.clone(r)}}},remove:{undo:function(t,e,n,r){"index"in r&&(r.at=r.index),t.add(e,r)},redo:function(t,e,n,r){t.remove(e,r)},on:function(e,n,r){return{object:n,before:e,after:void 0,options:t.clone(r)}}},change:{undo:function(e,n,r,i){t.isEmpty(n)?t.each(t.keys(r),e.unset,e):(e.set(n),i&&i.unsetData&&i.unsetData.before&&i.unsetData.before.length&&t.each(i.unsetData.before,e.unset,e))},redo:function(e,n,r,i){t.isEmpty(r)?t.each(t.keys(n),e.unset,e):(e.set(r),i&&i.unsetData&&i.unsetData.after&&i.unsetData.after.length&&t.each(i.unsetData.after,e.unset,e))},on:function(e,n){var r=e.changedAttributes(),i=t.keys(r),o=t.pick(e.previousAttributes(),i),a=t.keys(o),s=(n||(n={})).unsetData={after:[],before:[]};return i.length!=a.length&&(i.length>a.length?t.each(i,(function(t){t in o||s.before.push(t)}),this):t.each(a,(function(t){t in r||s.after.push(t)}))),{object:e,before:o,after:r,options:t.clone(n)}}},reset:{undo:function(t,e,n){t.reset(e)},redo:function(t,e,n){t.reset(n)},on:function(e,n){return{object:e,before:n.previousModels,after:t.clone(e.models)}}}};function p(){}function g(e,n,r,i){if("object"==typeof n)return t.each(n,(function(t,n){2===e?g(e,t,r,i):g(e,n,t,r)}));switch(e){case 0:o(r,"undo","redo","on")&&t.all(t.pick(r,"undo","redo","on"),t.isFunction)&&(i[n]=r);break;case 1:i[n]&&t.isObject(r)&&(i[n]=t.extend({},i[n],r));break;case 2:delete i[n]}return this}p.prototype=d;var v=e.Model.extend({defaults:{type:null,object:null,before:null,after:null,magicFusionIndex:null},undo:function(t){c("undo",this.attributes)},redo:function(t){c("redo",this.attributes)}}),m=e.Collection.extend({model:v,pointer:-1,track:!1,isCurrentlyUndoRedoing:!1,maximumStackLength:1/0,setMaxLength:function(t){this.maximumStackLength=t}}),y=e.Model.extend({defaults:{maximumStackLength:1/0,track:!1},initialize:function(e){this.stack=new m,this.objectRegistry=new s,this.undoTypes=new p,this.stack.setMaxLength(this.get("maximumStackLength")),this.on("change:maximumStackLength",(function(t,e){this.stack.setMaxLength(e)}),this),e&&e.track&&this.startTracking(),e&&e.register&&(t.isArray(e.register)||t.isArguments(e.register)?r(this.register,this,e.register):this.register(e.register))},startTracking:function(){this.set("track",!0),this.stack.track=!0},stopTracking:function(){this.set("track",!1),this.stack.track=!1},isTracking:function(){return this.get("track")},_addToStack:function(t){h(this.stack,t,i(arguments,1),this.undoTypes)},register:function(){l("on",arguments,this._addToStack,this)},unregister:function(){l("off",arguments,this._addToStack,this)},unregisterAll:function(){r(this.unregister,this,this.objectRegistry.get())},undo:function(t){u("undo",this,this.stack,t)},undoAll:function(){u("undo",this,this.stack,!1,!0)},redo:function(t){u("redo",this,this.stack,t)},redoAll:function(){u("redo",this,this.stack,!1,!0)},isAvailable:function(t){var e=this.stack,n=e.length;switch(t){case"undo":return n>0&&e.pointer>-1;case"redo":return n>0&&e.pointer{var r,i,o;o='object'==typeof self&&self.self===self&&self||'object'==typeof n.g&&n.g.global===n.g&&n.g,r=[n(9050),n(290),e],i=function(t,e,n){o.Backbone=function(t,e,n,r){var i=t.Backbone,o=Array.prototype.slice;e.VERSION='1.3.3',e.$=r,e.noConflict=function(){return t.Backbone=i,this},e.emulateHTTP=!1,e.emulateJSON=!1;var a=function(t,e,r){switch(t){case 1:return function(){return n[e](this[r])};case 2:return function(t){return n[e](this[r],t)};case 3:return function(t,i){return n[e](this[r],l(t,this),i)};case 4:return function(t,i,o){return n[e](this[r],l(t,this),i,o)};default:return function(){var t=o.call(arguments);return t.unshift(this[r]),n[e].apply(n,t)}}},s=function(t,e,r){n.each(e,(function(e,i){n[i]&&(t.prototype[i]=a(e,i,r))}))},l=function(t,e){return n.isFunction(t)?t:n.isObject(t)&&!e._isModel(t)?c(t):n.isString(t)?function(e){return e.get(t)}:t},c=function(t){var e=n.matches(t);return function(t){return e(t.attributes)}},u=e.Events={},f=/\s+/,h=function(t,e,r,i,o){var a,s=0;if(r&&'object'==typeof r){void 0!==i&&'context'in o&&void 0===o.context&&(o.context=i);for(a=n.keys(r);sthis.length&&(i=this.length),i<0&&(i+=this.length+1);var o,a,s=[],l=[],c=[],u=[],f={},h=e.add,d=e.merge,p=e.remove,g=!1,v=this.comparator&&null==i&&!1!==e.sort,m=n.isString(this.comparator)?this.comparator:null;for(a=0;a7),this._useHashChange=this._wantsHashChange&&this._hasHashChange,this._wantsPushState=!!this.options.pushState,this._hasPushState=!(!this.history||!this.history.pushState),this._usePushState=this._wantsPushState&&this._hasPushState,this.fragment=this.getFragment(),this.root=('/'+this.root+'/').replace(Z,'/'),this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){var e=this.root.slice(0,-1)||'/';return this.location.replace(e+'#'+this.getPath()),!0}this._hasPushState&&this.atRoot()&&this.navigate(this.getHash(),{replace:!0})}if(!this._hasHashChange&&this._wantsHashChange&&!this._usePushState){this.iframe=document.createElement('iframe'),this.iframe.src='javascript:0',this.iframe.style.display='none',this.iframe.tabIndex=-1;var r=document.body,i=r.insertBefore(this.iframe,r.firstChild).contentWindow;i.document.open(),i.document.close(),i.location.hash='#'+this.fragment}var o=window.addEventListener||function(t,e){return attachEvent('on'+t,e)};if(this._usePushState?o('popstate',this.checkUrl,!1):this._useHashChange&&!this.iframe?o('hashchange',this.checkUrl,!1):this._wantsHashChange&&(this._checkUrlInterval=setInterval(this.checkUrl,this.interval)),!this.options.silent)return this.loadUrl()},stop:function(){var t=window.removeEventListener||function(t,e){return detachEvent('on'+t,e)};this._usePushState?t('popstate',this.checkUrl,!1):this._useHashChange&&!this.iframe&&t('hashchange',this.checkUrl,!1),this.iframe&&(document.body.removeChild(this.iframe),this.iframe=null),this._checkUrlInterval&&clearInterval(this._checkUrlInterval),A.started=!1},route:function(t,e){this.handlers.unshift({route:t,callback:e})},checkUrl:function(t){var e=this.getFragment();if(e===this.fragment&&this.iframe&&(e=this.getHash(this.iframe.contentWindow)),e===this.fragment)return!1;this.iframe&&this.navigate(e),this.loadUrl()},loadUrl:function(t){return!!this.matchRoot()&&(t=this.fragment=this.getFragment(t),n.some(this.handlers,(function(e){if(e.route.test(t))return e.callback(t),!0})))},navigate:function(t,e){if(!A.started)return!1;e&&!0!==e||(e={trigger:!!e}),t=this.getFragment(t||'');var n=this.root;''!==t&&'?'!==t.charAt(0)||(n=n.slice(0,-1)||'/');var r=n+t;if(t=this.decodeFragment(t.replace(L,'')),this.fragment!==t){if(this.fragment=t,this._usePushState)this.history[e.replace?'replaceState':'pushState']({},document.title,r);else{if(!this._wantsHashChange)return this.location.assign(r);if(this._updateHash(this.location,t,e.replace),this.iframe&&t!==this.getHash(this.iframe.contentWindow)){var i=this.iframe.contentWindow;e.replace||(i.document.open(),i.document.close()),this._updateHash(i.location,t,e.replace)}}return e.trigger?this.loadUrl(t):void 0}},_updateHash:function(t,e,n){if(n){var r=t.href.replace(/(javascript:|#).*$/,'');t.replace(r+'#'+e)}else t.hash='#'+e}}),e.history=new A;var N=function(t,e){var r,i=this;return r=t&&n.has(t,'constructor')?t.constructor:function(){return i.apply(this,arguments)},n.extend(r,i,e),r.prototype=n.create(i.prototype,t),r.prototype.constructor=r,r.__super__=i.prototype,r};b.extend=w.extend=T.extend=C.extend=A.extend=N;var I=function(){throw new Error('A "url" property or function must be specified')},F=function(t,e){var n=e.error;e.error=function(r){n&&n.call(e.context,t,r,e),t.trigger('error',t,r,e)}};return e}(o,n,t,e)}.apply(e,r),void 0===i||(t.exports=i)},9210:(t,e,n)=>{!function(t){t.extendMode("css",{commentStart:"/*",commentEnd:"*/",newlineAfterToken:function(t,e){return/^[;{}]$/.test(e)}}),t.extendMode("javascript",{commentStart:"/*",commentEnd:"*/",newlineAfterToken:function(t,e,n,r){return this.jsonMode?/^[\[,{]$/.test(e)||/^}/.test(n):(";"!=e||!r.lexical||")"!=r.lexical.type)&&/^[;{}]$/.test(e)&&!/^;/.test(n)}});var e=/^(a|abbr|acronym|area|base|bdo|big|br|button|caption|cite|code|col|colgroup|dd|del|dfn|em|frame|hr|iframe|img|input|ins|kbd|label|legend|link|map|object|optgroup|option|param|q|samp|script|select|small|span|strong|sub|sup|textarea|tt|var)$/;t.extendMode("xml",{commentStart:"\x3c!--",commentEnd:"--\x3e",newlineAfterToken:function(t,n,r,i){var o=!1;return"html"==this.configuration&&(o=!!i.context&&e.test(i.context.tagName)),!o&&("tag"==t&&/>$/.test(n)&&i.context||/^-1&&s>-1&&s>a&&(t=t.substr(0,a)+t.substring(a+o.commentStart.length,s)+t.substr(s+o.commentEnd.length)),i.replaceRange(t,n,r)}}))})),t.defineExtension("autoIndentRange",(function(t,e){var n=this;this.operation((function(){for(var r=t.line;r<=e.line;r++)n.indentLine(r,"smart")}))})),t.defineExtension("autoFormatRange",(function(e,n){var r=this,i=r.getMode(),o=r.getRange(e,n).split("\n"),a=t.copyState(i,r.getTokenAt(e).state),s=r.getOption("tabSize"),l="",c=0,u=0===e.ch;function f(){l+="\n",u=!0,++c}for(var h=0;h2),v=/Android/.test(t),m=g||v||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(t),y=g||/Mac/.test(e),b=/\bCrOS\b/.test(t),w=/win/i.test(e),k=f&&t.match(/Version\/(\d*\.\d*)/);k&&(k=Number(k[1])),k&&k>=15&&(f=!1,l=!0);var x=y&&(c||f&&(null==k||k<12.11)),O=n||a&&s>=9;function C(t){return new RegExp("(^|\\s)"+t+"(?:$|\\s)\\s*")}var S,P=function(t,e){var n=t.className,r=C(e).exec(n);if(r){var i=n.slice(r.index+r[0].length);t.className=n.slice(0,r.index)+(i?r[1]+i:"")}};function _(t){for(var e=t.childNodes.length;e>0;--e)t.removeChild(t.firstChild);return t}function T(t,e){return _(t).appendChild(e)}function E(t,e,n,r){var i=document.createElement(t);if(n&&(i.className=n),r&&(i.style.cssText=r),"string"==typeof e)i.appendChild(document.createTextNode(e));else if(e)for(var o=0;o=e)return a+(e-o);a+=s-o,a+=n-a%n,o=s+1}}g?Z=function(t){t.selectionStart=0,t.selectionEnd=t.value.length}:a&&(Z=function(t){try{t.select()}catch(t){}});var F=function(){this.id=null,this.f=null,this.time=0,this.handler=L(this.onTimeout,this)};function B(t,e){for(var n=0;n=e)return r+Math.min(a,e-i);if(i+=o-r,r=o+1,(i+=n-i%n)>=e)return r}}var q=[""];function G(t){for(;q.length<=t;)q.push(K(q)+" ");return q[t]}function K(t){return t[t.length-1]}function Y(t,e){for(var n=[],r=0;r"€"&&(t.toUpperCase()!=t.toLowerCase()||tt.test(t))}function nt(t,e){return e?!!(e.source.indexOf("\\w")>-1&&et(t))||e.test(t):et(t)}function rt(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e])return!1;return!0}var it=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function ot(t){return t.charCodeAt(0)>=768&&it.test(t)}function at(t,e,n){for(;(n<0?e>0:en?-1:1;;){if(e==n)return e;var i=(e+n)/2,o=r<0?Math.ceil(i):Math.floor(i);if(o==e)return t(o)?e:n;t(o)?n=o:e=o+r}}function lt(t,e,n,r){if(!t)return r(e,n,"ltr",0);for(var i=!1,o=0;oe||e==n&&a.to==e)&&(r(Math.max(a.from,e),Math.min(a.to,n),1==a.level?"rtl":"ltr",o),i=!0)}i||r(e,n,"ltr")}var ct=null;function ut(t,e,n){var r;ct=null;for(var i=0;ie)return i;o.to==e&&(o.from!=o.to&&"before"==n?r=i:ct=i),o.from==e&&(o.from!=o.to&&"before"!=n?r=i:ct=i)}return null!=r?r:ct}var ft=function(){var t="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",e="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";function n(n){return n<=247?t.charAt(n):1424<=n&&n<=1524?"R":1536<=n&&n<=1785?e.charAt(n-1536):1774<=n&&n<=2220?"r":8192<=n&&n<=8203?"w":8204==n?"b":"L"}var r=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,i=/[stwN]/,o=/[LRr]/,a=/[Lb1n]/,s=/[1n]/;function l(t,e,n){this.level=t,this.from=e,this.to=n}return function(t,e){var c="ltr"==e?"L":"R";if(0==t.length||"ltr"==e&&!r.test(t))return!1;for(var u=t.length,f=[],h=0;h-1&&(r[e]=i.slice(0,o).concat(i.slice(o+1)))}}}function mt(t,e){var n=gt(t,e);if(n.length)for(var r=Array.prototype.slice.call(arguments,2),i=0;i0}function kt(t){t.prototype.on=function(t,e){pt(this,t,e)},t.prototype.off=function(t,e){vt(this,t,e)}}function xt(t){t.preventDefault?t.preventDefault():t.returnValue=!1}function Ot(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0}function Ct(t){return null!=t.defaultPrevented?t.defaultPrevented:0==t.returnValue}function St(t){xt(t),Ot(t)}function Pt(t){return t.target||t.srcElement}function _t(t){var e=t.which;return null==e&&(1&t.button?e=1:2&t.button?e=3:4&t.button&&(e=2)),y&&t.ctrlKey&&1==e&&(e=3),e}var Tt,Et,jt=function(){if(a&&s<9)return!1;var t=E('div');return"draggable"in t||"dragDrop"in t}();function Dt(t){if(null==Tt){var e=E("span","​");T(t,E("span",[e,document.createTextNode("x")])),0!=t.firstChild.offsetHeight&&(Tt=e.offsetWidth<=1&&e.offsetHeight>2&&!(a&&s<8))}var n=Tt?E("span","​"):E("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return n.setAttribute("cm-text",""),n}function Rt(t){if(null!=Et)return Et;var e=T(t,document.createTextNode("AخA")),n=S(e,0,1).getBoundingClientRect(),r=S(e,1,2).getBoundingClientRect();return _(t),!(!n||n.left==n.right)&&(Et=r.right-n.right<3)}var At,Mt=3!="\n\nb".split(/\n/).length?function(t){for(var e=0,n=[],r=t.length;e<=r;){var i=t.indexOf("\n",e);-1==i&&(i=t.length);var o=t.slice(e,"\r"==t.charAt(i-1)?i-1:i),a=o.indexOf("\r");-1!=a?(n.push(o.slice(0,a)),e+=a+1):(n.push(o),e=i+1)}return n}:function(t){return t.split(/\r\n?|\n/)},Zt=window.getSelection?function(t){try{return t.selectionStart!=t.selectionEnd}catch(t){return!1}}:function(t){var e;try{e=t.ownerDocument.selection.createRange()}catch(t){}return!(!e||e.parentElement()!=t)&&0!=e.compareEndPoints("StartToEnd",e)},Lt="oncopy"in(At=E("div"))||(At.setAttribute("oncopy","return;"),"function"==typeof At.oncopy),Nt=null;function It(t){if(null!=Nt)return Nt;var e=T(t,E("span","x")),n=e.getBoundingClientRect(),r=S(e,0,1).getBoundingClientRect();return Nt=Math.abs(n.left-r.left)>1}var Ft={},Bt={};function Vt(t,e){arguments.length>2&&(e.dependencies=Array.prototype.slice.call(arguments,2)),Ft[t]=e}function Ht(t,e){Bt[t]=e}function zt(t){if("string"==typeof t&&Bt.hasOwnProperty(t))t=Bt[t];else if(t&&"string"==typeof t.name&&Bt.hasOwnProperty(t.name)){var e=Bt[t.name];"string"==typeof e&&(e={name:e}),(t=Q(e,t)).name=e.name}else{if("string"==typeof t&&/^[\w\-]+\/[\w\-]+\+xml$/.test(t))return zt("application/xml");if("string"==typeof t&&/^[\w\-]+\/[\w\-]+\+json$/.test(t))return zt("application/json")}return"string"==typeof t?{name:t}:t||{name:"null"}}function Ut(t,e){e=zt(e);var n=Ft[e.name];if(!n)return Ut(t,"text/plain");var r=n(t,e);if(Wt.hasOwnProperty(e.name)){var i=Wt[e.name];for(var o in i)i.hasOwnProperty(o)&&(r.hasOwnProperty(o)&&(r["_"+o]=r[o]),r[o]=i[o])}if(r.name=e.name,e.helperType&&(r.helperType=e.helperType),e.modeProps)for(var a in e.modeProps)r[a]=e.modeProps[a];return r}var Wt={};function $t(t,e){N(e,Wt.hasOwnProperty(t)?Wt[t]:Wt[t]={})}function qt(t,e){if(!0===e)return e;if(t.copyState)return t.copyState(e);var n={};for(var r in e){var i=e[r];i instanceof Array&&(i=i.concat([])),n[r]=i}return n}function Gt(t,e){for(var n;t.innerMode&&(n=t.innerMode(e))&&n.mode!=t;)e=n.state,t=n.mode;return n||{mode:t,state:e}}function Kt(t,e,n){return!t.startState||t.startState(e,n)}var Yt=function(t,e,n){this.pos=this.start=0,this.string=t,this.tabSize=e||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=n};function Xt(t,e){if((e-=t.first)<0||e>=t.size)throw new Error("There is no line "+(e+t.first)+" in the document.");for(var n=t;!n.lines;)for(var r=0;;++r){var i=n.children[r],o=i.chunkSize();if(e=t.first&&en?oe(n,Xt(t,n).text.length):de(e,Xt(t,e.line).text.length)}function de(t,e){var n=t.ch;return null==n||n>e?oe(t.line,e):n<0?oe(t.line,0):t}function pe(t,e){for(var n=[],r=0;r=this.string.length},Yt.prototype.sol=function(){return this.pos==this.lineStart},Yt.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},Yt.prototype.next=function(){if(this.pose},Yt.prototype.eatSpace=function(){for(var t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>t},Yt.prototype.skipToEnd=function(){this.pos=this.string.length},Yt.prototype.skipTo=function(t){var e=this.string.indexOf(t,this.pos);if(e>-1)return this.pos=e,!0},Yt.prototype.backUp=function(t){this.pos-=t},Yt.prototype.column=function(){return this.lastColumnPos0?null:(r&&!1!==e&&(this.pos+=r[0].length),r)}var i=function(t){return n?t.toLowerCase():t};if(i(this.string.substr(this.pos,t.length))==i(t))return!1!==e&&(this.pos+=t.length),!0},Yt.prototype.current=function(){return this.string.slice(this.start,this.pos)},Yt.prototype.hideFirstChars=function(t,e){this.lineStart+=t;try{return e()}finally{this.lineStart-=t}},Yt.prototype.lookAhead=function(t){var e=this.lineOracle;return e&&e.lookAhead(t)},Yt.prototype.baseToken=function(){var t=this.lineOracle;return t&&t.baseToken(this.pos)};var ge=function(t,e){this.state=t,this.lookAhead=e},ve=function(t,e,n,r){this.state=e,this.doc=t,this.line=n,this.maxLookAhead=r||0,this.baseTokens=null,this.baseTokenPos=1};function me(t,e,n,r){var i=[t.state.modeGen],o={};Pe(t,e.text,t.doc.mode,n,(function(t,e){return i.push(t,e)}),o,r);for(var a=n.state,s=function(r){n.baseTokens=i;var s=t.state.overlays[r],l=1,c=0;n.state=!0,Pe(t,e.text,s.mode,n,(function(t,e){for(var n=l;ct&&i.splice(l,1,t,i[l+1],r),l+=2,c=Math.min(t,r)}if(e)if(s.opaque)i.splice(n,l-n,t,"overlay "+e),l=n+2;else for(;nt.options.maxHighlightLength&&qt(t.doc.mode,r.state),o=me(t,e,r);i&&(r.state=i),e.stateAfter=r.save(!i),e.styles=o.styles,o.classes?e.styleClasses=o.classes:e.styleClasses&&(e.styleClasses=null),n===t.doc.highlightFrontier&&(t.doc.modeFrontier=Math.max(t.doc.modeFrontier,++t.doc.highlightFrontier))}return e.styles}function be(t,e,n){var r=t.doc,i=t.display;if(!r.mode.startState)return new ve(r,!0,e);var o=_e(t,e,n),a=o>r.first&&Xt(r,o-1).stateAfter,s=a?ve.fromSaved(r,a,o):new ve(r,Kt(r.mode),o);return r.iter(o,e,(function(n){we(t,n.text,s);var r=s.line;n.stateAfter=r==e-1||r%5==0||r>=i.viewFrom&&re.start)return o}throw new Error("Mode "+t.name+" failed to advance stream.")}ve.prototype.lookAhead=function(t){var e=this.doc.getLine(this.line+t);return null!=e&&t>this.maxLookAhead&&(this.maxLookAhead=t),e},ve.prototype.baseToken=function(t){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=t;)this.baseTokenPos+=2;var e=this.baseTokens[this.baseTokenPos+1];return{type:e&&e.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-t}},ve.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},ve.fromSaved=function(t,e,n){return e instanceof ge?new ve(t,qt(t.mode,e.state),n,e.lookAhead):new ve(t,qt(t.mode,e),n)},ve.prototype.save=function(t){var e=!1!==t?qt(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new ge(e,this.maxLookAhead):e};var Oe=function(t,e,n){this.start=t.start,this.end=t.pos,this.string=t.current(),this.type=e||null,this.state=n};function Ce(t,e,n,r){var i,o,a=t.doc,s=a.mode,l=Xt(a,(e=he(a,e)).line),c=be(t,e.line,n),u=new Yt(l.text,t.options.tabSize,c);for(r&&(o=[]);(r||u.post.options.maxHighlightLength?(s=!1,a&&we(t,e,r,f.pos),f.pos=e.length,l=null):l=Se(xe(n,f,r.state,h),o),h){var d=h[0].name;d&&(l="m-"+(l?d+" "+l:d))}if(!s||u!=l){for(;ca;--s){if(s<=o.first)return o.first;var l=Xt(o,s-1),c=l.stateAfter;if(c&&(!n||s+(c instanceof ge?c.lookAhead:0)<=o.modeFrontier))return s;var u=I(l.text,null,t.options.tabSize);(null==i||r>u)&&(i=s-1,r=u)}return i}function Te(t,e){if(t.modeFrontier=Math.min(t.modeFrontier,e),!(t.highlightFrontiern;r--){var i=Xt(t,r).stateAfter;if(i&&(!(i instanceof ge)||r+i.lookAhead=e:o.to>e);(r||(r=[])).push(new Ae(a,o.from,s?null:o.to))}}return r}function Ie(t,e,n){var r;if(t)for(var i=0;i=e:o.to>e)||o.from==e&&"bookmark"==a.type&&(!n||o.marker.insertLeft)){var s=null==o.from||(a.inclusiveLeft?o.from<=e:o.from0&&s)for(var b=0;b0)){var u=[l,1],f=ae(c.from,s.from),h=ae(c.to,s.to);(f<0||!a.inclusiveLeft&&!f)&&u.push({from:c.from,to:s.from}),(h>0||!a.inclusiveRight&&!h)&&u.push({from:s.to,to:c.to}),i.splice.apply(i,u),l+=u.length-3}}return i}function He(t){var e=t.markedSpans;if(e){for(var n=0;ne)&&(!n||$e(n,o.marker)<0)&&(n=o.marker)}return n}function Xe(t,e,n,r,i){var o=Xt(t,e),a=je&&o.markedSpans;if(a)for(var s=0;s=0&&f<=0||u<=0&&f>=0)&&(u<=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?ae(c.to,n)>=0:ae(c.to,n)>0)||u>=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?ae(c.from,r)<=0:ae(c.from,r)<0)))return!0}}}function Je(t){for(var e;e=Ge(t);)t=e.find(-1,!0).line;return t}function Qe(t){for(var e;e=Ke(t);)t=e.find(1,!0).line;return t}function tn(t){for(var e,n;e=Ke(t);)t=e.find(1,!0).line,(n||(n=[])).push(t);return n}function en(t,e){var n=Xt(t,e),r=Je(n);return n==r?e:ee(r)}function nn(t,e){if(e>t.lastLine())return e;var n,r=Xt(t,e);if(!rn(t,r))return e;for(;n=Ke(r);)r=n.find(1,!0).line;return ee(r)+1}function rn(t,e){var n=je&&e.markedSpans;if(n)for(var r=void 0,i=0;ie.maxLineLength&&(e.maxLineLength=n,e.maxLine=t)}))}var cn=function(t,e,n){this.text=t,ze(this,e),this.height=n?n(this):1};function un(t,e,n,r){t.text=e,t.stateAfter&&(t.stateAfter=null),t.styles&&(t.styles=null),null!=t.order&&(t.order=null),He(t),ze(t,n);var i=r?r(t):1;i!=t.height&&te(t,i)}function fn(t){t.parent=null,He(t)}cn.prototype.lineNo=function(){return ee(this)},kt(cn);var hn={},dn={};function pn(t,e){if(!t||/^\s*$/.test(t))return null;var n=e.addModeClass?dn:hn;return n[t]||(n[t]=t.replace(/\S+/g,"cm-$&"))}function gn(t,e){var n=j("span",null,null,l?"padding-right: .1px":null),r={pre:j("pre",[n],"CodeMirror-line"),content:n,col:0,pos:0,cm:t,trailingSpace:!1,splitSpaces:t.getOption("lineWrapping")};e.measure={};for(var i=0;i<=(e.rest?e.rest.length:0);i++){var o=i?e.rest[i-1]:e.line,a=void 0;r.pos=0,r.addToken=mn,Rt(t.display.measure)&&(a=ht(o,t.doc.direction))&&(r.addToken=bn(r.addToken,a)),r.map=[],kn(o,r,ye(t,o,e!=t.display.externalMeasured&&ee(o))),o.styleClasses&&(o.styleClasses.bgClass&&(r.bgClass=M(o.styleClasses.bgClass,r.bgClass||"")),o.styleClasses.textClass&&(r.textClass=M(o.styleClasses.textClass,r.textClass||""))),0==r.map.length&&r.map.push(0,0,r.content.appendChild(Dt(t.display.measure))),0==i?(e.measure.map=r.map,e.measure.cache={}):((e.measure.maps||(e.measure.maps=[])).push(r.map),(e.measure.caches||(e.measure.caches=[])).push({}))}if(l){var s=r.content.lastChild;(/\bcm-tab\b/.test(s.className)||s.querySelector&&s.querySelector(".cm-tab"))&&(r.content.className="cm-tab-wrap-hack")}return mt(t,"renderLine",t,e.line,r.pre),r.pre.className&&(r.textClass=M(r.pre.className,r.textClass||"")),r}function vn(t){var e=E("span","•","cm-invalidchar");return e.title="\\u"+t.charCodeAt(0).toString(16),e.setAttribute("aria-label",e.title),e}function mn(t,e,n,r,i,o,l){if(e){var c,u=t.splitSpaces?yn(e,t.trailingSpace):e,f=t.cm.state.specialChars,h=!1;if(f.test(e)){c=document.createDocumentFragment();for(var d=0;;){f.lastIndex=d;var p=f.exec(e),g=p?p.index-d:e.length-d;if(g){var v=document.createTextNode(u.slice(d,d+g));a&&s<9?c.appendChild(E("span",[v])):c.appendChild(v),t.map.push(t.pos,t.pos+g,v),t.col+=g,t.pos+=g}if(!p)break;d+=g+1;var m=void 0;if("\t"==p[0]){var y=t.cm.options.tabSize,b=y-t.col%y;(m=c.appendChild(E("span",G(b),"cm-tab"))).setAttribute("role","presentation"),m.setAttribute("cm-text","\t"),t.col+=b}else"\r"==p[0]||"\n"==p[0]?((m=c.appendChild(E("span","\r"==p[0]?"␍":"␤","cm-invalidchar"))).setAttribute("cm-text",p[0]),t.col+=1):((m=t.cm.options.specialCharPlaceholder(p[0])).setAttribute("cm-text",p[0]),a&&s<9?c.appendChild(E("span",[m])):c.appendChild(m),t.col+=1);t.map.push(t.pos,t.pos+1,m),t.pos++}}else t.col+=e.length,c=document.createTextNode(u),t.map.push(t.pos,t.pos+e.length,c),a&&s<9&&(h=!0),t.pos+=e.length;if(t.trailingSpace=32==u.charCodeAt(e.length-1),n||r||i||h||o||l){var w=n||"";r&&(w+=r),i&&(w+=i);var k=E("span",[c],w,o);if(l)for(var x in l)l.hasOwnProperty(x)&&"style"!=x&&"class"!=x&&k.setAttribute(x,l[x]);return t.content.appendChild(k)}t.content.appendChild(c)}}function yn(t,e){if(t.length>1&&!/ /.test(t))return t;for(var n=e,r="",i=0;ic&&f.from<=c);h++);if(f.to>=u)return t(n,r,i,o,a,s,l);t(n,r.slice(0,f.to-c),i,o,null,s,l),o=null,r=r.slice(f.to-c),c=f.to}}}function wn(t,e,n,r){var i=!r&&n.widgetNode;i&&t.map.push(t.pos,t.pos+e,i),!r&&t.cm.display.input.needsContentAttribute&&(i||(i=t.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",n.id)),i&&(t.cm.display.input.setUneditable(i),t.content.appendChild(i)),t.pos+=e,t.trailingSpace=!1}function kn(t,e,n){var r=t.markedSpans,i=t.text,o=0;if(r)for(var a,s,l,c,u,f,h,d=i.length,p=0,g=1,v="",m=0;;){if(m==p){l=c=u=s="",h=null,f=null,m=1/0;for(var y=[],b=void 0,w=0;wp||x.collapsed&&k.to==p&&k.from==p)){if(null!=k.to&&k.to!=p&&m>k.to&&(m=k.to,c=""),x.className&&(l+=" "+x.className),x.css&&(s=(s?s+";":"")+x.css),x.startStyle&&k.from==p&&(u+=" "+x.startStyle),x.endStyle&&k.to==m&&(b||(b=[])).push(x.endStyle,k.to),x.title&&((h||(h={})).title=x.title),x.attributes)for(var O in x.attributes)(h||(h={}))[O]=x.attributes[O];x.collapsed&&(!f||$e(f.marker,x)<0)&&(f=k)}else k.from>p&&m>k.from&&(m=k.from)}if(b)for(var C=0;C=d)break;for(var P=Math.min(d,m);;){if(v){var _=p+v.length;if(!f){var T=_>P?v.slice(0,P-p):v;e.addToken(e,T,a?a+l:l,u,p+T.length==m?c:"",s,h)}if(_>=P){v=v.slice(P-p),p=P;break}p=_,u=""}v=i.slice(o,o=n[g++]),a=pn(n[g++],e.cm.options)}}else for(var E=1;E2&&o.push((l.bottom+c.top)/2-n.top)}}o.push(n.bottom-n.top)}}function Jn(t,e,n){if(t.line==e)return{map:t.measure.map,cache:t.measure.cache};for(var r=0;rn)return{map:t.measure.maps[i],cache:t.measure.caches[i],before:!0}}function Qn(t,e){var n=ee(e=Je(e)),r=t.display.externalMeasured=new xn(t.doc,e,n);r.lineN=n;var i=r.built=gn(t,r);return r.text=i.pre,T(t.display.lineMeasure,i.pre),r}function tr(t,e,n,r){return rr(t,nr(t,e),n,r)}function er(t,e){if(e>=t.display.viewFrom&&e=n.lineN&&ee)&&(i=(o=l-s)-1,e>=l&&(a="right")),null!=i){if(r=t[c+2],s==l&&n==(r.insertLeft?"left":"right")&&(a=n),"left"==n&&0==i)for(;c&&t[c-2]==t[c-3]&&t[c-1].insertLeft;)r=t[2+(c-=3)],a="left";if("right"==n&&i==l-s)for(;c=0&&(n=t[i]).left==n.right;i--);return n}function lr(t,e,n,r){var i,o=ar(e.map,n,r),l=o.node,c=o.start,u=o.end,f=o.collapse;if(3==l.nodeType){for(var h=0;h<4;h++){for(;c&&ot(e.line.text.charAt(o.coverStart+c));)--c;for(;o.coverStart+u0&&(f=r="right"),i=t.options.lineWrapping&&(d=l.getClientRects()).length>1?d["right"==r?d.length-1:0]:l.getBoundingClientRect()}if(a&&s<9&&!c&&(!i||!i.left&&!i.right)){var p=l.parentNode.getClientRects()[0];i=p?{left:p.left,right:p.left+jr(t.display),top:p.top,bottom:p.bottom}:or}for(var g=i.top-e.rect.top,v=i.bottom-e.rect.top,m=(g+v)/2,y=e.view.measure.heights,b=0;b=r.text.length?(l=r.text.length,c="before"):l<=0&&(l=0,c="after"),!s)return a("before"==c?l-1:l,"before"==c);function u(t,e,n){return a(n?t-1:t,1==s[e].level!=n)}var f=ut(s,l,c),h=ct,d=u(l,f,"before"==c);return null!=h&&(d.other=u(l,h,"before"!=c)),d}function wr(t,e){var n=0;e=he(t.doc,e),t.options.lineWrapping||(n=jr(t.display)*e.ch);var r=Xt(t.doc,e.line),i=an(r)+Wn(t.display);return{left:n,right:n,top:i,bottom:i+r.height}}function kr(t,e,n,r,i){var o=oe(t,e,n);return o.xRel=i,r&&(o.outside=r),o}function xr(t,e,n){var r=t.doc;if((n+=t.display.viewOffset)<0)return kr(r.first,0,null,-1,-1);var i=ne(r,n),o=r.first+r.size-1;if(i>o)return kr(r.first+r.size-1,Xt(r,o).text.length,null,1,1);e<0&&(e=0);for(var a=Xt(r,i);;){var s=Pr(t,a,i,e,n),l=Ye(a,s.ch+(s.xRel>0||s.outside>0?1:0));if(!l)return s;var c=l.find(1);if(c.line==i)return c;a=Xt(r,i=c.line)}}function Or(t,e,n,r){r-=gr(e);var i=e.text.length,o=st((function(e){return rr(t,n,e-1).bottom<=r}),i,0);return{begin:o,end:i=st((function(e){return rr(t,n,e).top>r}),o,i)}}function Cr(t,e,n,r){return n||(n=nr(t,e)),Or(t,e,n,vr(t,e,rr(t,n,r),"line").top)}function Sr(t,e,n,r){return!(t.bottom<=n)&&(t.top>n||(r?t.left:t.right)>e)}function Pr(t,e,n,r,i){i-=an(e);var o=nr(t,e),a=gr(e),s=0,l=e.text.length,c=!0,u=ht(e,t.doc.direction);if(u){var f=(t.options.lineWrapping?Tr:_r)(t,e,n,o,u,r,i);s=(c=1!=f.level)?f.from:f.to-1,l=c?f.to:f.from-1}var h,d,p=null,g=null,v=st((function(e){var n=rr(t,o,e);return n.top+=a,n.bottom+=a,!!Sr(n,r,i,!1)&&(n.top<=i&&n.left<=r&&(p=e,g=n),!0)}),s,l),m=!1;if(g){var y=r-g.left=w.bottom?1:0}return kr(n,v=at(e.text,v,1),d,m,r-h)}function _r(t,e,n,r,i,o,a){var s=st((function(s){var l=i[s],c=1!=l.level;return Sr(br(t,oe(n,c?l.to:l.from,c?"before":"after"),"line",e,r),o,a,!0)}),0,i.length-1),l=i[s];if(s>0){var c=1!=l.level,u=br(t,oe(n,c?l.from:l.to,c?"after":"before"),"line",e,r);Sr(u,o,a,!0)&&u.top>a&&(l=i[s-1])}return l}function Tr(t,e,n,r,i,o,a){var s=Or(t,e,r,a),l=s.begin,c=s.end;/\s/.test(e.text.charAt(c-1))&&c--;for(var u=null,f=null,h=0;h=c||d.to<=l)){var p=rr(t,r,1!=d.level?Math.min(c,d.to)-1:Math.max(l,d.from)).right,g=pg)&&(u=d,f=g)}}return u||(u=i[i.length-1]),u.fromc&&(u={from:u.from,to:c,level:u.level}),u}function Er(t){if(null!=t.cachedTextHeight)return t.cachedTextHeight;if(null==ir){ir=E("pre",null,"CodeMirror-line-like");for(var e=0;e<49;++e)ir.appendChild(document.createTextNode("x")),ir.appendChild(E("br"));ir.appendChild(document.createTextNode("x"))}T(t.measure,ir);var n=ir.offsetHeight/50;return n>3&&(t.cachedTextHeight=n),_(t.measure),n||1}function jr(t){if(null!=t.cachedCharWidth)return t.cachedCharWidth;var e=E("span","xxxxxxxxxx"),n=E("pre",[e],"CodeMirror-line-like");T(t.measure,n);var r=e.getBoundingClientRect(),i=(r.right-r.left)/10;return i>2&&(t.cachedCharWidth=i),i||10}function Dr(t){for(var e=t.display,n={},r={},i=e.gutters.clientLeft,o=e.gutters.firstChild,a=0;o;o=o.nextSibling,++a){var s=t.display.gutterSpecs[a].className;n[s]=o.offsetLeft+o.clientLeft+i,r[s]=o.clientWidth}return{fixedPos:Rr(e),gutterTotalWidth:e.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:e.wrapper.clientWidth}}function Rr(t){return t.scroller.getBoundingClientRect().left-t.sizer.getBoundingClientRect().left}function Ar(t){var e=Er(t.display),n=t.options.lineWrapping,r=n&&Math.max(5,t.display.scroller.clientWidth/jr(t.display)-3);return function(i){if(rn(t.doc,i))return 0;var o=0;if(i.widgets)for(var a=0;a0&&(l=Xt(t.doc,c.line).text).length==c.ch){var u=I(l,l.length,t.options.tabSize)-l.length;c=oe(c.line,Math.max(0,Math.round((o-qn(t.display).left)/jr(t.display))-u))}return c}function Lr(t,e){if(e>=t.display.viewTo)return null;if((e-=t.display.viewFrom)<0)return null;for(var n=t.display.view,r=0;re)&&(i.updateLineNumbers=e),t.curOp.viewChanged=!0,e>=i.viewTo)je&&en(t.doc,e)i.viewFrom?Fr(t):(i.viewFrom+=r,i.viewTo+=r);else if(e<=i.viewFrom&&n>=i.viewTo)Fr(t);else if(e<=i.viewFrom){var o=Br(t,n,n+r,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=r):Fr(t)}else if(n>=i.viewTo){var a=Br(t,e,e,-1);a?(i.view=i.view.slice(0,a.index),i.viewTo=a.lineN):Fr(t)}else{var s=Br(t,e,e,-1),l=Br(t,n,n+r,1);s&&l?(i.view=i.view.slice(0,s.index).concat(On(t,s.lineN,l.lineN)).concat(i.view.slice(l.index)),i.viewTo+=r):Fr(t)}var c=i.externalMeasured;c&&(n=i.lineN&&e=r.viewTo)){var o=r.view[Lr(t,e)];if(null!=o.node){var a=o.changes||(o.changes=[]);-1==B(a,n)&&a.push(n)}}}function Fr(t){t.display.viewFrom=t.display.viewTo=t.doc.first,t.display.view=[],t.display.viewOffset=0}function Br(t,e,n,r){var i,o=Lr(t,e),a=t.display.view;if(!je||n==t.doc.first+t.doc.size)return{index:o,lineN:n};for(var s=t.display.viewFrom,l=0;l0){if(o==a.length-1)return null;i=s+a[o].size-e,o++}else i=s-e;e+=i,n+=i}for(;en(t.doc,n)!=n;){if(o==(r<0?0:a.length-1))return null;n+=r*a[o-(r<0?1:0)].size,o+=r}return{index:o,lineN:n}}function Vr(t,e,n){var r=t.display;0==r.view.length||e>=r.viewTo||n<=r.viewFrom?(r.view=On(t,e,n),r.viewFrom=e):(r.viewFrom>e?r.view=On(t,e,r.viewFrom).concat(r.view):r.viewFromn&&(r.view=r.view.slice(0,Lr(t,n)))),r.viewTo=n}function Hr(t){for(var e=t.display.view,n=0,r=0;r=t.display.viewTo||s.to().line0&&(i.style.width=o.right-o.left+"px")}if(r.other){var a=n.appendChild(E("div"," ","CodeMirror-cursor CodeMirror-secondarycursor"));a.style.display="",a.style.left=r.other.left+"px",a.style.top=r.other.top+"px",a.style.height=.85*(r.other.bottom-r.other.top)+"px"}}function $r(t,e){return t.top-e.top||t.left-e.left}function qr(t,e,n){var r=t.display,i=t.doc,o=document.createDocumentFragment(),a=qn(t.display),s=a.left,l=Math.max(r.sizerWidth,Kn(t)-r.sizer.offsetLeft)-a.right,c="ltr"==i.direction;function u(t,e,n,r){e<0&&(e=0),e=Math.round(e),r=Math.round(r),o.appendChild(E("div",null,"CodeMirror-selected","position: absolute; left: "+t+"px;\n top: "+e+"px; width: "+(null==n?l-t:n)+"px;\n height: "+(r-e)+"px"))}function f(e,n,r){var o,a,f=Xt(i,e),h=f.text.length;function d(n,r){return yr(t,oe(e,n),"div",f,r)}function p(e,n,r){var i=Cr(t,f,null,e),o="ltr"==n==("after"==r)?"left":"right";return d("after"==r?i.begin:i.end-(/\s/.test(f.text.charAt(i.end-1))?2:1),o)[o]}var g=ht(f,i.direction);return lt(g,n||0,null==r?h:r,(function(t,e,i,f){var v="ltr"==i,m=d(t,v?"left":"right"),y=d(e-1,v?"right":"left"),b=null==n&&0==t,w=null==r&&e==h,k=0==f,x=!g||f==g.length-1;if(y.top-m.top<=3){var O=(c?w:b)&&x,C=(c?b:w)&&k?s:(v?m:y).left,S=O?l:(v?y:m).right;u(C,m.top,S-C,m.bottom)}else{var P,_,T,E;v?(P=c&&b&&k?s:m.left,_=c?l:p(t,i,"before"),T=c?s:p(e,i,"after"),E=c&&w&&x?l:y.right):(P=c?p(t,i,"before"):s,_=!c&&b&&k?l:m.right,T=!c&&w&&x?s:y.left,E=c?p(e,i,"after"):l),u(P,m.top,_-P,m.bottom),m.bottom0?e.blinker=setInterval((function(){t.hasFocus()||Jr(t),e.cursorDiv.style.visibility=(n=!n)?"":"hidden"}),t.options.cursorBlinkRate):t.options.cursorBlinkRate<0&&(e.cursorDiv.style.visibility="hidden")}}function Kr(t){t.hasFocus()||(t.display.input.focus(),t.state.focused||Xr(t))}function Yr(t){t.state.delayingBlurEvent=!0,setTimeout((function(){t.state.delayingBlurEvent&&(t.state.delayingBlurEvent=!1,t.state.focused&&Jr(t))}),100)}function Xr(t,e){t.state.delayingBlurEvent&&!t.state.draggingText&&(t.state.delayingBlurEvent=!1),"nocursor"!=t.options.readOnly&&(t.state.focused||(mt(t,"focus",t,e),t.state.focused=!0,A(t.display.wrapper,"CodeMirror-focused"),t.curOp||t.display.selForContextMenu==t.doc.sel||(t.display.input.reset(),l&&setTimeout((function(){return t.display.input.reset(!0)}),20)),t.display.input.receivedFocus()),Gr(t))}function Jr(t,e){t.state.delayingBlurEvent||(t.state.focused&&(mt(t,"blur",t,e),t.state.focused=!1,P(t.display.wrapper,"CodeMirror-focused")),clearInterval(t.display.blinker),setTimeout((function(){t.state.focused||(t.display.shift=!1)}),150))}function Qr(t){for(var e=t.display,n=e.lineDiv.offsetTop,r=Math.max(0,e.scroller.getBoundingClientRect().top),i=e.lineDiv.getBoundingClientRect().top,o=0,l=0;l.005||g<-.005)&&(it.display.sizerWidth){var m=Math.ceil(h/jr(t.display));m>t.display.maxLineLength&&(t.display.maxLineLength=m,t.display.maxLine=c.line,t.display.maxLineChanged=!0)}}}Math.abs(o)>2&&(e.scroller.scrollTop+=o)}function ti(t){if(t.widgets)for(var e=0;e=a&&(o=ne(e,an(Xt(e,l))-t.wrapper.clientHeight),a=l)}return{from:o,to:Math.max(a,o+1)}}function ni(t,e){if(!yt(t,"scrollCursorIntoView")){var n=t.display,r=n.sizer.getBoundingClientRect(),i=null;if(e.top+r.top<0?i=!0:e.bottom+r.top>(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!p){var o=E("div","​",null,"position: absolute;\n top: "+(e.top-n.viewOffset-Wn(t.display))+"px;\n height: "+(e.bottom-e.top+Gn(t)+n.barHeight)+"px;\n left: "+e.left+"px; width: "+Math.max(2,e.right-e.left)+"px;");t.display.lineSpace.appendChild(o),o.scrollIntoView(i),t.display.lineSpace.removeChild(o)}}}function ri(t,e,n,r){var i;null==r&&(r=0),t.options.lineWrapping||e!=n||(n="before"==e.sticky?oe(e.line,e.ch+1,"before"):e,e=e.ch?oe(e.line,"before"==e.sticky?e.ch-1:e.ch,"after"):e);for(var o=0;o<5;o++){var a=!1,s=br(t,e),l=n&&n!=e?br(t,n):s,c=oi(t,i={left:Math.min(s.left,l.left),top:Math.min(s.top,l.top)-r,right:Math.max(s.left,l.left),bottom:Math.max(s.bottom,l.bottom)+r}),u=t.doc.scrollTop,f=t.doc.scrollLeft;if(null!=c.scrollTop&&(hi(t,c.scrollTop),Math.abs(t.doc.scrollTop-u)>1&&(a=!0)),null!=c.scrollLeft&&(pi(t,c.scrollLeft),Math.abs(t.doc.scrollLeft-f)>1&&(a=!0)),!a)break}return i}function ii(t,e){var n=oi(t,e);null!=n.scrollTop&&hi(t,n.scrollTop),null!=n.scrollLeft&&pi(t,n.scrollLeft)}function oi(t,e){var n=t.display,r=Er(t.display);e.top<0&&(e.top=0);var i=t.curOp&&null!=t.curOp.scrollTop?t.curOp.scrollTop:n.scroller.scrollTop,o=Yn(t),a={};e.bottom-e.top>o&&(e.bottom=e.top+o);var s=t.doc.height+$n(n),l=e.tops-r;if(e.topi+o){var u=Math.min(e.top,(c?s:e.bottom)-o);u!=i&&(a.scrollTop=u)}var f=t.options.fixedGutter?0:n.gutters.offsetWidth,h=t.curOp&&null!=t.curOp.scrollLeft?t.curOp.scrollLeft:n.scroller.scrollLeft-f,d=Kn(t)-n.gutters.offsetWidth,p=e.right-e.left>d;return p&&(e.right=e.left+d),e.left<10?a.scrollLeft=0:e.leftd+h-3&&(a.scrollLeft=e.right+(p?0:10)-d),a}function ai(t,e){null!=e&&(ui(t),t.curOp.scrollTop=(null==t.curOp.scrollTop?t.doc.scrollTop:t.curOp.scrollTop)+e)}function si(t){ui(t);var e=t.getCursor();t.curOp.scrollToPos={from:e,to:e,margin:t.options.cursorScrollMargin}}function li(t,e,n){null==e&&null==n||ui(t),null!=e&&(t.curOp.scrollLeft=e),null!=n&&(t.curOp.scrollTop=n)}function ci(t,e){ui(t),t.curOp.scrollToPos=e}function ui(t){var e=t.curOp.scrollToPos;e&&(t.curOp.scrollToPos=null,fi(t,wr(t,e.from),wr(t,e.to),e.margin))}function fi(t,e,n,r){var i=oi(t,{left:Math.min(e.left,n.left),top:Math.min(e.top,n.top)-r,right:Math.max(e.right,n.right),bottom:Math.max(e.bottom,n.bottom)+r});li(t,i.scrollLeft,i.scrollTop)}function hi(t,e){Math.abs(t.doc.scrollTop-e)<2||(n||zi(t,{top:e}),di(t,e,!0),n&&zi(t),Zi(t,100))}function di(t,e,n){e=Math.max(0,Math.min(t.display.scroller.scrollHeight-t.display.scroller.clientHeight,e)),(t.display.scroller.scrollTop!=e||n)&&(t.doc.scrollTop=e,t.display.scrollbars.setScrollTop(e),t.display.scroller.scrollTop!=e&&(t.display.scroller.scrollTop=e))}function pi(t,e,n,r){e=Math.max(0,Math.min(e,t.display.scroller.scrollWidth-t.display.scroller.clientWidth)),(n?e==t.doc.scrollLeft:Math.abs(t.doc.scrollLeft-e)<2)&&!r||(t.doc.scrollLeft=e,qi(t),t.display.scroller.scrollLeft!=e&&(t.display.scroller.scrollLeft=e),t.display.scrollbars.setScrollLeft(e))}function gi(t){var e=t.display,n=e.gutters.offsetWidth,r=Math.round(t.doc.height+$n(t.display));return{clientHeight:e.scroller.clientHeight,viewHeight:e.wrapper.clientHeight,scrollWidth:e.scroller.scrollWidth,clientWidth:e.scroller.clientWidth,viewWidth:e.wrapper.clientWidth,barLeft:t.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+Gn(t)+e.barHeight,nativeBarWidth:e.nativeBarWidth,gutterWidth:n}}var vi=function(t,e,n){this.cm=n;var r=this.vert=E("div",[E("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),i=this.horiz=E("div",[E("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");r.tabIndex=i.tabIndex=-1,t(r),t(i),pt(r,"scroll",(function(){r.clientHeight&&e(r.scrollTop,"vertical")})),pt(i,"scroll",(function(){i.clientWidth&&e(i.scrollLeft,"horizontal")})),this.checkedZeroWidth=!1,a&&s<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};vi.prototype.update=function(t){var e=t.scrollWidth>t.clientWidth+1,n=t.scrollHeight>t.clientHeight+1,r=t.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=e?r+"px":"0";var i=t.viewHeight-(e?r:0);this.vert.firstChild.style.height=Math.max(0,t.scrollHeight-t.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(e){this.horiz.style.display="block",this.horiz.style.right=n?r+"px":"0",this.horiz.style.left=t.barLeft+"px";var o=t.viewWidth-t.barLeft-(n?r:0);this.horiz.firstChild.style.width=Math.max(0,t.scrollWidth-t.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&t.clientHeight>0&&(0==r&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?r:0,bottom:e?r:0}},vi.prototype.setScrollLeft=function(t){this.horiz.scrollLeft!=t&&(this.horiz.scrollLeft=t),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},vi.prototype.setScrollTop=function(t){this.vert.scrollTop!=t&&(this.vert.scrollTop=t),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},vi.prototype.zeroWidthHack=function(){var t=y&&!d?"12px":"18px";this.horiz.style.height=this.vert.style.width=t,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new F,this.disableVert=new F},vi.prototype.enableZeroWidthBar=function(t,e,n){function r(){var i=t.getBoundingClientRect();("vert"==n?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1))!=t?t.style.pointerEvents="none":e.set(1e3,r)}t.style.pointerEvents="auto",e.set(1e3,r)},vi.prototype.clear=function(){var t=this.horiz.parentNode;t.removeChild(this.horiz),t.removeChild(this.vert)};var mi=function(){};function yi(t,e){e||(e=gi(t));var n=t.display.barWidth,r=t.display.barHeight;bi(t,e);for(var i=0;i<4&&n!=t.display.barWidth||r!=t.display.barHeight;i++)n!=t.display.barWidth&&t.options.lineWrapping&&Qr(t),bi(t,gi(t)),n=t.display.barWidth,r=t.display.barHeight}function bi(t,e){var n=t.display,r=n.scrollbars.update(e);n.sizer.style.paddingRight=(n.barWidth=r.right)+"px",n.sizer.style.paddingBottom=(n.barHeight=r.bottom)+"px",n.heightForcer.style.borderBottom=r.bottom+"px solid transparent",r.right&&r.bottom?(n.scrollbarFiller.style.display="block",n.scrollbarFiller.style.height=r.bottom+"px",n.scrollbarFiller.style.width=r.right+"px"):n.scrollbarFiller.style.display="",r.bottom&&t.options.coverGutterNextToScrollbar&&t.options.fixedGutter?(n.gutterFiller.style.display="block",n.gutterFiller.style.height=r.bottom+"px",n.gutterFiller.style.width=e.gutterWidth+"px"):n.gutterFiller.style.display=""}mi.prototype.update=function(){return{bottom:0,right:0}},mi.prototype.setScrollLeft=function(){},mi.prototype.setScrollTop=function(){},mi.prototype.clear=function(){};var wi={native:vi,null:mi};function ki(t){t.display.scrollbars&&(t.display.scrollbars.clear(),t.display.scrollbars.addClass&&P(t.display.wrapper,t.display.scrollbars.addClass)),t.display.scrollbars=new wi[t.options.scrollbarStyle]((function(e){t.display.wrapper.insertBefore(e,t.display.scrollbarFiller),pt(e,"mousedown",(function(){t.state.focused&&setTimeout((function(){return t.display.input.focus()}),0)})),e.setAttribute("cm-not-content","true")}),(function(e,n){"horizontal"==n?pi(t,e):hi(t,e)}),t),t.display.scrollbars.addClass&&A(t.display.wrapper,t.display.scrollbars.addClass)}var xi=0;function Oi(t){t.curOp={cm:t,viewChanged:!1,startHeight:t.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++xi,markArrays:null},Sn(t.curOp)}function Ci(t){var e=t.curOp;e&&_n(e,(function(t){for(var e=0;e=n.viewTo)||n.maxLineChanged&&e.options.lineWrapping,t.update=t.mustUpdate&&new Ni(e,t.mustUpdate&&{top:t.scrollTop,ensure:t.scrollToPos},t.forceUpdate)}function _i(t){t.updatedDisplay=t.mustUpdate&&Vi(t.cm,t.update)}function Ti(t){var e=t.cm,n=e.display;t.updatedDisplay&&Qr(e),t.barMeasure=gi(e),n.maxLineChanged&&!e.options.lineWrapping&&(t.adjustWidthTo=tr(e,n.maxLine,n.maxLine.text.length).left+3,e.display.sizerWidth=t.adjustWidthTo,t.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+t.adjustWidthTo+Gn(e)+e.display.barWidth),t.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+t.adjustWidthTo-Kn(e))),(t.updatedDisplay||t.selectionChanged)&&(t.preparedSelection=n.input.prepareSelection())}function Ei(t){var e=t.cm;null!=t.adjustWidthTo&&(e.display.sizer.style.minWidth=t.adjustWidthTo+"px",t.maxScrollLeft=t.display.viewTo)){var n=+new Date+t.options.workTime,r=be(t,e.highlightFrontier),i=[];e.iter(r.line,Math.min(e.first+e.size,t.display.viewTo+500),(function(o){if(r.line>=t.display.viewFrom){var a=o.styles,s=o.text.length>t.options.maxHighlightLength?qt(e.mode,r.state):null,l=me(t,o,r,!0);s&&(r.state=s),o.styles=l.styles;var c=o.styleClasses,u=l.classes;u?o.styleClasses=u:c&&(o.styleClasses=null);for(var f=!a||a.length!=o.styles.length||c!=u&&(!c||!u||c.bgClass!=u.bgClass||c.textClass!=u.textClass),h=0;!f&&hn)return Zi(t,t.options.workDelay),!0})),e.highlightFrontier=r.line,e.modeFrontier=Math.max(e.modeFrontier,r.line),i.length&&Di(t,(function(){for(var e=0;e=n.viewFrom&&e.visible.to<=n.viewTo&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&0==Hr(t))return!1;Gi(t)&&(Fr(t),e.dims=Dr(t));var i=r.first+r.size,o=Math.max(e.visible.from-t.options.viewportMargin,r.first),a=Math.min(i,e.visible.to+t.options.viewportMargin);n.viewFroma&&n.viewTo-a<20&&(a=Math.min(i,n.viewTo)),je&&(o=en(t.doc,o),a=nn(t.doc,a));var s=o!=n.viewFrom||a!=n.viewTo||n.lastWrapHeight!=e.wrapperHeight||n.lastWrapWidth!=e.wrapperWidth;Vr(t,o,a),n.viewOffset=an(Xt(t.doc,n.viewFrom)),t.display.mover.style.top=n.viewOffset+"px";var l=Hr(t);if(!s&&0==l&&!e.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;var c=Fi(t);return l>4&&(n.lineDiv.style.display="none"),Ui(t,n.updateLineNumbers,e.dims),l>4&&(n.lineDiv.style.display=""),n.renderedView=n.view,Bi(c),_(n.cursorDiv),_(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,s&&(n.lastWrapHeight=e.wrapperHeight,n.lastWrapWidth=e.wrapperWidth,Zi(t,400)),n.updateLineNumbers=null,!0}function Hi(t,e){for(var n=e.viewport,r=!0;;r=!1){if(r&&t.options.lineWrapping&&e.oldDisplayWidth!=Kn(t))r&&(e.visible=ei(t.display,t.doc,n));else if(n&&null!=n.top&&(n={top:Math.min(t.doc.height+$n(t.display)-Yn(t),n.top)}),e.visible=ei(t.display,t.doc,n),e.visible.from>=t.display.viewFrom&&e.visible.to<=t.display.viewTo)break;if(!Vi(t,e))break;Qr(t);var i=gi(t);zr(t),yi(t,i),$i(t,i),e.force=!1}e.signal(t,"update",t),t.display.viewFrom==t.display.reportedViewFrom&&t.display.viewTo==t.display.reportedViewTo||(e.signal(t,"viewportChange",t,t.display.viewFrom,t.display.viewTo),t.display.reportedViewFrom=t.display.viewFrom,t.display.reportedViewTo=t.display.viewTo)}function zi(t,e){var n=new Ni(t,e);if(Vi(t,n)){Qr(t),Hi(t,n);var r=gi(t);zr(t),yi(t,r),$i(t,r),n.finish()}}function Ui(t,e,n){var r=t.display,i=t.options.lineNumbers,o=r.lineDiv,a=o.firstChild;function s(e){var n=e.nextSibling;return l&&y&&t.display.currentWheelTarget==e?e.style.display="none":e.parentNode.removeChild(e),n}for(var c=r.view,u=r.viewFrom,f=0;f-1&&(d=!1),Dn(t,h,u,n)),d&&(_(h.lineNumber),h.lineNumber.appendChild(document.createTextNode(ie(t.options,u)))),a=h.node.nextSibling}else{var p=Fn(t,h,u,n);o.insertBefore(p,a)}u+=h.size}for(;a;)a=s(a)}function Wi(t){var e=t.gutters.offsetWidth;t.sizer.style.marginLeft=e+"px",En(t,"gutterChanged",t)}function $i(t,e){t.display.sizer.style.minHeight=e.docHeight+"px",t.display.heightForcer.style.top=e.docHeight+"px",t.display.gutters.style.height=e.docHeight+t.display.barHeight+Gn(t)+"px"}function qi(t){var e=t.display,n=e.view;if(e.alignWidgets||e.gutters.firstChild&&t.options.fixedGutter){for(var r=Rr(e)-e.scroller.scrollLeft+t.doc.scrollLeft,i=e.gutters.offsetWidth,o=r+"px",a=0;as.clientWidth,u=s.scrollHeight>s.clientHeight;if(i&&c||o&&u){if(o&&y&&l)t:for(var h=e.target,d=a.view;h!=s;h=h.parentNode)for(var p=0;p=0&&ae(t,r.to())<=0)return n}return-1};var oo=function(t,e){this.anchor=t,this.head=e};function ao(t,e,n){var r=t&&t.options.selectionsMayTouch,i=e[n];e.sort((function(t,e){return ae(t.from(),e.from())})),n=B(e,i);for(var o=1;o0:l>=0){var c=ue(s.from(),a.from()),u=ce(s.to(),a.to()),f=s.empty()?a.from()==a.head:s.from()==s.head;o<=n&&--n,e.splice(--o,2,new oo(f?u:c,f?c:u))}}return new io(e,n)}function so(t,e){return new io([new oo(t,e||t)],0)}function lo(t){return t.text?oe(t.from.line+t.text.length-1,K(t.text).length+(1==t.text.length?t.from.ch:0)):t.to}function co(t,e){if(ae(t,e.from)<0)return t;if(ae(t,e.to)<=0)return lo(e);var n=t.line+e.text.length-(e.to.line-e.from.line)-1,r=t.ch;return t.line==e.to.line&&(r+=lo(e).ch-e.to.ch),oe(n,r)}function uo(t,e){for(var n=[],r=0;r1&&t.remove(s.line+1,p-1),t.insert(s.line+1,m)}En(t,"change",t,e)}function yo(t,e,n){function r(t,i,o){if(t.linked)for(var a=0;a1&&!t.done[t.done.length-2].ranges?(t.done.pop(),K(t.done)):void 0}function Po(t,e,n,r){var i=t.history;i.undone.length=0;var o,a,s=+new Date;if((i.lastOp==r||i.lastOrigin==e.origin&&e.origin&&("+"==e.origin.charAt(0)&&i.lastModTime>s-(t.cm?t.cm.options.historyEventDelay:500)||"*"==e.origin.charAt(0)))&&(o=So(i,i.lastOp==r)))a=K(o.changes),0==ae(e.from,e.to)&&0==ae(e.from,a.to)?a.to=lo(e):o.changes.push(Oo(t,e));else{var l=K(i.done);for(l&&l.ranges||Eo(t.sel,i.done),o={changes:[Oo(t,e)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(n),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=s,i.lastOp=i.lastSelOp=r,i.lastOrigin=i.lastSelOrigin=e.origin,a||mt(t,"historyAdded")}function _o(t,e,n,r){var i=e.charAt(0);return"*"==i||"+"==i&&n.ranges.length==r.ranges.length&&n.somethingSelected()==r.somethingSelected()&&new Date-t.history.lastSelTime<=(t.cm?t.cm.options.historyEventDelay:500)}function To(t,e,n,r){var i=t.history,o=r&&r.origin;n==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||_o(t,o,K(i.done),e))?i.done[i.done.length-1]=e:Eo(e,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=n,r&&!1!==r.clearRedo&&Co(i.undone)}function Eo(t,e){var n=K(e);n&&n.ranges&&n.equals(t)||e.push(t)}function jo(t,e,n,r){var i=e["spans_"+t.id],o=0;t.iter(Math.max(t.first,n),Math.min(t.first+t.size,r),(function(n){n.markedSpans&&((i||(i=e["spans_"+t.id]={}))[o]=n.markedSpans),++o}))}function Do(t){if(!t)return null;for(var e,n=0;n-1&&(K(s)[f]=c[f],delete c[f])}}}return r}function Zo(t,e,n,r){if(r){var i=t.anchor;if(n){var o=ae(e,i)<0;o!=ae(n,i)<0?(i=e,e=n):o!=ae(e,n)<0&&(e=n)}return new oo(i,e)}return new oo(n||e,e)}function Lo(t,e,n,r,i){null==i&&(i=t.cm&&(t.cm.display.shift||t.extend)),Ho(t,new io([Zo(t.sel.primary(),e,n,i)],0),r)}function No(t,e,n){for(var r=[],i=t.cm&&(t.cm.display.shift||t.extend),o=0;o=e.ch:s.to>e.ch))){if(i&&(mt(l,"beforeCursorEnter"),l.explicitlyCleared)){if(o.markedSpans){--a;continue}break}if(!l.atomic)continue;if(n){var f=l.find(r<0?1:-1),h=void 0;if((r<0?u:c)&&(f=Ko(t,f,-r,f&&f.line==e.line?o:null)),f&&f.line==e.line&&(h=ae(f,n))&&(r<0?h<0:h>0))return qo(t,f,e,r,i)}var d=l.find(r<0?-1:1);return(r<0?c:u)&&(d=Ko(t,d,r,d.line==e.line?o:null)),d?qo(t,d,e,r,i):null}}return e}function Go(t,e,n,r,i){var o=r||1,a=qo(t,e,n,o,i)||!i&&qo(t,e,n,o,!0)||qo(t,e,n,-o,i)||!i&&qo(t,e,n,-o,!0);return a||(t.cantEdit=!0,oe(t.first,0))}function Ko(t,e,n,r){return n<0&&0==e.ch?e.line>t.first?he(t,oe(e.line-1)):null:n>0&&e.ch==(r||Xt(t,e.line)).text.length?e.line=0;--i)Qo(t,{from:r[i].from,to:r[i].to,text:i?[""]:e.text,origin:e.origin});else Qo(t,e)}}function Qo(t,e){if(1!=e.text.length||""!=e.text[0]||0!=ae(e.from,e.to)){var n=uo(t,e);Po(t,e,n,t.cm?t.cm.curOp.id:NaN),na(t,e,n,Fe(t,e));var r=[];yo(t,(function(t,n){n||-1!=B(r,t.history)||(sa(t.history,e),r.push(t.history)),na(t,e,null,Fe(t,e))}))}}function ta(t,e,n){var r=t.cm&&t.cm.state.suppressEdits;if(!r||n){for(var i,o=t.history,a=t.sel,s="undo"==e?o.done:o.undone,l="undo"==e?o.undone:o.done,c=0;c=0;--d){var p=h(d);if(p)return p.v}}}}function ea(t,e){if(0!=e&&(t.first+=e,t.sel=new io(Y(t.sel.ranges,(function(t){return new oo(oe(t.anchor.line+e,t.anchor.ch),oe(t.head.line+e,t.head.ch))})),t.sel.primIndex),t.cm)){Nr(t.cm,t.first,t.first-e,e);for(var n=t.cm.display,r=n.viewFrom;rt.lastLine())){if(e.from.lineo&&(e={from:e.from,to:oe(o,Xt(t,o).text.length),text:[e.text[0]],origin:e.origin}),e.removed=Jt(t,e.from,e.to),n||(n=uo(t,e)),t.cm?ra(t.cm,e,r):mo(t,e,r),zo(t,n,z),t.cantEdit&&Go(t,oe(t.firstLine(),0))&&(t.cantEdit=!1)}}function ra(t,e,n){var r=t.doc,i=t.display,o=e.from,a=e.to,s=!1,l=o.line;t.options.lineWrapping||(l=ee(Je(Xt(r,o.line))),r.iter(l,a.line+1,(function(t){if(t==i.maxLine)return s=!0,!0}))),r.sel.contains(e.from,e.to)>-1&&bt(t),mo(r,e,n,Ar(t)),t.options.lineWrapping||(r.iter(l,o.line+e.text.length,(function(t){var e=sn(t);e>i.maxLineLength&&(i.maxLine=t,i.maxLineLength=e,i.maxLineChanged=!0,s=!1)})),s&&(t.curOp.updateMaxLine=!0)),Te(r,o.line),Zi(t,400);var c=e.text.length-(a.line-o.line)-1;e.full?Nr(t):o.line!=a.line||1!=e.text.length||vo(t.doc,e)?Nr(t,o.line,a.line+1,c):Ir(t,o.line,"text");var u=wt(t,"changes"),f=wt(t,"change");if(f||u){var h={from:o,to:a,text:e.text,removed:e.removed,origin:e.origin};f&&En(t,"change",t,h),u&&(t.curOp.changeObjs||(t.curOp.changeObjs=[])).push(h)}t.display.selForContextMenu=null}function ia(t,e,n,r,i){var o;r||(r=n),ae(r,n)<0&&(n=(o=[r,n])[0],r=o[1]),"string"==typeof e&&(e=t.splitLines(e)),Jo(t,{from:n,to:r,text:e,origin:i})}function oa(t,e,n,r){n1||!(this.children[0]instanceof ca))){var s=[];this.collapse(s),this.children=[new ca(s)],this.children[0].parent=this}},collapse:function(t){for(var e=0;e50){for(var a=i.lines.length%25+25,s=a;s10);t.parent.maybeSpill()}},iterN:function(t,e,n){for(var r=0;r0||0==a&&!1!==o.clearWhenEmpty)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=j("span",[o.replacedWith],"CodeMirror-widget"),r.handleMouseEvents||o.widgetNode.setAttribute("cm-ignore-events","true"),r.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(Xe(t,e.line,e,n,o)||e.line!=n.line&&Xe(t,n.line,e,n,o))throw new Error("Inserting collapsed marker partially overlapping an existing one");Re()}o.addToHistory&&Po(t,{from:e,to:n,origin:"markText"},t.sel,NaN);var s,l=e.line,c=t.cm;if(t.iter(l,n.line+1,(function(r){c&&o.collapsed&&!c.options.lineWrapping&&Je(r)==c.display.maxLine&&(s=!0),o.collapsed&&l!=e.line&&te(r,0),Le(r,new Ae(o,l==e.line?e.ch:null,l==n.line?n.ch:null),t.cm&&t.cm.curOp),++l})),o.collapsed&&t.iter(e.line,n.line+1,(function(e){rn(t,e)&&te(e,0)})),o.clearOnEnter&&pt(o,"beforeCursorEnter",(function(){return o.clear()})),o.readOnly&&(De(),(t.history.done.length||t.history.undone.length)&&t.clearHistory()),o.collapsed&&(o.id=++pa,o.atomic=!0),c){if(s&&(c.curOp.updateMaxLine=!0),o.collapsed)Nr(c,e.line,n.line+1);else if(o.className||o.startStyle||o.endStyle||o.css||o.attributes||o.title)for(var u=e.line;u<=n.line;u++)Ir(c,u,"text");o.atomic&&Wo(c.doc),En(c,"markerAdded",c,o)}return o}ga.prototype.clear=function(){if(!this.explicitlyCleared){var t=this.doc.cm,e=t&&!t.curOp;if(e&&Oi(t),wt(this,"clear")){var n=this.find();n&&En(this,"clear",n.from,n.to)}for(var r=null,i=null,o=0;ot.display.maxLineLength&&(t.display.maxLine=c,t.display.maxLineLength=u,t.display.maxLineChanged=!0)}null!=r&&t&&this.collapsed&&Nr(t,r,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&Wo(t.doc)),t&&En(t,"markerCleared",t,this,r,i),e&&Ci(t),this.parent&&this.parent.clear()}},ga.prototype.find=function(t,e){var n,r;null==t&&"bookmark"==this.type&&(t=1);for(var i=0;i=0;l--)Jo(this,r[l]);s?Vo(this,s):this.cm&&si(this.cm)})),undo:Mi((function(){ta(this,"undo")})),redo:Mi((function(){ta(this,"redo")})),undoSelection:Mi((function(){ta(this,"undo",!0)})),redoSelection:Mi((function(){ta(this,"redo",!0)})),setExtending:function(t){this.extend=t},getExtending:function(){return this.extend},historySize:function(){for(var t=this.history,e=0,n=0,r=0;r=t.ch)&&e.push(i.marker.parent||i.marker)}return e},findMarks:function(t,e,n){t=he(this,t),e=he(this,e);var r=[],i=t.line;return this.iter(t.line,e.line+1,(function(o){var a=o.markedSpans;if(a)for(var s=0;s=l.to||null==l.from&&i!=t.line||null!=l.from&&i==e.line&&l.from>=e.ch||n&&!n(l.marker)||r.push(l.marker.parent||l.marker)}++i})),r},getAllMarks:function(){var t=[];return this.iter((function(e){var n=e.markedSpans;if(n)for(var r=0;rt)return e=t,!0;t-=o,++n})),he(this,oe(n,e))},indexFromPos:function(t){var e=(t=he(this,t)).ch;if(t.linee&&(e=t.from),null!=t.to&&t.to-1)return e.state.draggingText(t),void setTimeout((function(){return e.display.input.focus()}),20);try{var f=t.dataTransfer.getData("Text");if(f){var h;if(e.state.draggingText&&!e.state.draggingText.copy&&(h=e.listSelections()),zo(e.doc,so(n,n)),h)for(var d=0;d=0;e--)ia(t.doc,"",r[e].from,r[e].to,"+delete");si(t)}))}function qa(t,e,n){var r=at(t.text,e+n,n);return r<0||r>t.text.length?null:r}function Ga(t,e,n){var r=qa(t,e.ch,n);return null==r?null:new oe(e.line,r,n<0?"after":"before")}function Ka(t,e,n,r,i){if(t){"rtl"==e.doc.direction&&(i=-i);var o=ht(n,e.doc.direction);if(o){var a,s=i<0?K(o):o[0],l=i<0==(1==s.level)?"after":"before";if(s.level>0||"rtl"==e.doc.direction){var c=nr(e,n);a=i<0?n.text.length-1:0;var u=rr(e,c,a).top;a=st((function(t){return rr(e,c,t).top==u}),i<0==(1==s.level)?s.from:s.to-1,a),"before"==l&&(a=qa(n,a,1))}else a=i<0?s.to:s.from;return new oe(r,a,l)}}return new oe(r,i<0?n.text.length:0,i<0?"before":"after")}function Ya(t,e,n,r){var i=ht(e,t.doc.direction);if(!i)return Ga(e,n,r);n.ch>=e.text.length?(n.ch=e.text.length,n.sticky="before"):n.ch<=0&&(n.ch=0,n.sticky="after");var o=ut(i,n.ch,n.sticky),a=i[o];if("ltr"==t.doc.direction&&a.level%2==0&&(r>0?a.to>n.ch:a.from=a.from&&h>=u.begin)){var d=f?"before":"after";return new oe(n.line,h,d)}}var p=function(t,e,r){for(var o=function(t,e){return e?new oe(n.line,l(t,1),"before"):new oe(n.line,t,"after")};t>=0&&t0==(1!=a.level),c=s?r.begin:l(r.end,-1);if(a.from<=c&&c0?u.end:l(u.begin,-1);return null==v||r>0&&v==e.text.length||!(g=p(r>0?0:i.length-1,r,c(v)))?null:g}Ia.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},Ia.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},Ia.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},Ia.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},Ia.default=y?Ia.macDefault:Ia.pcDefault;var Xa={selectAll:Yo,singleSelection:function(t){return t.setSelection(t.getCursor("anchor"),t.getCursor("head"),z)},killLine:function(t){return $a(t,(function(e){if(e.empty()){var n=Xt(t.doc,e.head.line).text.length;return e.head.ch==n&&e.head.line0)i=new oe(i.line,i.ch+1),t.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),oe(i.line,i.ch-2),i,"+transpose");else if(i.line>t.doc.first){var a=Xt(t.doc,i.line-1).text;a&&(i=new oe(i.line,1),t.replaceRange(o.charAt(0)+t.doc.lineSeparator()+a.charAt(a.length-1),oe(i.line-1,a.length-1),i,"+transpose"))}n.push(new oo(i,i))}t.setSelections(n)}))},newlineAndIndent:function(t){return Di(t,(function(){for(var e=t.listSelections(),n=e.length-1;n>=0;n--)t.replaceRange(t.doc.lineSeparator(),e[n].anchor,e[n].head,"+input");e=t.listSelections();for(var r=0;r-1&&(ae((i=s.ranges[i]).from(),e)<0||e.xRel>0)&&(ae(i.to(),e)>0||e.xRel<0)?xs(t,r,e,o):Cs(t,r,e,o)}function xs(t,e,n,r){var i=t.display,o=!1,c=Ri(t,(function(e){l&&(i.scroller.draggable=!1),t.state.draggingText=!1,t.state.delayingBlurEvent&&(t.hasFocus()?t.state.delayingBlurEvent=!1:Yr(t)),vt(i.wrapper.ownerDocument,"mouseup",c),vt(i.wrapper.ownerDocument,"mousemove",u),vt(i.scroller,"dragstart",f),vt(i.scroller,"drop",c),o||(xt(e),r.addNew||Lo(t.doc,n,null,null,r.extend),l&&!h||a&&9==s?setTimeout((function(){i.wrapper.ownerDocument.body.focus({preventScroll:!0}),i.input.focus()}),20):i.input.focus())})),u=function(t){o=o||Math.abs(e.clientX-t.clientX)+Math.abs(e.clientY-t.clientY)>=10},f=function(){return o=!0};l&&(i.scroller.draggable=!0),t.state.draggingText=c,c.copy=!r.moveOnDrag,pt(i.wrapper.ownerDocument,"mouseup",c),pt(i.wrapper.ownerDocument,"mousemove",u),pt(i.scroller,"dragstart",f),pt(i.scroller,"drop",c),t.state.delayingBlurEvent=!0,setTimeout((function(){return i.input.focus()}),20),i.scroller.dragDrop&&i.scroller.dragDrop()}function Os(t,e,n){if("char"==n)return new oo(e,e);if("word"==n)return t.findWordAt(e);if("line"==n)return new oo(oe(e.line,0),he(t.doc,oe(e.line+1,0)));var r=n(t,e);return new oo(r.from,r.to)}function Cs(t,e,n,r){a&&Yr(t);var i=t.display,o=t.doc;xt(e);var s,l,c=o.sel,u=c.ranges;if(r.addNew&&!r.extend?(l=o.sel.contains(n),s=l>-1?u[l]:new oo(n,n)):(s=o.sel.primary(),l=o.sel.primIndex),"rectangle"==r.unit)r.addNew||(s=new oo(n,n)),n=Zr(t,e,!0,!0),l=-1;else{var f=Os(t,n,r.unit);s=r.extend?Zo(s,f.anchor,f.head,r.extend):f}r.addNew?-1==l?(l=u.length,Ho(o,ao(t,u.concat([s]),l),{scroll:!1,origin:"*mouse"})):u.length>1&&u[l].empty()&&"char"==r.unit&&!r.extend?(Ho(o,ao(t,u.slice(0,l).concat(u.slice(l+1)),0),{scroll:!1,origin:"*mouse"}),c=o.sel):Io(o,l,s,U):(l=0,Ho(o,new io([s],0),U),c=o.sel);var h=n;function d(e){if(0!=ae(h,e))if(h=e,"rectangle"==r.unit){for(var i=[],a=t.options.tabSize,u=I(Xt(o,n.line).text,n.ch,a),f=I(Xt(o,e.line).text,e.ch,a),d=Math.min(u,f),p=Math.max(u,f),g=Math.min(n.line,e.line),v=Math.min(t.lastLine(),Math.max(n.line,e.line));g<=v;g++){var m=Xt(o,g).text,y=$(m,d,a);d==p?i.push(new oo(oe(g,y),oe(g,y))):m.length>y&&i.push(new oo(oe(g,y),oe(g,$(m,p,a))))}i.length||i.push(new oo(n,n)),Ho(o,ao(t,c.ranges.slice(0,l).concat(i),l),{origin:"*mouse",scroll:!1}),t.scrollIntoView(e)}else{var b,w=s,k=Os(t,e,r.unit),x=w.anchor;ae(k.anchor,x)>0?(b=k.head,x=ue(w.from(),k.anchor)):(b=k.anchor,x=ce(w.to(),k.head));var O=c.ranges.slice(0);O[l]=Ss(t,new oo(he(o,x),b)),Ho(o,ao(t,O,l),U)}}var p=i.wrapper.getBoundingClientRect(),g=0;function v(e){var n=++g,a=Zr(t,e,!0,"rectangle"==r.unit);if(a)if(0!=ae(a,h)){t.curOp.focus=R(),d(a);var s=ei(i,o);(a.line>=s.to||a.linep.bottom?20:0;l&&setTimeout(Ri(t,(function(){g==n&&(i.scroller.scrollTop+=l,v(e))})),50)}}function m(e){t.state.selectingText=!1,g=1/0,e&&(xt(e),i.input.focus()),vt(i.wrapper.ownerDocument,"mousemove",y),vt(i.wrapper.ownerDocument,"mouseup",b),o.history.lastSelOrigin=null}var y=Ri(t,(function(t){0!==t.buttons&&_t(t)?v(t):m(t)})),b=Ri(t,m);t.state.selectingText=b,pt(i.wrapper.ownerDocument,"mousemove",y),pt(i.wrapper.ownerDocument,"mouseup",b)}function Ss(t,e){var n=e.anchor,r=e.head,i=Xt(t.doc,n.line);if(0==ae(n,r)&&n.sticky==r.sticky)return e;var o=ht(i);if(!o)return e;var a=ut(o,n.ch,n.sticky),s=o[a];if(s.from!=n.ch&&s.to!=n.ch)return e;var l,c=a+(s.from==n.ch==(1!=s.level)?0:1);if(0==c||c==o.length)return e;if(r.line!=n.line)l=(r.line-n.line)*("ltr"==t.doc.direction?1:-1)>0;else{var u=ut(o,r.ch,r.sticky),f=u-a||(r.ch-n.ch)*(1==s.level?-1:1);l=u==c-1||u==c?f<0:f>0}var h=o[c+(l?-1:0)],d=l==(1==h.level),p=d?h.from:h.to,g=d?"after":"before";return n.ch==p&&n.sticky==g?e:new oo(new oe(n.line,p,g),r)}function Ps(t,e,n,r){var i,o;if(e.touches)i=e.touches[0].clientX,o=e.touches[0].clientY;else try{i=e.clientX,o=e.clientY}catch(t){return!1}if(i>=Math.floor(t.display.gutters.getBoundingClientRect().right))return!1;r&&xt(e);var a=t.display,s=a.lineDiv.getBoundingClientRect();if(o>s.bottom||!wt(t,n))return Ct(e);o-=s.top-a.viewOffset;for(var l=0;l=i)return mt(t,n,t,ne(t.doc,o),t.display.gutterSpecs[l].className,e),Ct(e)}}function _s(t,e){return Ps(t,e,"gutterClick",!0)}function Ts(t,e){Un(t.display,e)||Es(t,e)||yt(t,e,"contextmenu")||O||t.display.input.onContextMenu(e)}function Es(t,e){return!!wt(t,"gutterContextMenu")&&Ps(t,e,"gutterContextMenu",!1)}function js(t){t.display.wrapper.className=t.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+t.options.theme.replace(/(^|\s)\s*/g," cm-s-"),hr(t)}vs.prototype.compare=function(t,e,n){return this.time+gs>t&&0==ae(e,this.pos)&&n==this.button};var Ds={toString:function(){return"CodeMirror.Init"}},Rs={},As={};function Ms(t){var e=t.optionHandlers;function n(n,r,i,o){t.defaults[n]=r,i&&(e[n]=o?function(t,e,n){n!=Ds&&i(t,e,n)}:i)}t.defineOption=n,t.Init=Ds,n("value","",(function(t,e){return t.setValue(e)}),!0),n("mode",null,(function(t,e){t.doc.modeOption=e,po(t)}),!0),n("indentUnit",2,po,!0),n("indentWithTabs",!1),n("smartIndent",!0),n("tabSize",4,(function(t){go(t),hr(t),Nr(t)}),!0),n("lineSeparator",null,(function(t,e){if(t.doc.lineSep=e,e){var n=[],r=t.doc.first;t.doc.iter((function(t){for(var i=0;;){var o=t.text.indexOf(e,i);if(-1==o)break;i=o+e.length,n.push(oe(r,o))}r++}));for(var i=n.length-1;i>=0;i--)ia(t.doc,e,n[i],oe(n[i].line,n[i].ch+e.length))}})),n("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g,(function(t,e,n){t.state.specialChars=new RegExp(e.source+(e.test("\t")?"":"|\t"),"g"),n!=Ds&&t.refresh()})),n("specialCharPlaceholder",vn,(function(t){return t.refresh()}),!0),n("electricChars",!0),n("inputStyle",m?"contenteditable":"textarea",(function(){throw new Error("inputStyle can not (yet) be changed in a running editor")}),!0),n("spellcheck",!1,(function(t,e){return t.getInputField().spellcheck=e}),!0),n("autocorrect",!1,(function(t,e){return t.getInputField().autocorrect=e}),!0),n("autocapitalize",!1,(function(t,e){return t.getInputField().autocapitalize=e}),!0),n("rtlMoveVisually",!w),n("wholeLineUpdateBefore",!0),n("theme","default",(function(t){js(t),Xi(t)}),!0),n("keyMap","default",(function(t,e,n){var r=Wa(e),i=n!=Ds&&Wa(n);i&&i.detach&&i.detach(t,r),r.attach&&r.attach(t,i||null)})),n("extraKeys",null),n("configureMouse",null),n("lineWrapping",!1,Ls,!0),n("gutters",[],(function(t,e){t.display.gutterSpecs=Ki(e,t.options.lineNumbers),Xi(t)}),!0),n("fixedGutter",!0,(function(t,e){t.display.gutters.style.left=e?Rr(t.display)+"px":"0",t.refresh()}),!0),n("coverGutterNextToScrollbar",!1,(function(t){return yi(t)}),!0),n("scrollbarStyle","native",(function(t){ki(t),yi(t),t.display.scrollbars.setScrollTop(t.doc.scrollTop),t.display.scrollbars.setScrollLeft(t.doc.scrollLeft)}),!0),n("lineNumbers",!1,(function(t,e){t.display.gutterSpecs=Ki(t.options.gutters,e),Xi(t)}),!0),n("firstLineNumber",1,Xi,!0),n("lineNumberFormatter",(function(t){return t}),Xi,!0),n("showCursorWhenSelecting",!1,zr,!0),n("resetSelectionOnContextMenu",!0),n("lineWiseCopyCut",!0),n("pasteLinesPerSelection",!0),n("selectionsMayTouch",!1),n("readOnly",!1,(function(t,e){"nocursor"==e&&(Jr(t),t.display.input.blur()),t.display.input.readOnlyChanged(e)})),n("screenReaderLabel",null,(function(t,e){e=''===e?null:e,t.display.input.screenReaderLabelChanged(e)})),n("disableInput",!1,(function(t,e){e||t.display.input.reset()}),!0),n("dragDrop",!0,Zs),n("allowDropFileTypes",null),n("cursorBlinkRate",530),n("cursorScrollMargin",0),n("cursorHeight",1,zr,!0),n("singleCursorHeightPerLine",!0,zr,!0),n("workTime",100),n("workDelay",100),n("flattenSpans",!0,go,!0),n("addModeClass",!1,go,!0),n("pollInterval",100),n("undoDepth",200,(function(t,e){return t.doc.history.undoDepth=e})),n("historyEventDelay",1250),n("viewportMargin",10,(function(t){return t.refresh()}),!0),n("maxHighlightLength",1e4,go,!0),n("moveInputWithCursor",!0,(function(t,e){e||t.display.input.resetPosition()})),n("tabindex",null,(function(t,e){return t.display.input.getField().tabIndex=e||""})),n("autofocus",null),n("direction","ltr",(function(t,e){return t.doc.setDirection(e)}),!0),n("phrases",null)}function Zs(t,e,n){if(!e!=!(n&&n!=Ds)){var r=t.display.dragFunctions,i=e?pt:vt;i(t.display.scroller,"dragstart",r.start),i(t.display.scroller,"dragenter",r.enter),i(t.display.scroller,"dragover",r.over),i(t.display.scroller,"dragleave",r.leave),i(t.display.scroller,"drop",r.drop)}}function Ls(t){t.options.lineWrapping?(A(t.display.wrapper,"CodeMirror-wrap"),t.display.sizer.style.minWidth="",t.display.sizerWidth=null):(P(t.display.wrapper,"CodeMirror-wrap"),ln(t)),Mr(t),Nr(t),hr(t),setTimeout((function(){return yi(t)}),100)}function Ns(t,e){var n=this;if(!(this instanceof Ns))return new Ns(t,e);this.options=e=e?N(e):{},N(Rs,e,!1);var r=e.value;"string"==typeof r?r=new Oa(r,e.mode,null,e.lineSeparator,e.direction):e.mode&&(r.modeOption=e.mode),this.doc=r;var i=new Ns.inputStyles[e.inputStyle](this),o=this.display=new Ji(t,r,i,e);for(var c in o.wrapper.CodeMirror=this,js(this),e.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),ki(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new F,keySeq:null,specialChars:null},e.autofocus&&!m&&o.input.focus(),a&&s<11&&setTimeout((function(){return n.display.input.reset(!0)}),20),Is(this),Da(),Oi(this),this.curOp.forceUpdate=!0,bo(this,r),e.autofocus&&!m||this.hasFocus()?setTimeout((function(){n.hasFocus()&&!n.state.focused&&Xr(n)}),20):Jr(this),As)As.hasOwnProperty(c)&&As[c](this,e[c],Ds);Gi(this),e.finishInit&&e.finishInit(this);for(var u=0;u400}pt(e.scroller,"touchstart",(function(i){if(!yt(t,i)&&!o(i)&&!_s(t,i)){e.input.ensurePolled(),clearTimeout(n);var a=+new Date;e.activeTouch={start:a,moved:!1,prev:a-r.end<=300?r:null},1==i.touches.length&&(e.activeTouch.left=i.touches[0].pageX,e.activeTouch.top=i.touches[0].pageY)}})),pt(e.scroller,"touchmove",(function(){e.activeTouch&&(e.activeTouch.moved=!0)})),pt(e.scroller,"touchend",(function(n){var r=e.activeTouch;if(r&&!Un(e,n)&&null!=r.left&&!r.moved&&new Date-r.start<300){var o,a=t.coordsChar(e.activeTouch,"page");o=!r.prev||l(r,r.prev)?new oo(a,a):!r.prev.prev||l(r,r.prev.prev)?t.findWordAt(a):new oo(oe(a.line,0),he(t.doc,oe(a.line+1,0))),t.setSelection(o.anchor,o.head),t.focus(),xt(n)}i()})),pt(e.scroller,"touchcancel",i),pt(e.scroller,"scroll",(function(){e.scroller.clientHeight&&(hi(t,e.scroller.scrollTop),pi(t,e.scroller.scrollLeft,!0),mt(t,"scroll",t))})),pt(e.scroller,"mousewheel",(function(e){return ro(t,e)})),pt(e.scroller,"DOMMouseScroll",(function(e){return ro(t,e)})),pt(e.wrapper,"scroll",(function(){return e.wrapper.scrollTop=e.wrapper.scrollLeft=0})),e.dragFunctions={enter:function(e){yt(t,e)||St(e)},over:function(e){yt(t,e)||(_a(t,e),St(e))},start:function(e){return Pa(t,e)},drop:Ri(t,Sa),leave:function(e){yt(t,e)||Ta(t)}};var c=e.input.getField();pt(c,"keyup",(function(e){return fs.call(t,e)})),pt(c,"keydown",Ri(t,cs)),pt(c,"keypress",Ri(t,hs)),pt(c,"focus",(function(e){return Xr(t,e)})),pt(c,"blur",(function(e){return Jr(t,e)}))}Ns.defaults=Rs,Ns.optionHandlers=As;var Fs=[];function Bs(t,e,n,r){var i,o=t.doc;null==n&&(n="add"),"smart"==n&&(o.mode.indent?i=be(t,e).state:n="prev");var a=t.options.tabSize,s=Xt(o,e),l=I(s.text,null,a);s.stateAfter&&(s.stateAfter=null);var c,u=s.text.match(/^\s*/)[0];if(r||/\S/.test(s.text)){if("smart"==n&&((c=o.mode.indent(i,s.text.slice(u.length),s.text))==H||c>150)){if(!r)return;n="prev"}}else c=0,n="not";"prev"==n?c=e>o.first?I(Xt(o,e-1).text,null,a):0:"add"==n?c=l+t.options.indentUnit:"subtract"==n?c=l-t.options.indentUnit:"number"==typeof n&&(c=l+n),c=Math.max(0,c);var f="",h=0;if(t.options.indentWithTabs)for(var d=Math.floor(c/a);d;--d)h+=a,f+="\t";if(ha,l=Mt(e),c=null;if(s&&r.ranges.length>1)if(Vs&&Vs.text.join("\n")==e){if(r.ranges.length%Vs.text.length==0){c=[];for(var u=0;u=0;h--){var d=r.ranges[h],p=d.from(),g=d.to();d.empty()&&(n&&n>0?p=oe(p.line,p.ch-n):t.state.overwrite&&!s?g=oe(g.line,Math.min(Xt(o,g.line).text.length,g.ch+K(l).length)):s&&Vs&&Vs.lineWise&&Vs.text.join("\n")==l.join("\n")&&(p=g=oe(p.line,0)));var v={from:p,to:g,text:c?c[h%c.length]:l,origin:i||(s?"paste":t.state.cutIncoming>a?"cut":"+input")};Jo(t.doc,v),En(t,"inputRead",t,v)}e&&!s&&Ws(t,e),si(t),t.curOp.updateInput<2&&(t.curOp.updateInput=f),t.curOp.typing=!0,t.state.pasteIncoming=t.state.cutIncoming=-1}function Us(t,e){var n=t.clipboardData&&t.clipboardData.getData("Text");if(n)return t.preventDefault(),e.isReadOnly()||e.options.disableInput||Di(e,(function(){return zs(e,n,0,null,"paste")})),!0}function Ws(t,e){if(t.options.electricChars&&t.options.smartIndent)for(var n=t.doc.sel,r=n.ranges.length-1;r>=0;r--){var i=n.ranges[r];if(!(i.head.ch>100||r&&n.ranges[r-1].head.line==i.head.line)){var o=t.getModeAt(i.head),a=!1;if(o.electricChars){for(var s=0;s-1){a=Bs(t,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(Xt(t.doc,i.head.line).text.slice(0,i.head.ch))&&(a=Bs(t,i.head.line,"smart"));a&&En(t,"electricInput",t,i.head.line)}}}function $s(t){for(var e=[],n=[],r=0;rn&&(Bs(this,i.head.line,t,!0),n=i.head.line,r==this.doc.sel.primIndex&&si(this));else{var o=i.from(),a=i.to(),s=Math.max(n,o.line);n=Math.min(this.lastLine(),a.line-(a.ch?0:1))+1;for(var l=s;l0&&Io(this.doc,r,new oo(o,c[r].to()),z)}}})),getTokenAt:function(t,e){return Ce(this,t,e)},getLineTokens:function(t,e){return Ce(this,oe(t),e,!0)},getTokenTypeAt:function(t){t=he(this.doc,t);var e,n=ye(this,Xt(this.doc,t.line)),r=0,i=(n.length-1)/2,o=t.ch;if(0==o)e=n[2];else for(;;){var a=r+i>>1;if((a?n[2*a-1]:0)>=o)i=a;else{if(!(n[2*a+1]o&&(t=o,i=!0),r=Xt(this.doc,t)}else r=t;return vr(this,r,{top:0,left:0},e||"page",n||i).top+(i?this.doc.height-an(r):0)},defaultTextHeight:function(){return Er(this.display)},defaultCharWidth:function(){return jr(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(t,e,n,r,i){var o=this.display,a=(t=br(this,he(this.doc,t))).bottom,s=t.left;if(e.style.position="absolute",e.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(e),o.sizer.appendChild(e),"over"==r)a=t.top;else if("above"==r||"near"==r){var l=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);('above'==r||t.bottom+e.offsetHeight>l)&&t.top>e.offsetHeight?a=t.top-e.offsetHeight:t.bottom+e.offsetHeight<=l&&(a=t.bottom),s+e.offsetWidth>c&&(s=c-e.offsetWidth)}e.style.top=a+"px",e.style.left=e.style.right="","right"==i?(s=o.sizer.clientWidth-e.offsetWidth,e.style.right="0px"):("left"==i?s=0:"middle"==i&&(s=(o.sizer.clientWidth-e.offsetWidth)/2),e.style.left=s+"px"),n&&ii(this,{left:s,top:a,right:s+e.offsetWidth,bottom:a+e.offsetHeight})},triggerOnKeyDown:Ai(cs),triggerOnKeyPress:Ai(hs),triggerOnKeyUp:fs,triggerOnMouseDown:Ai(ys),execCommand:function(t){if(Xa.hasOwnProperty(t))return Xa[t].call(null,this)},triggerElectric:Ai((function(t){Ws(this,t)})),findPosH:function(t,e,n,r){var i=1;e<0&&(i=-1,e=-e);for(var o=he(this.doc,t),a=0;a0&&a(e.charAt(n-1));)--n;for(;r.5||this.options.lineWrapping)&&Mr(this),mt(this,"refresh",this)})),swapDoc:Ai((function(t){var e=this.doc;return e.cm=null,this.state.selectingText&&this.state.selectingText(),bo(this,t),hr(this),this.display.input.reset(),li(this,t.scrollLeft,t.scrollTop),this.curOp.forceScroll=!0,En(this,"swapDoc",this,e),e})),phrase:function(t){var e=this.options.phrases;return e&&Object.prototype.hasOwnProperty.call(e,t)?e[t]:t},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},kt(t),t.registerHelper=function(e,r,i){n.hasOwnProperty(e)||(n[e]=t[e]={_global:[]}),n[e][r]=i},t.registerGlobalHelper=function(e,r,i,o){t.registerHelper(e,r,o),n[e]._global.push({pred:i,val:o})}}function Ys(t,e,n,r,i){var o=e,a=n,s=Xt(t,e.line),l=i&&"rtl"==t.direction?-n:n;function c(){var n=e.line+l;return!(n=t.first+t.size)&&(e=new oe(n,e.ch,e.sticky),s=Xt(t,n))}function u(o){var a;if("codepoint"==r){var u=s.text.charCodeAt(e.ch+(n>0?0:-1));if(isNaN(u))a=null;else{var f=n>0?u>=55296&&u<56320:u>=56320&&u<57343;a=new oe(e.line,Math.max(0,Math.min(s.text.length,e.ch+n*(f?2:1))),-n)}}else a=i?Ya(t.cm,s,e,n):Ga(s,e,n);if(null==a){if(o||!c())return!1;e=Ka(i,t.cm,s,e.line,l)}else e=a;return!0}if("char"==r||"codepoint"==r)u();else if("column"==r)u(!0);else if("word"==r||"group"==r)for(var f=null,h="group"==r,d=t.cm&&t.cm.getHelper(e,"wordChars"),p=!0;!(n<0)||u(!p);p=!1){var g=s.text.charAt(e.ch)||"\n",v=nt(g,d)?"w":h&&"\n"==g?"n":!h||/\s/.test(g)?null:"p";if(!h||p||v||(v="s"),f&&f!=v){n<0&&(n=1,u(),e.sticky="after");break}if(v&&(f=v),n>0&&!u(!p))break}var m=Go(t,e,o,a,!0);return se(o,m)&&(m.hitSide=!0),m}function Xs(t,e,n,r){var i,o,a=t.doc,s=e.left;if("page"==r){var l=Math.min(t.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),c=Math.max(l-.5*Er(t.display),3);i=(n>0?e.bottom:e.top)+n*c}else"line"==r&&(i=n>0?e.bottom+3:e.top-3);for(;(o=xr(t,s,i)).outside;){if(n<0?i<=0:i>=a.height){o.hitSide=!0;break}i+=5*n}return o}var Js=function(t){this.cm=t,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new F,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function Qs(t,e){var n=er(t,e.line);if(!n||n.hidden)return null;var r=Xt(t.doc,e.line),i=Jn(n,r,e.line),o=ht(r,t.doc.direction),a="left";o&&(a=ut(o,e.ch)%2?"right":"left");var s=ar(i.map,e.ch,a);return s.offset="right"==s.collapse?s.end:s.start,s}function tl(t){for(var e=t;e;e=e.parentNode)if(/CodeMirror-gutter-wrapper/.test(e.className))return!0;return!1}function el(t,e){return e&&(t.bad=!0),t}function nl(t,e,n,r,i){var o="",a=!1,s=t.doc.lineSeparator(),l=!1;function c(t){return function(e){return e.id==t}}function u(){a&&(o+=s,l&&(o+=s),a=l=!1)}function f(t){t&&(u(),o+=t)}function h(e){if(1==e.nodeType){var n=e.getAttribute("cm-text");if(n)return void f(n);var o,d=e.getAttribute("cm-marker");if(d){var p=t.findMarks(oe(r,0),oe(i+1,0),c(+d));return void(p.length&&(o=p[0].find(0))&&f(Jt(t.doc,o.from,o.to).join(s)))}if("false"==e.getAttribute("contenteditable"))return;var g=/^(pre|div|p|li|table|br)$/i.test(e.nodeName);if(!/^br$/i.test(e.nodeName)&&0==e.textContent.length)return;g&&u();for(var v=0;v=e.display.viewTo||o.line=e.display.viewFrom&&Qs(e,i)||{node:l[0].measure.map[2],offset:0},u=o.liner.firstLine()&&(a=oe(a.line-1,Xt(r.doc,a.line-1).length)),s.ch==Xt(r.doc,s.line).text.length&&s.linei.viewTo-1)return!1;a.line==i.viewFrom||0==(t=Lr(r,a.line))?(e=ee(i.view[0].line),n=i.view[0].node):(e=ee(i.view[t].line),n=i.view[t-1].node.nextSibling);var l,c,u=Lr(r,s.line);if(u==i.view.length-1?(l=i.viewTo-1,c=i.lineDiv.lastChild):(l=ee(i.view[u+1].line)-1,c=i.view[u+1].node.previousSibling),!n)return!1;for(var f=r.doc.splitLines(nl(r,n,c,e,l)),h=Jt(r.doc,oe(e,0),oe(l,Xt(r.doc,l).text.length));f.length>1&&h.length>1;)if(K(f)==K(h))f.pop(),h.pop(),l--;else{if(f[0]!=h[0])break;f.shift(),h.shift(),e++}for(var d=0,p=0,g=f[0],v=h[0],m=Math.min(g.length,v.length);da.ch&&y.charCodeAt(y.length-p-1)==b.charCodeAt(b.length-p-1);)d--,p++;f[f.length-1]=y.slice(0,y.length-p).replace(/^\u200b+/,""),f[0]=f[0].slice(d).replace(/\u200b+$/,"");var k=oe(e,d),x=oe(l,h.length?K(h).length-p:0);return f.length>1||f[0]||ae(k,x)?(ia(r.doc,f,k,x,"+input"),!0):void 0},Js.prototype.ensurePolled=function(){this.forceCompositionEnd()},Js.prototype.reset=function(){this.forceCompositionEnd()},Js.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Js.prototype.readFromDOMSoon=function(){var t=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout((function(){if(t.readDOMTimeout=null,t.composing){if(!t.composing.done)return;t.composing=null}t.updateFromDOM()}),80))},Js.prototype.updateFromDOM=function(){var t=this;!this.cm.isReadOnly()&&this.pollContent()||Di(this.cm,(function(){return Nr(t.cm)}))},Js.prototype.setUneditable=function(t){t.contentEditable="false"},Js.prototype.onKeyPress=function(t){0==t.charCode||this.composing||(t.preventDefault(),this.cm.isReadOnly()||Ri(this.cm,zs)(this.cm,String.fromCharCode(null==t.charCode?t.keyCode:t.charCode),0))},Js.prototype.readOnlyChanged=function(t){this.div.contentEditable=String("nocursor"!=t)},Js.prototype.onContextMenu=function(){},Js.prototype.resetPosition=function(){},Js.prototype.needsContentAttribute=!0;var ol=function(t){this.cm=t,this.prevInput="",this.pollingFast=!1,this.polling=new F,this.hasSelection=!1,this.composing=null};function al(t,e){if((e=e?N(e):{}).value=t.value,!e.tabindex&&t.tabIndex&&(e.tabindex=t.tabIndex),!e.placeholder&&t.placeholder&&(e.placeholder=t.placeholder),null==e.autofocus){var n=R();e.autofocus=n==t||null!=t.getAttribute("autofocus")&&n==document.body}function r(){t.value=s.getValue()}var i;if(t.form&&(pt(t.form,"submit",r),!e.leaveSubmitMethodAlone)){var o=t.form;i=o.submit;try{var a=o.submit=function(){r(),o.submit=i,o.submit(),o.submit=a}}catch(t){}}e.finishInit=function(n){n.save=r,n.getTextArea=function(){return t},n.toTextArea=function(){n.toTextArea=isNaN,r(),t.parentNode.removeChild(n.getWrapperElement()),t.style.display="",t.form&&(vt(t.form,"submit",r),e.leaveSubmitMethodAlone||"function"!=typeof t.form.submit||(t.form.submit=i))}},t.style.display="none";var s=Ns((function(e){return t.parentNode.insertBefore(e,t.nextSibling)}),e);return s}function sl(t){t.off=vt,t.on=pt,t.wheelEventPixels=no,t.Doc=Oa,t.splitLines=Mt,t.countColumn=I,t.findColumn=$,t.isWordChar=et,t.Pass=H,t.signal=mt,t.Line=cn,t.changeEnd=lo,t.scrollbarModel=wi,t.Pos=oe,t.cmpPos=ae,t.modes=Ft,t.mimeModes=Bt,t.resolveMode=zt,t.getMode=Ut,t.modeExtensions=Wt,t.extendMode=$t,t.copyState=qt,t.startState=Kt,t.innerMode=Gt,t.commands=Xa,t.keyMap=Ia,t.keyName=Ua,t.isModifierKey=Ha,t.lookupKey=Va,t.normalizeKeyMap=Ba,t.StringStream=Yt,t.SharedTextMarker=ma,t.TextMarker=ga,t.LineWidget=fa,t.e_preventDefault=xt,t.e_stopPropagation=Ot,t.e_stop=St,t.addClass=A,t.contains=D,t.rmClass=P,t.keyNames=Ma}ol.prototype.init=function(t){var e=this,n=this,r=this.cm;this.createField(t);var i=this.textarea;function o(t){if(!yt(r,t)){if(r.somethingSelected())Hs({lineWise:!1,text:r.getSelections()});else{if(!r.options.lineWiseCopyCut)return;var e=$s(r);Hs({lineWise:!0,text:e.text}),"cut"==t.type?r.setSelections(e.ranges,null,z):(n.prevInput="",i.value=e.text.join("\n"),Z(i))}"cut"==t.type&&(r.state.cutIncoming=+new Date)}}t.wrapper.insertBefore(this.wrapper,t.wrapper.firstChild),g&&(i.style.width="0px"),pt(i,"input",(function(){a&&s>=9&&e.hasSelection&&(e.hasSelection=null),n.poll()})),pt(i,"paste",(function(t){yt(r,t)||Us(t,r)||(r.state.pasteIncoming=+new Date,n.fastPoll())})),pt(i,"cut",o),pt(i,"copy",o),pt(t.scroller,"paste",(function(e){if(!Un(t,e)&&!yt(r,e)){if(!i.dispatchEvent)return r.state.pasteIncoming=+new Date,void n.focus();var o=new Event("paste");o.clipboardData=e.clipboardData,i.dispatchEvent(o)}})),pt(t.lineSpace,"selectstart",(function(e){Un(t,e)||xt(e)})),pt(i,"compositionstart",(function(){var t=r.getCursor("from");n.composing&&n.composing.range.clear(),n.composing={start:t,range:r.markText(t,r.getCursor("to"),{className:"CodeMirror-composing"})}})),pt(i,"compositionend",(function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)}))},ol.prototype.createField=function(t){this.wrapper=Gs(),this.textarea=this.wrapper.firstChild},ol.prototype.screenReaderLabelChanged=function(t){t?this.textarea.setAttribute('aria-label',t):this.textarea.removeAttribute('aria-label')},ol.prototype.prepareSelection=function(){var t=this.cm,e=t.display,n=t.doc,r=Ur(t);if(t.options.moveInputWithCursor){var i=br(t,n.sel.primary().head,"div"),o=e.wrapper.getBoundingClientRect(),a=e.lineDiv.getBoundingClientRect();r.teTop=Math.max(0,Math.min(e.wrapper.clientHeight-10,i.top+a.top-o.top)),r.teLeft=Math.max(0,Math.min(e.wrapper.clientWidth-10,i.left+a.left-o.left))}return r},ol.prototype.showSelection=function(t){var e=this.cm.display;T(e.cursorDiv,t.cursors),T(e.selectionDiv,t.selection),null!=t.teTop&&(this.wrapper.style.top=t.teTop+"px",this.wrapper.style.left=t.teLeft+"px")},ol.prototype.reset=function(t){if(!this.contextMenuPending&&!this.composing){var e=this.cm;if(e.somethingSelected()){this.prevInput="";var n=e.getSelection();this.textarea.value=n,e.state.focused&&Z(this.textarea),a&&s>=9&&(this.hasSelection=n)}else t||(this.prevInput=this.textarea.value="",a&&s>=9&&(this.hasSelection=null))}},ol.prototype.getField=function(){return this.textarea},ol.prototype.supportsTouch=function(){return!1},ol.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!m||R()!=this.textarea))try{this.textarea.focus()}catch(t){}},ol.prototype.blur=function(){this.textarea.blur()},ol.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},ol.prototype.receivedFocus=function(){this.slowPoll()},ol.prototype.slowPoll=function(){var t=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,(function(){t.poll(),t.cm.state.focused&&t.slowPoll()}))},ol.prototype.fastPoll=function(){var t=!1,e=this;function n(){e.poll()||t?(e.pollingFast=!1,e.slowPoll()):(t=!0,e.polling.set(60,n))}e.pollingFast=!0,e.polling.set(20,n)},ol.prototype.poll=function(){var t=this,e=this.cm,n=this.textarea,r=this.prevInput;if(this.contextMenuPending||!e.state.focused||Zt(n)&&!r&&!this.composing||e.isReadOnly()||e.options.disableInput||e.state.keySeq)return!1;var i=n.value;if(i==r&&!e.somethingSelected())return!1;if(a&&s>=9&&this.hasSelection===i||y&&/[\uf700-\uf7ff]/.test(i))return e.display.input.reset(),!1;if(e.doc.sel==e.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||r||(r="​"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var l=0,c=Math.min(r.length,i.length);l1e3||i.indexOf("\n")>-1?n.value=t.prevInput="":t.prevInput=i,t.composing&&(t.composing.range.clear(),t.composing.range=e.markText(t.composing.start,e.getCursor("to"),{className:"CodeMirror-composing"}))})),!0},ol.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},ol.prototype.onKeyPress=function(){a&&s>=9&&(this.hasSelection=null),this.fastPoll()},ol.prototype.onContextMenu=function(t){var e=this,n=e.cm,r=n.display,i=e.textarea;e.contextMenuPending&&e.contextMenuPending();var o=Zr(n,t),c=r.scroller.scrollTop;if(o&&!f){n.options.resetSelectionOnContextMenu&&-1==n.doc.sel.contains(o)&&Ri(n,Ho)(n.doc,so(o),z);var u,h=i.style.cssText,d=e.wrapper.style.cssText,p=e.wrapper.offsetParent.getBoundingClientRect();if(e.wrapper.style.cssText="position: static",i.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(t.clientY-p.top-5)+"px; left: "+(t.clientX-p.left-5)+"px;\n z-index: 1000; background: "+(a?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",l&&(u=window.scrollY),r.input.focus(),l&&window.scrollTo(null,u),r.input.reset(),n.somethingSelected()||(i.value=e.prevInput=" "),e.contextMenuPending=m,r.selForContextMenu=n.doc.sel,clearTimeout(r.detectingSelectAll),a&&s>=9&&v(),O){St(t);var g=function(){vt(window,"mouseup",g),setTimeout(m,20)};pt(window,"mouseup",g)}else setTimeout(m,50)}function v(){if(null!=i.selectionStart){var t=n.somethingSelected(),o="​"+(t?i.value:"");i.value="⇚",i.value=o,e.prevInput=t?"":"​",i.selectionStart=1,i.selectionEnd=o.length,r.selForContextMenu=n.doc.sel}}function m(){if(e.contextMenuPending==m&&(e.contextMenuPending=!1,e.wrapper.style.cssText=d,i.style.cssText=h,a&&s<9&&r.scrollbars.setScrollTop(r.scroller.scrollTop=c),null!=i.selectionStart)){(!a||a&&s<9)&&v();var t=0,o=function(){r.selForContextMenu==n.doc.sel&&0==i.selectionStart&&i.selectionEnd>0&&"​"==e.prevInput?Ri(n,Yo)(n):t++<10?r.detectingSelectAll=setTimeout(o,500):(r.selForContextMenu=null,r.input.reset())};r.detectingSelectAll=setTimeout(o,200)}}},ol.prototype.readOnlyChanged=function(t){t||this.reset(),this.textarea.disabled="nocursor"==t,this.textarea.readOnly=!!t},ol.prototype.setUneditable=function(){},ol.prototype.needsContentAttribute=!1,Ms(Ns),Ks(Ns);var ll="iter insert remove copy getEditor constructor".split(" ");for(var cl in Oa.prototype)Oa.prototype.hasOwnProperty(cl)&&B(ll,cl)<0&&(Ns.prototype[cl]=function(t){return function(){return t.apply(this.doc,arguments)}}(Oa.prototype[cl]));return kt(Oa),Ns.inputStyles={textarea:ol,contenteditable:Js},Ns.defineMode=function(t){Ns.defaults.mode||"null"==t||(Ns.defaults.mode=t),Vt.apply(this,arguments)},Ns.defineMIME=Ht,Ns.defineMode("null",(function(){return{token:function(t){return t.skipToEnd()}}})),Ns.defineMIME("text/plain","null"),Ns.defineExtension=function(t,e){Ns.prototype[t]=e},Ns.defineDocExtension=function(t,e){Oa.prototype[t]=e},Ns.fromTextArea=al,sl(Ns),Ns.version="5.63.0",Ns}()},6629:(t,e,n)=>{!function(t){"use strict";function e(t){for(var e={},n=0;n*\/]/.test(n)?x(null,"select-op"):"."==n&&t.match(/^-?[_a-z][_a-z0-9-]*/i)?x("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(n)?x(null,n):t.match(/^[\w-.]+(?=\()/)?(/^(url(-prefix)?|domain|regexp)$/i.test(t.current())&&(e.tokenize=S),x("variable callee","variable")):/[\w\\\-]/.test(n)?(t.eatWhile(/[\w\\\-]/),x("property","word")):x(null,null):/[\d.]/.test(t.peek())?(t.eatWhile(/[\w.%]/),x("number","unit")):t.match(/^-[\w\\\-]*/)?(t.eatWhile(/[\w\\\-]/),t.match(/^\s*:/,!1)?x("variable-2","variable-definition"):x("variable-2","variable")):t.match(/^\w+-/)?x("meta","meta"):void 0}function C(t){return function(e,n){for(var r,i=!1;null!=(r=e.next());){if(r==t&&!i){")"==t&&e.backUp(1);break}i=!i&&"\\"==r}return(r==t||!i&&")"!=t)&&(n.tokenize=null),x("string","string")}}function S(t,e){return t.next(),t.match(/^\s*[\"\')]/,!1)?e.tokenize=null:e.tokenize=C(")"),x(null,"(")}function P(t,e,n){this.type=t,this.indent=e,this.prev=n}function _(t,e,n,r){return t.context=new P(n,e.indentation()+(!1===r?0:a),t.context),n}function T(t){return t.context.prev&&(t.context=t.context.prev),t.context.type}function E(t,e,n){return R[n.context.type](t,e,n)}function j(t,e,n,r){for(var i=r||1;i>0;i--)n.context=n.context.prev;return E(t,e,n)}function D(t){var e=t.current().toLowerCase();o=m.hasOwnProperty(e)?"atom":v.hasOwnProperty(e)?"keyword":"variable"}var R={top:function(t,e,n){if("{"==t)return _(n,e,"block");if("}"==t&&n.context.prev)return T(n);if(w&&/@component/i.test(t))return _(n,e,"atComponentBlock");if(/^@(-moz-)?document$/i.test(t))return _(n,e,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/i.test(t))return _(n,e,"atBlock");if(/^@(font-face|counter-style)/i.test(t))return n.stateArg=t,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(t))return"keyframes";if(t&&"@"==t.charAt(0))return _(n,e,"at");if("hash"==t)o="builtin";else if("word"==t)o="tag";else{if("variable-definition"==t)return"maybeprop";if("interpolation"==t)return _(n,e,"interpolation");if(":"==t)return"pseudo";if(y&&"("==t)return _(n,e,"parens")}return n.context.type},block:function(t,e,n){if("word"==t){var r=e.current().toLowerCase();return h.hasOwnProperty(r)?(o="property","maybeprop"):d.hasOwnProperty(r)?(o=k?"string-2":"property","maybeprop"):y?(o=e.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(o+=" error","maybeprop")}return"meta"==t?"block":y||"hash"!=t&&"qualifier"!=t?R.top(t,e,n):(o="error","block")},maybeprop:function(t,e,n){return":"==t?_(n,e,"prop"):E(t,e,n)},prop:function(t,e,n){if(";"==t)return T(n);if("{"==t&&y)return _(n,e,"propBlock");if("}"==t||"{"==t)return j(t,e,n);if("("==t)return _(n,e,"parens");if("hash"!=t||/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(e.current())){if("word"==t)D(e);else if("interpolation"==t)return _(n,e,"interpolation")}else o+=" error";return"prop"},propBlock:function(t,e,n){return"}"==t?T(n):"word"==t?(o="property","maybeprop"):n.context.type},parens:function(t,e,n){return"{"==t||"}"==t?j(t,e,n):")"==t?T(n):"("==t?_(n,e,"parens"):"interpolation"==t?_(n,e,"interpolation"):("word"==t&&D(e),"parens")},pseudo:function(t,e,n){return"meta"==t?"pseudo":"word"==t?(o="variable-3",n.context.type):E(t,e,n)},documentTypes:function(t,e,n){return"word"==t&&l.hasOwnProperty(e.current())?(o="tag",n.context.type):R.atBlock(t,e,n)},atBlock:function(t,e,n){if("("==t)return _(n,e,"atBlock_parens");if("}"==t||";"==t)return j(t,e,n);if("{"==t)return T(n)&&_(n,e,y?"block":"top");if("interpolation"==t)return _(n,e,"interpolation");if("word"==t){var r=e.current().toLowerCase();o="only"==r||"not"==r||"and"==r||"or"==r?"keyword":c.hasOwnProperty(r)?"attribute":u.hasOwnProperty(r)?"property":f.hasOwnProperty(r)?"keyword":h.hasOwnProperty(r)?"property":d.hasOwnProperty(r)?k?"string-2":"property":m.hasOwnProperty(r)?"atom":v.hasOwnProperty(r)?"keyword":"error"}return n.context.type},atComponentBlock:function(t,e,n){return"}"==t?j(t,e,n):"{"==t?T(n)&&_(n,e,y?"block":"top",!1):("word"==t&&(o="error"),n.context.type)},atBlock_parens:function(t,e,n){return")"==t?T(n):"{"==t||"}"==t?j(t,e,n,2):R.atBlock(t,e,n)},restricted_atBlock_before:function(t,e,n){return"{"==t?_(n,e,"restricted_atBlock"):"word"==t&&"@counter-style"==n.stateArg?(o="variable","restricted_atBlock_before"):E(t,e,n)},restricted_atBlock:function(t,e,n){return"}"==t?(n.stateArg=null,T(n)):"word"==t?(o="@font-face"==n.stateArg&&!p.hasOwnProperty(e.current().toLowerCase())||"@counter-style"==n.stateArg&&!g.hasOwnProperty(e.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},keyframes:function(t,e,n){return"word"==t?(o="variable","keyframes"):"{"==t?_(n,e,"top"):E(t,e,n)},at:function(t,e,n){return";"==t?T(n):"{"==t||"}"==t?j(t,e,n):("word"==t?o="tag":"hash"==t&&(o="builtin"),"at")},interpolation:function(t,e,n){return"}"==t?T(n):"{"==t||";"==t?j(t,e,n):("word"==t?o="variable":"variable"!=t&&"("!=t&&")"!=t&&(o="error"),"interpolation")}};return{startState:function(t){return{tokenize:null,state:r?"block":"top",stateArg:null,context:new P(r?"block":"top",t||0,null)}},token:function(t,e){if(!e.tokenize&&t.eatSpace())return null;var n=(e.tokenize||O)(t,e);return n&&"object"==typeof n&&(i=n[1],n=n[0]),o=n,"comment"!=i&&(e.state=R[e.state](i,t,e)),o},indent:function(t,e){var n=t.context,r=e&&e.charAt(0),i=n.indent;return"prop"!=n.type||"}"!=r&&")"!=r||(n=n.prev),n.prev&&("}"!=r||"block"!=n.type&&"top"!=n.type&&"interpolation"!=n.type&&"restricted_atBlock"!=n.type?(")"!=r||"parens"!=n.type&&"atBlock_parens"!=n.type)&&("{"!=r||"at"!=n.type&&"atBlock"!=n.type)||(i=Math.max(0,n.indent-a)):i=(n=n.prev).indent),i},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:b,fold:"brace"}}));var n=["domain","regexp","url","url-prefix"],r=e(n),i=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],o=e(i),a=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover","prefers-color-scheme"],s=e(a),l=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive","dark","light"],c=e(l),u=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","all","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","binding","bleed","block-size","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-content","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","inset","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","left","letter-spacing","line-break","line-height","line-height-step","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","place-content","place-items","place-self","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotate","rotation","rotation-point","row-gap","ruby-align","ruby-overhang","ruby-position","ruby-span","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-type","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-orientation","text-outline","text-overflow","text-rendering","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","touch-action","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-select","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","paint-order","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],f=e(u),h=["accent-color","aspect-ratio","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","content-visibility","margin-block","margin-block-end","margin-block-start","margin-inline","margin-inline-end","margin-inline-start","overflow-anchor","overscroll-behavior","padding-block","padding-block-end","padding-block-start","padding-inline","padding-inline-end","padding-inline-start","scroll-snap-stop","scrollbar-3d-light-color","scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-track-color","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","shape-inside","zoom"],d=e(h),p=e(["font-display","font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"]),g=e(["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"]),v=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],m=e(v),y=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","blur","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","brightness","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","contrast","copy","counter","counters","cover","crop","cross","crosshair","cubic-bezier","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","devanagari","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","drop-shadow","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","grayscale","graytext","grid","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hard-light","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","hue","hue-rotate","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","luminosity","malayalam","manipulation","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","multiple_mask_images","multiply","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","opacity","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturate","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","self-start","self-end","semi-condensed","semi-expanded","separate","sepia","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","square-button","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],b=e(y),w=n.concat(i).concat(a).concat(l).concat(u).concat(h).concat(v).concat(y);function k(t,e){for(var n,r=!1;null!=(n=t.next());){if(r&&"/"==n){e.tokenize=null;break}r="*"==n}return["comment","comment"]}t.registerHelper("hintWords","css",w),t.defineMIME("text/css",{documentTypes:r,mediaTypes:o,mediaFeatures:s,mediaValueKeywords:c,propertyKeywords:f,nonStandardPropertyKeywords:d,fontProperties:p,counterDescriptors:g,colorKeywords:m,valueKeywords:b,tokenHooks:{"/":function(t,e){return!!t.eat("*")&&(e.tokenize=k,k(t,e))}},name:"css"}),t.defineMIME("text/x-scss",{mediaTypes:o,mediaFeatures:s,mediaValueKeywords:c,propertyKeywords:f,nonStandardPropertyKeywords:d,colorKeywords:m,valueKeywords:b,fontProperties:p,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(t,e){return t.eat("/")?(t.skipToEnd(),["comment","comment"]):t.eat("*")?(e.tokenize=k,k(t,e)):["operator","operator"]},":":function(t){return!!t.match(/^\s*\{/,!1)&&[null,null]},$:function(t){return t.match(/^[\w-]+/),t.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"]},"#":function(t){return!!t.eat("{")&&[null,"interpolation"]}},name:"css",helperType:"scss"}),t.defineMIME("text/x-less",{mediaTypes:o,mediaFeatures:s,mediaValueKeywords:c,propertyKeywords:f,nonStandardPropertyKeywords:d,colorKeywords:m,valueKeywords:b,fontProperties:p,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(t,e){return t.eat("/")?(t.skipToEnd(),["comment","comment"]):t.eat("*")?(e.tokenize=k,k(t,e)):["operator","operator"]},"@":function(t){return t.eat("{")?[null,"interpolation"]:!t.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/i,!1)&&(t.eatWhile(/[\w\\\-]/),t.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"}),t.defineMIME("text/x-gss",{documentTypes:r,mediaTypes:o,mediaFeatures:s,propertyKeywords:f,nonStandardPropertyKeywords:d,fontProperties:p,counterDescriptors:g,colorKeywords:m,valueKeywords:b,supportsAtComponent:!0,tokenHooks:{"/":function(t,e){return!!t.eat("*")&&(e.tokenize=k,k(t,e))}},name:"css",helperType:"gss"})}(n(4631))},6531:(t,e,n)=>{!function(t){"use strict";var e={script:[["lang",/(javascript|babel)/i,"javascript"],["type",/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i,"javascript"],["type",/./,"text/plain"],[null,null,"javascript"]],style:[["lang",/^css$/i,"css"],["type",/^(text\/)?(x-)?(stylesheet|css)$/i,"css"],["type",/./,"text/plain"],[null,null,"css"]]};function n(t,e,n){var r=t.current(),i=r.search(e);return i>-1?t.backUp(r.length-i):r.match(/<\/?$/)&&(t.backUp(r.length),t.match(e,!1)||t.match(r)),n}var r={};function i(t){var e=r[t];return e||(r[t]=new RegExp("\\s+"+t+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*"))}function o(t,e){var n=t.match(i(e));return n?/^\s*(.*?)\s*$/.exec(n[2])[1]:""}function a(t,e){return new RegExp((e?"^":"")+"","i")}function s(t,e){for(var n in t)for(var r=e[n]||(e[n]=[]),i=t[n],o=i.length-1;o>=0;o--)r.unshift(i[o])}function l(t,e){for(var n=0;n=0;h--)c.script.unshift(["type",f[h].matches,f[h].mode]);function d(e,i){var s,u=o.token(e,i.htmlState),f=/\btag\b/.test(u);if(f&&!/[<>\s\/]/.test(e.current())&&(s=i.htmlState.tagName&&i.htmlState.tagName.toLowerCase())&&c.hasOwnProperty(s))i.inTag=s+" ";else if(i.inTag&&f&&/>$/.test(e.current())){var h=/^([\S]+) (.*)/.exec(i.inTag);i.inTag=null;var p=">"==e.current()&&l(c[h[1]],h[2]),g=t.getMode(r,p),v=a(h[1],!0),m=a(h[1],!1);i.token=function(t,e){return t.match(v,!1)?(e.token=d,e.localState=e.localMode=null,null):n(t,m,e.localMode.token(t,e.localState))},i.localMode=g,i.localState=t.startState(g,o.indent(i.htmlState,"",""))}else i.inTag&&(i.inTag+=e.current(),e.eol()&&(i.inTag+=" "));return u}return{startState:function(){return{token:d,inTag:null,localMode:null,localState:null,htmlState:t.startState(o)}},copyState:function(e){var n;return e.localState&&(n=t.copyState(e.localMode,e.localState)),{token:e.token,inTag:e.inTag,localMode:e.localMode,localState:n,htmlState:t.copyState(o,e.htmlState)}},token:function(t,e){return e.token(t,e)},indent:function(e,n,r){return!e.localMode||/^\s*<\//.test(n)?o.indent(e.htmlState,n,r):e.localMode.indent?e.localMode.indent(e.localState,n,r):t.Pass},innerMode:function(t){return{state:t.localState||t.htmlState,mode:t.localMode||o}}}}),"xml","javascript","css"),t.defineMIME("text/html","htmlmixed")}(n(4631),n(9589),n(6876),n(6629))},6876:(t,e,n)=>{!function(t){"use strict";t.defineMode("javascript",(function(e,n){var r,i,o=e.indentUnit,a=n.statementIndent,s=n.jsonld,l=n.json||s,c=!1!==n.trackScope,u=n.typescript,f=n.wordCharacters||/[\w$\xa1-\uffff]/,h=function(){function t(t){return{type:t,style:"keyword"}}var e=t("keyword a"),n=t("keyword b"),r=t("keyword c"),i=t("keyword d"),o=t("operator"),a={type:"atom",style:"atom"};return{if:t("if"),while:e,with:e,else:n,do:n,try:n,finally:n,return:i,break:i,continue:i,new:t("new"),delete:r,void:r,throw:r,debugger:t("debugger"),var:t("var"),const:t("var"),let:t("var"),function:t("function"),catch:t("catch"),for:t("for"),switch:t("switch"),case:t("case"),default:t("default"),in:o,typeof:o,instanceof:o,true:a,false:a,null:a,undefined:a,NaN:a,Infinity:a,this:t("this"),class:t("class"),super:t("atom"),yield:r,export:t("export"),import:t("import"),extends:r,await:r}}(),d=/[+\-*&%=<>!?|~^@]/,p=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function g(t){for(var e,n=!1,r=!1;null!=(e=t.next());){if(!n){if("/"==e&&!r)return;"["==e?r=!0:r&&"]"==e&&(r=!1)}n=!n&&"\\"==e}}function v(t,e,n){return r=t,i=n,e}function m(t,e){var n=t.next();if('"'==n||"'"==n)return e.tokenize=y(n),e.tokenize(t,e);if("."==n&&t.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return v("number","number");if("."==n&&t.match(".."))return v("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(n))return v(n);if("="==n&&t.eat(">"))return v("=>","operator");if("0"==n&&t.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return v("number","number");if(/\d/.test(n))return t.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),v("number","number");if("/"==n)return t.eat("*")?(e.tokenize=b,b(t,e)):t.eat("/")?(t.skipToEnd(),v("comment","comment")):ie(t,e,1)?(g(t),t.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),v("regexp","string-2")):(t.eat("="),v("operator","operator",t.current()));if("`"==n)return e.tokenize=w,w(t,e);if("#"==n&&"!"==t.peek())return t.skipToEnd(),v("meta","meta");if("#"==n&&t.eatWhile(f))return v("variable","property");if("<"==n&&t.match("!--")||"-"==n&&t.match("->")&&!/\S/.test(t.string.slice(0,t.start)))return t.skipToEnd(),v("comment","comment");if(d.test(n))return">"==n&&e.lexical&&">"==e.lexical.type||(t.eat("=")?"!"!=n&&"="!=n||t.eat("="):/[<>*+\-|&?]/.test(n)&&(t.eat(n),">"==n&&t.eat(n))),"?"==n&&t.eat(".")?v("."):v("operator","operator",t.current());if(f.test(n)){t.eatWhile(f);var r=t.current();if("."!=e.lastType){if(h.propertyIsEnumerable(r)){var i=h[r];return v(i.type,i.style,r)}if("async"==r&&t.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return v("async","keyword",r)}return v("variable","variable",r)}}function y(t){return function(e,n){var r,i=!1;if(s&&"@"==e.peek()&&e.match(p))return n.tokenize=m,v("jsonld-keyword","meta");for(;null!=(r=e.next())&&(r!=t||i);)i=!i&&"\\"==r;return i||(n.tokenize=m),v("string","string")}}function b(t,e){for(var n,r=!1;n=t.next();){if("/"==n&&r){e.tokenize=m;break}r="*"==n}return v("comment","comment")}function w(t,e){for(var n,r=!1;null!=(n=t.next());){if(!r&&("`"==n||"$"==n&&t.eat("{"))){e.tokenize=m;break}r=!r&&"\\"==n}return v("quasi","string-2",t.current())}var k="([{}])";function x(t,e){e.fatArrowAt&&(e.fatArrowAt=null);var n=t.string.indexOf("=>",t.start);if(!(n<0)){if(u){var r=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(t.string.slice(t.start,n));r&&(n=r.index)}for(var i=0,o=!1,a=n-1;a>=0;--a){var s=t.string.charAt(a),l=k.indexOf(s);if(l>=0&&l<3){if(!i){++a;break}if(0==--i){"("==s&&(o=!0);break}}else if(l>=3&&l<6)++i;else if(f.test(s))o=!0;else if(/["'\/`]/.test(s))for(;;--a){if(0==a)return;if(t.string.charAt(a-1)==s&&"\\"!=t.string.charAt(a-2)){a--;break}}else if(o&&!i){++a;break}}o&&!i&&(e.fatArrowAt=a)}}var O={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function C(t,e,n,r,i,o){this.indented=t,this.column=e,this.type=n,this.prev=i,this.info=o,null!=r&&(this.align=r)}function S(t,e){if(!c)return!1;for(var n=t.localVars;n;n=n.next)if(n.name==e)return!0;for(var r=t.context;r;r=r.prev)for(n=r.vars;n;n=n.next)if(n.name==e)return!0}function P(t,e,n,r,i){var o=t.cc;for(_.state=t,_.stream=i,_.marked=null,_.cc=o,_.style=e,t.lexical.hasOwnProperty("align")||(t.lexical.align=!0);;)if((o.length?o.pop():l?W:z)(n,r)){for(;o.length&&o[o.length-1].lex;)o.pop()();return _.marked?_.marked:"variable"==n&&S(t,r)?"variable-2":e}}var _={state:null,column:null,marked:null,cc:null};function T(){for(var t=arguments.length-1;t>=0;t--)_.cc.push(arguments[t])}function E(){return T.apply(null,arguments),!0}function j(t,e){for(var n=e;n;n=n.next)if(n.name==t)return!0;return!1}function D(t){var e=_.state;if(_.marked="def",c){if(e.context)if("var"==e.lexical.info&&e.context&&e.context.block){var r=R(t,e.context);if(null!=r)return void(e.context=r)}else if(!j(t,e.localVars))return void(e.localVars=new Z(t,e.localVars));n.globalVars&&!j(t,e.globalVars)&&(e.globalVars=new Z(t,e.globalVars))}}function R(t,e){if(e){if(e.block){var n=R(t,e.prev);return n?n==e.prev?e:new M(n,e.vars,!0):null}return j(t,e.vars)?e:new M(e.prev,new Z(t,e.vars),!1)}return null}function A(t){return"public"==t||"private"==t||"protected"==t||"abstract"==t||"readonly"==t}function M(t,e,n){this.prev=t,this.vars=e,this.block=n}function Z(t,e){this.name=t,this.next=e}var L=new Z("this",new Z("arguments",null));function N(){_.state.context=new M(_.state.context,_.state.localVars,!1),_.state.localVars=L}function I(){_.state.context=new M(_.state.context,_.state.localVars,!0),_.state.localVars=null}function F(){_.state.localVars=_.state.context.vars,_.state.context=_.state.context.prev}function B(t,e){var n=function(){var n=_.state,r=n.indented;if("stat"==n.lexical.type)r=n.lexical.indented;else for(var i=n.lexical;i&&")"==i.type&&i.align;i=i.prev)r=i.indented;n.lexical=new C(r,_.stream.column(),t,null,n.lexical,e)};return n.lex=!0,n}function V(){var t=_.state;t.lexical.prev&&(")"==t.lexical.type&&(t.indented=t.lexical.indented),t.lexical=t.lexical.prev)}function H(t){function e(n){return n==t?E():";"==t||"}"==n||")"==n||"]"==n?T():E(e)}return e}function z(t,e){return"var"==t?E(B("vardef",e),Tt,H(";"),V):"keyword a"==t?E(B("form"),q,z,V):"keyword b"==t?E(B("form"),z,V):"keyword d"==t?_.stream.match(/^\s*$/,!1)?E():E(B("stat"),K,H(";"),V):"debugger"==t?E(H(";")):"{"==t?E(B("}"),I,ht,V,F):";"==t?E():"if"==t?("else"==_.state.lexical.info&&_.state.cc[_.state.cc.length-1]==V&&_.state.cc.pop()(),E(B("form"),q,z,V,Mt)):"function"==t?E(It):"for"==t?E(B("form"),I,Zt,z,F,V):"class"==t||u&&"interface"==e?(_.marked="keyword",E(B("form","class"==t?t:e),zt,V)):"variable"==t?u&&"declare"==e?(_.marked="keyword",E(z)):u&&("module"==e||"enum"==e||"type"==e)&&_.stream.match(/^\s*\w/,!1)?(_.marked="keyword","enum"==e?E(ee):"type"==e?E(Bt,H("operator"),mt,H(";")):E(B("form"),Et,H("{"),B("}"),ht,V,V)):u&&"namespace"==e?(_.marked="keyword",E(B("form"),W,z,V)):u&&"abstract"==e?(_.marked="keyword",E(z)):E(B("stat"),ot):"switch"==t?E(B("form"),q,H("{"),B("}","switch"),I,ht,V,V,F):"case"==t?E(W,H(":")):"default"==t?E(H(":")):"catch"==t?E(B("form"),N,U,z,V,F):"export"==t?E(B("stat"),qt,V):"import"==t?E(B("stat"),Kt,V):"async"==t?E(z):"@"==e?E(W,z):T(B("stat"),W,H(";"),V)}function U(t){if("("==t)return E(Vt,H(")"))}function W(t,e){return G(t,e,!1)}function $(t,e){return G(t,e,!0)}function q(t){return"("!=t?T():E(B(")"),K,H(")"),V)}function G(t,e,n){if(_.state.fatArrowAt==_.stream.start){var r=n?et:tt;if("("==t)return E(N,B(")"),ut(Vt,")"),V,H("=>"),r,F);if("variable"==t)return T(N,Et,H("=>"),r,F)}var i=n?X:Y;return O.hasOwnProperty(t)?E(i):"function"==t?E(It,i):"class"==t||u&&"interface"==e?(_.marked="keyword",E(B("form"),Ht,V)):"keyword c"==t||"async"==t?E(n?$:W):"("==t?E(B(")"),K,H(")"),V,i):"operator"==t||"spread"==t?E(n?$:W):"["==t?E(B("]"),te,V,i):"{"==t?ft(st,"}",null,i):"quasi"==t?T(J,i):"new"==t?E(nt(n)):E()}function K(t){return t.match(/[;\}\)\],]/)?T():T(W)}function Y(t,e){return","==t?E(K):X(t,e,!1)}function X(t,e,n){var r=0==n?Y:X,i=0==n?W:$;return"=>"==t?E(N,n?et:tt,F):"operator"==t?/\+\+|--/.test(e)||u&&"!"==e?E(r):u&&"<"==e&&_.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?E(B(">"),ut(mt,">"),V,r):"?"==e?E(W,H(":"),i):E(i):"quasi"==t?T(J,r):";"!=t?"("==t?ft($,")","call",r):"."==t?E(at,r):"["==t?E(B("]"),K,H("]"),V,r):u&&"as"==e?(_.marked="keyword",E(mt,r)):"regexp"==t?(_.state.lastType=_.marked="operator",_.stream.backUp(_.stream.pos-_.stream.start-1),E(i)):void 0:void 0}function J(t,e){return"quasi"!=t?T():"${"!=e.slice(e.length-2)?E(J):E(K,Q)}function Q(t){if("}"==t)return _.marked="string-2",_.state.tokenize=w,E(J)}function tt(t){return x(_.stream,_.state),T("{"==t?z:W)}function et(t){return x(_.stream,_.state),T("{"==t?z:$)}function nt(t){return function(e){return"."==e?E(t?it:rt):"variable"==e&&u?E(St,t?X:Y):T(t?$:W)}}function rt(t,e){if("target"==e)return _.marked="keyword",E(Y)}function it(t,e){if("target"==e)return _.marked="keyword",E(X)}function ot(t){return":"==t?E(V,z):T(Y,H(";"),V)}function at(t){if("variable"==t)return _.marked="property",E()}function st(t,e){return"async"==t?(_.marked="property",E(st)):"variable"==t||"keyword"==_.style?(_.marked="property","get"==e||"set"==e?E(lt):(u&&_.state.fatArrowAt==_.stream.start&&(n=_.stream.match(/^\s*:\s*/,!1))&&(_.state.fatArrowAt=_.stream.pos+n[0].length),E(ct))):"number"==t||"string"==t?(_.marked=s?"property":_.style+" property",E(ct)):"jsonld-keyword"==t?E(ct):u&&A(e)?(_.marked="keyword",E(st)):"["==t?E(W,dt,H("]"),ct):"spread"==t?E($,ct):"*"==e?(_.marked="keyword",E(st)):":"==t?T(ct):void 0;var n}function lt(t){return"variable"!=t?T(ct):(_.marked="property",E(It))}function ct(t){return":"==t?E($):"("==t?T(It):void 0}function ut(t,e,n){function r(i,o){if(n?n.indexOf(i)>-1:","==i){var a=_.state.lexical;return"call"==a.info&&(a.pos=(a.pos||0)+1),E((function(n,r){return n==e||r==e?T():T(t)}),r)}return i==e||o==e?E():n&&n.indexOf(";")>-1?T(t):E(H(e))}return function(n,i){return n==e||i==e?E():T(t,r)}}function ft(t,e,n){for(var r=3;r"),mt):"quasi"==t?T(kt,Ct):void 0}function yt(t){if("=>"==t)return E(mt)}function bt(t){return t.match(/[\}\)\]]/)?E():","==t||";"==t?E(bt):T(wt,bt)}function wt(t,e){return"variable"==t||"keyword"==_.style?(_.marked="property",E(wt)):"?"==e||"number"==t||"string"==t?E(wt):":"==t?E(mt):"["==t?E(H("variable"),pt,H("]"),wt):"("==t?T(Ft,wt):t.match(/[;\}\)\],]/)?void 0:E()}function kt(t,e){return"quasi"!=t?T():"${"!=e.slice(e.length-2)?E(kt):E(mt,xt)}function xt(t){if("}"==t)return _.marked="string-2",_.state.tokenize=w,E(kt)}function Ot(t,e){return"variable"==t&&_.stream.match(/^\s*[?:]/,!1)||"?"==e?E(Ot):":"==t?E(mt):"spread"==t?E(Ot):T(mt)}function Ct(t,e){return"<"==e?E(B(">"),ut(mt,">"),V,Ct):"|"==e||"."==t||"&"==e?E(mt):"["==t?E(mt,H("]"),Ct):"extends"==e||"implements"==e?(_.marked="keyword",E(mt)):"?"==e?E(mt,H(":"),mt):void 0}function St(t,e){if("<"==e)return E(B(">"),ut(mt,">"),V,Ct)}function Pt(){return T(mt,_t)}function _t(t,e){if("="==e)return E(mt)}function Tt(t,e){return"enum"==e?(_.marked="keyword",E(ee)):T(Et,dt,Rt,At)}function Et(t,e){return u&&A(e)?(_.marked="keyword",E(Et)):"variable"==t?(D(e),E()):"spread"==t?E(Et):"["==t?ft(Dt,"]"):"{"==t?ft(jt,"}"):void 0}function jt(t,e){return"variable"!=t||_.stream.match(/^\s*:/,!1)?("variable"==t&&(_.marked="property"),"spread"==t?E(Et):"}"==t?T():"["==t?E(W,H(']'),H(':'),jt):E(H(":"),Et,Rt)):(D(e),E(Rt))}function Dt(){return T(Et,Rt)}function Rt(t,e){if("="==e)return E($)}function At(t){if(","==t)return E(Tt)}function Mt(t,e){if("keyword b"==t&&"else"==e)return E(B("form","else"),z,V)}function Zt(t,e){return"await"==e?E(Zt):"("==t?E(B(")"),Lt,V):void 0}function Lt(t){return"var"==t?E(Tt,Nt):"variable"==t?E(Nt):T(Nt)}function Nt(t,e){return")"==t?E():";"==t?E(Nt):"in"==e||"of"==e?(_.marked="keyword",E(W,Nt)):T(W,Nt)}function It(t,e){return"*"==e?(_.marked="keyword",E(It)):"variable"==t?(D(e),E(It)):"("==t?E(N,B(")"),ut(Vt,")"),V,gt,z,F):u&&"<"==e?E(B(">"),ut(Pt,">"),V,It):void 0}function Ft(t,e){return"*"==e?(_.marked="keyword",E(Ft)):"variable"==t?(D(e),E(Ft)):"("==t?E(N,B(")"),ut(Vt,")"),V,gt,F):u&&"<"==e?E(B(">"),ut(Pt,">"),V,Ft):void 0}function Bt(t,e){return"keyword"==t||"variable"==t?(_.marked="type",E(Bt)):"<"==e?E(B(">"),ut(Pt,">"),V):void 0}function Vt(t,e){return"@"==e&&E(W,Vt),"spread"==t?E(Vt):u&&A(e)?(_.marked="keyword",E(Vt)):u&&"this"==t?E(dt,Rt):T(Et,dt,Rt)}function Ht(t,e){return"variable"==t?zt(t,e):Ut(t,e)}function zt(t,e){if("variable"==t)return D(e),E(Ut)}function Ut(t,e){return"<"==e?E(B(">"),ut(Pt,">"),V,Ut):"extends"==e||"implements"==e||u&&","==t?("implements"==e&&(_.marked="keyword"),E(u?mt:W,Ut)):"{"==t?E(B("}"),Wt,V):void 0}function Wt(t,e){return"async"==t||"variable"==t&&("static"==e||"get"==e||"set"==e||u&&A(e))&&_.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(_.marked="keyword",E(Wt)):"variable"==t||"keyword"==_.style?(_.marked="property",E($t,Wt)):"number"==t||"string"==t?E($t,Wt):"["==t?E(W,dt,H("]"),$t,Wt):"*"==e?(_.marked="keyword",E(Wt)):u&&"("==t?T(Ft,Wt):";"==t||","==t?E(Wt):"}"==t?E():"@"==e?E(W,Wt):void 0}function $t(t,e){if("!"==e)return E($t);if("?"==e)return E($t);if(":"==t)return E(mt,Rt);if("="==e)return E($);var n=_.state.lexical.prev;return T(n&&"interface"==n.info?Ft:It)}function qt(t,e){return"*"==e?(_.marked="keyword",E(Qt,H(";"))):"default"==e?(_.marked="keyword",E(W,H(";"))):"{"==t?E(ut(Gt,"}"),Qt,H(";")):T(z)}function Gt(t,e){return"as"==e?(_.marked="keyword",E(H("variable"))):"variable"==t?T($,Gt):void 0}function Kt(t){return"string"==t?E():"("==t?T(W):"."==t?T(Y):T(Yt,Xt,Qt)}function Yt(t,e){return"{"==t?ft(Yt,"}"):("variable"==t&&D(e),"*"==e&&(_.marked="keyword"),E(Jt))}function Xt(t){if(","==t)return E(Yt,Xt)}function Jt(t,e){if("as"==e)return _.marked="keyword",E(Yt)}function Qt(t,e){if("from"==e)return _.marked="keyword",E(W)}function te(t){return"]"==t?E():T(ut($,"]"))}function ee(){return T(B("form"),Et,H("{"),B("}"),ut(ne,"}"),V,V)}function ne(){return T(Et,Rt)}function re(t,e){return"operator"==t.lastType||","==t.lastType||d.test(e.charAt(0))||/[,.]/.test(e.charAt(0))}function ie(t,e,n){return e.tokenize==m&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(e.lastType)||"quasi"==e.lastType&&/\{\s*$/.test(t.string.slice(0,t.pos-(n||0)))}return F.lex=!0,V.lex=!0,{startState:function(t){var e={tokenize:m,lastType:"sof",cc:[],lexical:new C((t||0)-o,0,"block",!1),localVars:n.localVars,context:n.localVars&&new M(null,null,!1),indented:t||0};return n.globalVars&&"object"==typeof n.globalVars&&(e.globalVars=n.globalVars),e},token:function(t,e){if(t.sol()&&(e.lexical.hasOwnProperty("align")||(e.lexical.align=!1),e.indented=t.indentation(),x(t,e)),e.tokenize!=b&&t.eatSpace())return null;var n=e.tokenize(t,e);return"comment"==r?n:(e.lastType="operator"!=r||"++"!=i&&"--"!=i?r:"incdec",P(e,n,r,i,t))},indent:function(e,r){if(e.tokenize==b||e.tokenize==w)return t.Pass;if(e.tokenize!=m)return 0;var i,s=r&&r.charAt(0),l=e.lexical;if(!/^\s*else\b/.test(r))for(var c=e.cc.length-1;c>=0;--c){var u=e.cc[c];if(u==V)l=l.prev;else if(u!=Mt&&u!=F)break}for(;("stat"==l.type||"form"==l.type)&&("}"==s||(i=e.cc[e.cc.length-1])&&(i==Y||i==X)&&!/^[,\.=+\-*:?[\(]/.test(r));)l=l.prev;a&&")"==l.type&&"stat"==l.prev.type&&(l=l.prev);var f=l.type,h=s==f;return"vardef"==f?l.indented+("operator"==e.lastType||","==e.lastType?l.info.length+1:0):"form"==f&&"{"==s?l.indented:"form"==f?l.indented+o:"stat"==f?l.indented+(re(e,r)?a||o:0):"switch"!=l.info||h||0==n.doubleIndentSwitch?l.align?l.column+(h?0:1):l.indented+(h?0:o):l.indented+(/^(?:case|default)\b/.test(r)?o:2*o)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:l?null:"/*",blockCommentEnd:l?null:"*/",blockCommentContinue:l?null:" * ",lineComment:l?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:l?"json":"javascript",jsonldMode:s,jsonMode:l,expressionAllowed:ie,skipExpression:function(e){P(e,"atom","atom","true",new t.StringStream("",2,null))}}})),t.registerHelper("wordChars","javascript",/[\w$]/),t.defineMIME("text/javascript","javascript"),t.defineMIME("text/ecmascript","javascript"),t.defineMIME("application/javascript","javascript"),t.defineMIME("application/x-javascript","javascript"),t.defineMIME("application/ecmascript","javascript"),t.defineMIME("application/json",{name:"javascript",json:!0}),t.defineMIME("application/x-json",{name:"javascript",json:!0}),t.defineMIME("application/manifest+json",{name:"javascript",json:!0}),t.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),t.defineMIME("text/typescript",{name:"javascript",typescript:!0}),t.defineMIME("application/typescript",{name:"javascript",typescript:!0})}(n(4631))},9589:(t,e,n)=>{!function(t){"use strict";var e={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},n={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};t.defineMode("xml",(function(r,i){var o,a,s=r.indentUnit,l={},c=i.htmlMode?e:n;for(var u in c)l[u]=c[u];for(var u in i)l[u]=i[u];function f(t,e){function n(n){return e.tokenize=n,n(t,e)}var r=t.next();return"<"==r?t.eat("!")?t.eat("[")?t.match("CDATA[")?n(p("atom","]]>")):null:t.match("--")?n(p("comment","--\x3e")):t.match("DOCTYPE",!0,!0)?(t.eatWhile(/[\w\._\-]/),n(g(1))):null:t.eat("?")?(t.eatWhile(/[\w\._\-]/),e.tokenize=p("meta","?>"),"meta"):(o=t.eat("/")?"closeTag":"openTag",e.tokenize=h,"tag bracket"):"&"==r?(t.eat("#")?t.eat("x")?t.eatWhile(/[a-fA-F\d]/)&&t.eat(";"):t.eatWhile(/[\d]/)&&t.eat(";"):t.eatWhile(/[\w\.\-:]/)&&t.eat(";"))?"atom":"error":(t.eatWhile(/[^&<]/),null)}function h(t,e){var n=t.next();if(">"==n||"/"==n&&t.eat(">"))return e.tokenize=f,o=">"==n?"endTag":"selfcloseTag","tag bracket";if("="==n)return o="equals",null;if("<"==n){e.tokenize=f,e.state=w,e.tagName=e.tagStart=null;var r=e.tokenize(t,e);return r?r+" tag error":"tag error"}return/[\'\"]/.test(n)?(e.tokenize=d(n),e.stringStartCol=t.column(),e.tokenize(t,e)):(t.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function d(t){var e=function(e,n){for(;!e.eol();)if(e.next()==t){n.tokenize=h;break}return"string"};return e.isInAttribute=!0,e}function p(t,e){return function(n,r){for(;!n.eol();){if(n.match(e)){r.tokenize=f;break}n.next()}return t}}function g(t){return function(e,n){for(var r;null!=(r=e.next());){if("<"==r)return n.tokenize=g(t+1),n.tokenize(e,n);if(">"==r){if(1==t){n.tokenize=f;break}return n.tokenize=g(t-1),n.tokenize(e,n)}}return"meta"}}function v(t){return t&&t.toLowerCase()}function m(t,e,n){this.prev=t.context,this.tagName=e||"",this.indent=t.indented,this.startOfLine=n,(l.doNotIndent.hasOwnProperty(e)||t.context&&t.context.noIndent)&&(this.noIndent=!0)}function y(t){t.context&&(t.context=t.context.prev)}function b(t,e){for(var n;;){if(!t.context)return;if(n=t.context.tagName,!l.contextGrabbers.hasOwnProperty(v(n))||!l.contextGrabbers[v(n)].hasOwnProperty(v(e)))return;y(t)}}function w(t,e,n){return"openTag"==t?(n.tagStart=e.column(),k):"closeTag"==t?x:w}function k(t,e,n){return"word"==t?(n.tagName=e.current(),a="tag",S):l.allowMissingTagName&&"endTag"==t?(a="tag bracket",S(t,e,n)):(a="error",k)}function x(t,e,n){if("word"==t){var r=e.current();return n.context&&n.context.tagName!=r&&l.implicitlyClosed.hasOwnProperty(v(n.context.tagName))&&y(n),n.context&&n.context.tagName==r||!1===l.matchClosing?(a="tag",O):(a="tag error",C)}return l.allowMissingTagName&&"endTag"==t?(a="tag bracket",O(t,e,n)):(a="error",C)}function O(t,e,n){return"endTag"!=t?(a="error",O):(y(n),w)}function C(t,e,n){return a="error",O(t,e,n)}function S(t,e,n){if("word"==t)return a="attribute",P;if("endTag"==t||"selfcloseTag"==t){var r=n.tagName,i=n.tagStart;return n.tagName=n.tagStart=null,"selfcloseTag"==t||l.autoSelfClosers.hasOwnProperty(v(r))?b(n,r):(b(n,r),n.context=new m(n,r,i==n.indented)),w}return a="error",S}function P(t,e,n){return"equals"==t?_:(l.allowMissing||(a="error"),S(t,e,n))}function _(t,e,n){return"string"==t?T:"word"==t&&l.allowUnquoted?(a="string",S):(a="error",S(t,e,n))}function T(t,e,n){return"string"==t?T:S(t,e,n)}return f.isInText=!0,{startState:function(t){var e={tokenize:f,state:w,indented:t||0,tagName:null,tagStart:null,context:null};return null!=t&&(e.baseIndent=t),e},token:function(t,e){if(!e.tagName&&t.sol()&&(e.indented=t.indentation()),t.eatSpace())return null;o=null;var n=e.tokenize(t,e);return(n||o)&&"comment"!=n&&(a=null,e.state=e.state(o||n,t,e),a&&(n="error"==a?n+" error":a)),n},indent:function(e,n,r){var i=e.context;if(e.tokenize.isInAttribute)return e.tagStart==e.indented?e.stringStartCol+1:e.indented+s;if(i&&i.noIndent)return t.Pass;if(e.tokenize!=h&&e.tokenize!=f)return r?r.match(/^(\s*)/)[0].length:0;if(e.tagName)return!1!==l.multilineTagIndentPastTag?e.tagStart+e.tagName.length+2:e.tagStart+s*(l.multilineTagIndentFactor||1);if(l.alignCDATA&&/$/,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",configuration:l.htmlMode?"html":"xml",helperType:l.htmlMode?"html":"xml",skipAttribute:function(t){t.state==_&&(t.state=S)},xmlCurrentTag:function(t){return t.tagName?{name:t.tagName,close:"closeTag"==t.type}:null},xmlCurrentContext:function(t){for(var e=[],n=t.context;n;n=n.prev)e.push(n.tagName);return e.reverse()}}})),t.defineMIME("text/xml","xml"),t.defineMIME("application/xml","xml"),t.mimeModes.hasOwnProperty("text/html")||t.defineMIME("text/html",{name:"xml",htmlMode:!0})}(n(4631))},5666:t=>{var e=function(t){"use strict";var e,n=Object.prototype,r=n.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function l(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,n){return t[e]=n}}function c(t,e,n,r){var i=e&&e.prototype instanceof v?e:v,o=Object.create(i.prototype),a=new T(r||[]);return o._invoke=function(t,e,n){var r=f;return function(i,o){if(r===d)throw new Error("Generator is already running");if(r===p){if("throw"===i)throw o;return j()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=S(a,n);if(s){if(s===g)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===f)throw r=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=d;var l=u(t,e,n);if("normal"===l.type){if(r=n.done?p:h,l.arg===g)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r=p,n.method="throw",n.arg=l.arg)}}}(t,n,a),o}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=c;var f="suspendedStart",h="suspendedYield",d="executing",p="completed",g={};function v(){}function m(){}function y(){}var b={};b[o]=function(){return this};var w=Object.getPrototypeOf,k=w&&w(w(E([])));k&&k!==n&&r.call(k,o)&&(b=k);var x=y.prototype=v.prototype=Object.create(b);function O(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function C(t,e){function n(i,o,a,s){var l=u(t[i],t,o);if("throw"!==l.type){var c=l.arg,f=c.value;return f&&"object"==typeof f&&r.call(f,"__await")?e.resolve(f.__await).then((function(t){n("next",t,a,s)}),(function(t){n("throw",t,a,s)})):e.resolve(f).then((function(t){c.value=t,a(c)}),(function(t){return n("throw",t,a,s)}))}s(l.arg)}var i;this._invoke=function(t,r){function o(){return new e((function(e,i){n(t,r,e,i)}))}return i=i?i.then(o,o):o()}}function S(t,n){var r=t.iterator[n.method];if(r===e){if(n.delegate=null,"throw"===n.method){if(t.iterator.return&&(n.method="return",n.arg=e,S(t,n),"throw"===n.method))return g;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return g}var i=u(r,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,g;var o=i.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,g):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,g)}function P(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function _(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(P,this),this.reset(!0)}function E(t){if(t){var n=t[o];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,a=function n(){for(;++i=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var l=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(l&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),_(n),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;_(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:E(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),g}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function("r","regeneratorRuntime = r")(e)}},6409:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var r,i=n(2316),o=(r=function(t,e){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},r(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o(e,t),e}(n.n(i)().Model);const s=a},2828:(t,e,n)=>{var r={"./CanvasClear":9819,"./CanvasClear.js":9819,"./CanvasMove":2784,"./CanvasMove.js":2784,"./CommandAbstract":5884,"./CommandAbstract.js":5884,"./ComponentDelete":7585,"./ComponentDelete.js":7585,"./ComponentDrag":1035,"./ComponentDrag.js":1035,"./ComponentEnter":6785,"./ComponentEnter.js":6785,"./ComponentExit":9666,"./ComponentExit.js":9666,"./ComponentNext":7350,"./ComponentNext.js":7350,"./ComponentPrev":6572,"./ComponentPrev.js":6572,"./ComponentStyleClear":9097,"./ComponentStyleClear.js":9097,"./CopyComponent":515,"./CopyComponent.js":515,"./DeleteComponent":2095,"./DeleteComponent.js":2095,"./ExportTemplate":6949,"./ExportTemplate.js":6949,"./Fullscreen":6945,"./Fullscreen.js":6945,"./MoveComponent":5317,"./MoveComponent.js":5317,"./OpenAssets":9743,"./OpenAssets.js":9743,"./OpenBlocks":490,"./OpenBlocks.js":490,"./OpenLayers":3403,"./OpenLayers.js":3403,"./OpenStyleManager":9346,"./OpenStyleManager.js":9346,"./OpenTraitManager":2643,"./OpenTraitManager.js":2643,"./PasteComponent":5966,"./PasteComponent.js":5966,"./Preview":2074,"./Preview.js":2074,"./Resize":3953,"./Resize.js":3953,"./SelectComponent":7208,"./SelectComponent.js":7208,"./SelectPosition":1988,"./SelectPosition.js":1988,"./ShowOffset":6069,"./ShowOffset.js":6069,"./SwitchVisibility":2927,"./SwitchVisibility.js":2927};function i(t){var e=o(t);return n(e)}function o(t){if(!n.o(r,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code='MODULE_NOT_FOUND',e}return r[t]}i.keys=function(){return Object.keys(r)},i.resolve=o,t.exports=i,i.id=2828},907:(t,e,n)=>{"use strict";function r(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);nr})},7326:(t,e,n)=>{"use strict";function r(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}n.d(e,{Z:()=>r})},5861:(t,e,n)=>{"use strict";function r(t,e,n,r,i,o,a){try{var s=t[o](a),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,i)}function i(t){return function(){var e=this,n=arguments;return new Promise((function(i,o){var a=t.apply(e,n);function s(t){r(a,i,o,s,l,"next",t)}function l(t){r(a,i,o,s,l,"throw",t)}s(void 0)}))}}n.d(e,{Z:()=>i})},5671:(t,e,n)=>{"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}n.d(e,{Z:()=>r})},3144:(t,e,n)=>{"use strict";function r(t,e){for(var n=0;ni})},4942:(t,e,n)=>{"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}n.d(e,{Z:()=>r})},1120:(t,e,n)=>{"use strict";function r(t){return r=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},r(t)}n.d(e,{Z:()=>r})},9340:(t,e,n)=>{"use strict";function r(t,e){return r=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},r(t,e)}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&r(t,e)}n.d(e,{Z:()=>i})},4925:(t,e,n)=>{"use strict";function r(t,e){if(null==t)return{};var n,r,i=function(t,e){if(null==t)return{};var n,r,i={},o=Object.keys(t);for(r=0;r=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}n.d(e,{Z:()=>r})},2963:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var r=n(1002),i=n(7326);function o(t,e){if(e&&("object"===(0,r.Z)(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return(0,i.Z)(t)}},885:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(181);function i(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o=[],a=!0,s=!1;try{for(n=n.call(t);!(a=(r=n.next()).done)&&(o.push(r.value),!e||o.length!==e);a=!0);}catch(t){s=!0,i=t}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}}(t,e)||(0,r.Z)(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},168:(t,e,n)=>{"use strict";function r(t,e){return e||(e=t.slice(0)),Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(e)}}))}n.d(e,{Z:()=>r})},2982:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var r=n(907);var i=n(181);function o(t){return function(t){if(Array.isArray(t))return(0,r.Z)(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||(0,i.Z)(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},1002:(t,e,n)=>{"use strict";function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}n.d(e,{Z:()=>r})},181:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(907);function i(t,e){if(t){if("string"==typeof t)return(0,r.Z)(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?(0,r.Z)(t,e):void 0}}},9050:(t,e,n)=>{"use strict";n.r(e),n.d(e,{VERSION:()=>i,after:()=>Me,all:()=>tn,allKeys:()=>vt,any:()=>en,assign:()=>Mt,before:()=>Ze,bind:()=>xe,bindAll:()=>Se,chain:()=>ye,chunk:()=>In,clone:()=>It,collect:()=>Ge,compact:()=>_n,compose:()=>Ae,constant:()=>J,contains:()=>nn,countBy:()=>gn,create:()=>Nt,debounce:()=>je,default:()=>zn,defaults:()=>Zt,defer:()=>Te,delay:()=>_e,detect:()=>We,difference:()=>En,drop:()=>Sn,each:()=>qe,escape:()=>ae,every:()=>tn,extend:()=>At,extendOwn:()=>Mt,filter:()=>Je,find:()=>We,findIndex:()=>Fe,findKey:()=>Ne,findLastIndex:()=>Be,findWhere:()=>$e,first:()=>Cn,flatten:()=>Tn,foldl:()=>Ye,foldr:()=>Xe,forEach:()=>qe,functions:()=>Dt,get:()=>zt,groupBy:()=>dn,has:()=>Ut,head:()=>Cn,identity:()=>Wt,include:()=>nn,includes:()=>nn,indexBy:()=>pn,indexOf:()=>ze,initial:()=>On,inject:()=>Ye,intersection:()=>An,invert:()=>jt,invoke:()=>rn,isArguments:()=>K,isArray:()=>$,isArrayBuffer:()=>N,isBoolean:()=>T,isDataView:()=>W,isDate:()=>A,isElement:()=>E,isEmpty:()=>lt,isEqual:()=>gt,isError:()=>Z,isFinite:()=>Y,isFunction:()=>B,isMap:()=>Ct,isMatch:()=>ct,isNaN:()=>X,isNull:()=>P,isNumber:()=>R,isObject:()=>S,isRegExp:()=>M,isSet:()=>Pt,isString:()=>D,isSymbol:()=>L,isTypedArray:()=>it,isUndefined:()=>_,isWeakMap:()=>St,isWeakSet:()=>_t,iteratee:()=>Yt,keys:()=>st,last:()=>Pn,lastIndexOf:()=>Ue,map:()=>Ge,mapObject:()=>Jt,matcher:()=>$t,matches:()=>$t,max:()=>sn,memoize:()=>Pe,methods:()=>Dt,min:()=>ln,mixin:()=>Bn,negate:()=>Re,noop:()=>Qt,now:()=>re,object:()=>Ln,omit:()=>xn,once:()=>Le,pairs:()=>Et,partial:()=>ke,partition:()=>vn,pick:()=>kn,pluck:()=>on,property:()=>qt,propertyOf:()=>te,random:()=>ne,range:()=>Nn,reduce:()=>Ye,reduceRight:()=>Xe,reject:()=>Qe,rest:()=>Sn,restArguments:()=>C,result:()=>ge,sample:()=>cn,select:()=>Je,shuffle:()=>un,size:()=>bn,some:()=>en,sortBy:()=>fn,sortedIndex:()=>Ve,tail:()=>Sn,take:()=>Cn,tap:()=>Ft,template:()=>pe,templateSettings:()=>le,throttle:()=>Ee,times:()=>ee,toArray:()=>yn,toPath:()=>Bt,transpose:()=>Mn,unescape:()=>se,union:()=>Rn,uniq:()=>Dn,unique:()=>Dn,uniqueId:()=>me,unzip:()=>Mn,values:()=>Tt,where:()=>an,without:()=>jn,wrap:()=>De,zip:()=>Zn});var r={};n.r(r),n.d(r,{VERSION:()=>i,after:()=>Me,all:()=>tn,allKeys:()=>vt,any:()=>en,assign:()=>Mt,before:()=>Ze,bind:()=>xe,bindAll:()=>Se,chain:()=>ye,chunk:()=>In,clone:()=>It,collect:()=>Ge,compact:()=>_n,compose:()=>Ae,constant:()=>J,contains:()=>nn,countBy:()=>gn,create:()=>Nt,debounce:()=>je,default:()=>Vn,defaults:()=>Zt,defer:()=>Te,delay:()=>_e,detect:()=>We,difference:()=>En,drop:()=>Sn,each:()=>qe,escape:()=>ae,every:()=>tn,extend:()=>At,extendOwn:()=>Mt,filter:()=>Je,find:()=>We,findIndex:()=>Fe,findKey:()=>Ne,findLastIndex:()=>Be,findWhere:()=>$e,first:()=>Cn,flatten:()=>Tn,foldl:()=>Ye,foldr:()=>Xe,forEach:()=>qe,functions:()=>Dt,get:()=>zt,groupBy:()=>dn,has:()=>Ut,head:()=>Cn,identity:()=>Wt,include:()=>nn,includes:()=>nn,indexBy:()=>pn,indexOf:()=>ze,initial:()=>On,inject:()=>Ye,intersection:()=>An,invert:()=>jt,invoke:()=>rn,isArguments:()=>K,isArray:()=>$,isArrayBuffer:()=>N,isBoolean:()=>T,isDataView:()=>W,isDate:()=>A,isElement:()=>E,isEmpty:()=>lt,isEqual:()=>gt,isError:()=>Z,isFinite:()=>Y,isFunction:()=>B,isMap:()=>Ct,isMatch:()=>ct,isNaN:()=>X,isNull:()=>P,isNumber:()=>R,isObject:()=>S,isRegExp:()=>M,isSet:()=>Pt,isString:()=>D,isSymbol:()=>L,isTypedArray:()=>it,isUndefined:()=>_,isWeakMap:()=>St,isWeakSet:()=>_t,iteratee:()=>Yt,keys:()=>st,last:()=>Pn,lastIndexOf:()=>Ue,map:()=>Ge,mapObject:()=>Jt,matcher:()=>$t,matches:()=>$t,max:()=>sn,memoize:()=>Pe,methods:()=>Dt,min:()=>ln,mixin:()=>Bn,negate:()=>Re,noop:()=>Qt,now:()=>re,object:()=>Ln,omit:()=>xn,once:()=>Le,pairs:()=>Et,partial:()=>ke,partition:()=>vn,pick:()=>kn,pluck:()=>on,property:()=>qt,propertyOf:()=>te,random:()=>ne,range:()=>Nn,reduce:()=>Ye,reduceRight:()=>Xe,reject:()=>Qe,rest:()=>Sn,restArguments:()=>C,result:()=>ge,sample:()=>cn,select:()=>Je,shuffle:()=>un,size:()=>bn,some:()=>en,sortBy:()=>fn,sortedIndex:()=>Ve,tail:()=>Sn,take:()=>Cn,tap:()=>Ft,template:()=>pe,templateSettings:()=>le,throttle:()=>Ee,times:()=>ee,toArray:()=>yn,toPath:()=>Bt,transpose:()=>Mn,unescape:()=>se,union:()=>Rn,uniq:()=>Dn,unique:()=>Dn,uniqueId:()=>me,unzip:()=>Mn,values:()=>Tt,where:()=>an,without:()=>jn,wrap:()=>De,zip:()=>Zn});var i='1.13.1',o='object'==typeof self&&self.self===self&&self||'object'==typeof global&&global.global===global&&global||Function('return this')()||{},a=Array.prototype,s=Object.prototype,l='undefined'!=typeof Symbol?Symbol.prototype:null,c=a.push,u=a.slice,f=s.toString,h=s.hasOwnProperty,d='undefined'!=typeof ArrayBuffer,p='undefined'!=typeof DataView,g=Array.isArray,v=Object.keys,m=Object.create,y=d&&ArrayBuffer.isView,b=isNaN,w=isFinite,k=!{toString:null}.propertyIsEnumerable('toString'),x=['valueOf','isPrototypeOf','toString','propertyIsEnumerable','hasOwnProperty','toLocaleString'],O=Math.pow(2,53)-1;function C(t,e){return e=null==e?t.length-1:+e,function(){for(var n=Math.max(arguments.length-e,0),r=Array(n),i=0;i=0&&n<=O}}function tt(t){return function(e){return null==e?void 0:e[t]}}const et=tt('byteLength'),nt=Q(et);var rt=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;const it=d?function(t){return y?y(t)&&!W(t):nt(t)&&rt.test(f.call(t))}:J(!1),ot=tt('length');function at(t,e){e=function(t){for(var e={},n=t.length,r=0;r':'>','"':'"',"'":''','`':'`'},ae=ie(oe),se=ie(jt(oe)),le=ut.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var ce=/(.)^/,ue={"'":"'",'\\':'\\','\r':'r','\n':'n','\u2028':'u2028','\u2029':'u2029'},fe=/\\|'|\r|\n|\u2028|\u2029/g;function he(t){return'\\'+ue[t]}var de=/^\s*(\w|\$)+\s*$/;function pe(t,e,n){!e&&n&&(e=n),e=Zt({},e,ut.templateSettings);var r=RegExp([(e.escape||ce).source,(e.interpolate||ce).source,(e.evaluate||ce).source].join('|')+'|$','g'),i=0,o="__p+='";t.replace(r,(function(e,n,r,a,s){return o+=t.slice(i,s).replace(fe,he),i=s+e.length,n?o+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?o+="'+\n((__t=("+r+"))==null?'':__t)+\n'":a&&(o+="';\n"+a+"\n__p+='"),e})),o+="';\n";var a,s=e.variable;if(s){if(!de.test(s))throw new Error('variable is not a bare identifier: '+s)}else o='with(obj||{}){\n'+o+'}\n',s='obj';o="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+o+'return __p;\n';try{a=new Function(s,'_',o)}catch(t){throw t.source=o,t}var l=function(t){return a.call(this,t,ut)};return l.source='function('+s+'){\n'+o+'}',l}function ge(t,e,n){var r=(e=Vt(e)).length;if(!r)return B(n)?n.call(t):n;for(var i=0;i1)Ce(s,e-1,n,r),i=r.length;else for(var l=0,c=s.length;le?(r&&(clearTimeout(r),r=null),s=c,a=t.apply(i,o),r||(i=o=null)):r||!1===n.trailing||(r=setTimeout(l,u)),a};return c.cancel=function(){clearTimeout(r),s=0,r=i=o=null},c}function je(t,e,n){var r,i,o,a,s,l=function(){var c=re()-i;e>c?r=setTimeout(l,e-c):(r=null,n||(a=t.apply(s,o)),r||(o=s=null))},c=C((function(c){return s=this,o=c,i=re(),r||(r=setTimeout(l,e),n&&(a=t.apply(s,o))),a}));return c.cancel=function(){clearTimeout(r),r=o=s=null},c}function De(t,e){return ke(e,t)}function Re(t){return function(){return!t.apply(this,arguments)}}function Ae(){var t=arguments,e=t.length-1;return function(){for(var n=e,r=t[e].apply(this,arguments);n--;)r=t[n].call(this,r);return r}}function Me(t,e){return function(){if(--t<1)return e.apply(this,arguments)}}function Ze(t,e){var n;return function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=null),n}}const Le=ke(Ze,2);function Ne(t,e,n){e=Xt(e,n);for(var r,i=st(t),o=0,a=i.length;o0?0:i-1;o>=0&&o0?a=o>=0?o:Math.max(o+s,a):s=o>=0?Math.min(o+1,s):o+s+1;else if(n&&o&&s)return r[o=n(r,i)]===i?o:-1;if(i!=i)return(o=e(u.call(r,a,s),X))>=0?o+a:-1;for(o=t>0?a:s-1;o>=0&&o0?0:a-1;for(i||(r=e[o?o[s]:s],s+=t);s>=0&&s=3;return e(t,Gt(n,i,4),r,o)}}const Ye=Ke(1),Xe=Ke(-1);function Je(t,e,n){var r=[];return e=Xt(e,n),qe(t,(function(t,n,i){e(t,n,i)&&r.push(t)})),r}function Qe(t,e,n){return Je(t,Re(Xt(e)),n)}function tn(t,e,n){e=Xt(e,n);for(var r=!Oe(t)&&st(t),i=(r||t).length,o=0;o=0}const rn=C((function(t,e,n){var r,i;return B(e)?i=e:(e=Vt(e),r=e.slice(0,-1),e=e[e.length-1]),Ge(t,(function(t){var o=i;if(!o){if(r&&r.length&&(t=Ht(t,r)),null==t)return;o=t[e]}return null==o?o:o.apply(t,n)}))}));function on(t,e){return Ge(t,qt(e))}function an(t,e){return Je(t,$t(e))}function sn(t,e,n){var r,i,o=-1/0,a=-1/0;if(null==e||'number'==typeof e&&'object'!=typeof t[0]&&null!=t)for(var s=0,l=(t=Oe(t)?t:Tt(t)).length;so&&(o=r);else e=Xt(e,n),qe(t,(function(t,n,r){((i=e(t,n,r))>a||i===-1/0&&o===-1/0)&&(o=t,a=i)}));return o}function ln(t,e,n){var r,i,o=1/0,a=1/0;if(null==e||'number'==typeof e&&'object'!=typeof t[0]&&null!=t)for(var s=0,l=(t=Oe(t)?t:Tt(t)).length;sr||void 0===n)return 1;if(n1&&(r=Gt(r,e[1])),e=vt(t)):(r=wn,e=Ce(e,!1,!1),t=Object(t));for(var i=0,o=e.length;i1&&(n=e[1])):(e=Ge(Ce(e,!1,!1),String),r=function(t,n){return!nn(e,n)}),kn(t,r,n)}));function On(t,e,n){return u.call(t,0,Math.max(0,t.length-(null==e||n?1:e)))}function Cn(t,e,n){return null==t||t.length<1?null==e||n?void 0:[]:null==e||n?t[0]:On(t,t.length-e)}function Sn(t,e,n){return u.call(t,null==e||n?1:e)}function Pn(t,e,n){return null==t||t.length<1?null==e||n?void 0:[]:null==e||n?t[t.length-1]:Sn(t,Math.max(0,t.length-e))}function _n(t){return Je(t,Boolean)}function Tn(t,e){return Ce(t,e,!1)}const En=C((function(t,e){return e=Ce(e,!0,!0),Je(t,(function(t){return!nn(e,t)}))})),jn=C((function(t,e){return En(t,e)}));function Dn(t,e,n,r){T(e)||(r=n,n=e,e=!1),null!=n&&(n=Xt(n,r));for(var i=[],o=[],a=0,s=ot(t);a{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.g=function(){if('object'==typeof globalThis)return globalThis;try{return this||new Function('return this')()}catch(t){if('object'==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{'undefined'!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:'Module'}),Object.defineProperty(t,'__esModule',{value:!0})};var r={};return(()=>{"use strict";n.d(r,{default:()=>U});var t=n(4942),e=n(9050),i=n(290),o=n(5861),a=n(7757),s=n.n(a),l=n(8595);const c={stylePrefix:'gjs-',components:'',style:'',fromElement:0,projectData:null,noticeOnUnload:!0,showOffsets:!1,showOffsetsSelected:!1,forceClass:!0,height:'900px',width:'100%',log:['warning','error'],baseCss:"\n * {\n box-sizing: border-box;\n }\n html, body, [data-gjs-type=wrapper] {\n min-height: 100%;\n }\n body {\n margin: 0;\n height: 100%;\n background-color: #fff\n }\n [data-gjs-type=wrapper] {\n overflow: auto;\n overflow-x: hidden;\n }\n\n * ::-webkit-scrollbar-track {\n background: rgba(0, 0, 0, 0.1)\n }\n\n * ::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.2)\n }\n\n * ::-webkit-scrollbar {\n width: 10px\n }\n ",protectedCss:'* { box-sizing: border-box; } body {margin: 0;}',canvasCss:'',defaultCommand:'select-comp',showToolbar:1,showDevices:1,devicePreviewMode:0,mediaCondition:'max-width',tagVarStart:'{[ ',tagVarEnd:' ]}',keepEmptyTextNodes:0,jsInHtml:!0,nativeDnD:1,multipleSelection:1,optsHtml:{},optsCss:{},avoidInlineStyle:1,avoidDefaults:1,clearStyles:0,dragMode:0,listenToEl:[],cssIcons:'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css',icons:{close:'',move:'',plus:'',caret:'',delete:'',copy:'',arrowUp:''},el:'',i18n:{},undoManager:{},assetManager:{},canvas:{},layers:{},storageManager:{},richTextEditor:{},domComponents:{},modal:{},codeManager:{},panels:{},commands:{},cssComposer:{},selectorManager:{},deviceManager:{},styleManager:{},blockManager:{},traitManager:{},textViewCode:'Code',keepUnusedStyles:0,multiFrames:0,customUI:!1};var u=n(4925),f=n(5671),h=n(3144),d=n(9340),p=n(2963),g=n(1120),v=n(2316),m=n.n(v);var y=n(3168),b=n(6409);function w(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=(0,g.Z)(t);if(e){var i=(0,g.Z)(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return(0,p.Z)(this,n)}}var k=function(t){(0,d.Z)(n,t);var e=w(n);function n(){return(0,f.Z)(this,n),e.apply(this,arguments)}return(0,h.Z)(n)}(b.Z),x=function(t){(0,d.Z)(r,t);var n=w(r);function r(){return(0,f.Z)(this,r),n.apply(this,arguments)}return(0,h.Z)(r,[{key:"getByComponent",value:function(t){var e=this;return this.filter((function(n){return e.getComponent(n)===t}))[0]}},{key:"addComponent",value:function(t,n){var r=this,i=((0,e.isArray)(t)?t:[t]).filter((function(t){return!r.hasComponent(t)})).map((function(t){return{component:t}}));return this.push(i,n)}},{key:"getComponent",value:function(t){return t.get('component')}},{key:"hasComponent",value:function(t){var e=this.getByComponent(t);return e&&this.contains(e)}},{key:"lastComponent",value:function(){var t=this.last();return t&&this.getComponent(t)}},{key:"allComponents",value:function(){var t=this;return this.map((function(e){return t.getComponent(e)})).filter((function(t){return t}))}},{key:"removeComponent",value:function(t,n){var r=this,i=((0,e.isArray)(t)?t:[t]).map((function(t){return r.getByComponent(t)}));return this.remove(i,n)}}]),r}(v.Collection);x.prototype.model=k;var O=["unset"];function C(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function S(e){for(var n=1;n0&&void 0!==arguments[0]?arguments[0]:{};this.config=n;var r=this.config;this.set('Config',r),this.set('modules',[]),this.set('toLoad',[]),this.set('storables',[]),this.set('selected',new x),this.set('dmode',r.dragMode);var i=r.el,o=r.log,a=!0===o?(0,e.keys)(j):(0,e.isArray)(o)?o:[];(0,e.bindAll)(this,'initBaseColorPicker'),i&&r.fromElement&&(r.components=i.innerHTML),this.attrsOrig=i?(0,e.toArray)(i.attributes).reduce((function(t,e){return t[e.nodeName]=e.nodeValue,t}),{}):'',r.components&&!r.pageManager&&(r.pageManager={pages:[{component:r.components}]}),E.forEach((function(e){return t.loadModule(e)})),this.on('change:componentHovered',this.componentHovered,this),this.on('change:changesCount',this.updateChanges,this),this.on('change:readyLoad change:readyCanvas',this._checkReady,this),a.forEach((function(e){return t.listenLog(e)})),[{from:'change:selectedComponent',to:'component:toggled'}].forEach((function(e){var n=e.from,r=e.to;t.listenTo(t,n,(function(){for(var e=arguments.length,i=new Array(e),o=0;o=e.getStepsBeforeSave()&&this.store().catch((function(e){return t.logError(e)}))}},{key:"loadModule",value:function(t){var n=this.config,r=new(t.default||t),i=r.name.charAt(0).toLowerCase()+r.name.slice(1),o=(0,e.isUndefined)(n[i])?n[r.name]:n[i],a=!0===o?{}:o||{};if(a.pStylePrefix=n.pStylePrefix||'',(0,e.isUndefined)(o)||o||(a._disable=1),r.storageKey&&r.store&&r.load){var s=['domComponents','pageManager'].indexOf(i)>=0?'unshift':'push';this.get('storables')[s](r)}return a.em=this,r.init(S({},a)),!r.private&&this.set(r.name,r),r.onLoad&&this.get('toLoad').push(r),this.get('modules').push(r),this}},{key:"init",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.destroyed&&(this.initialize(e),this.destroyed=0),this.set('Editor',t)}},{key:"getEditor",value:function(){return this.get('Editor')}},{key:"handleUpdates",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.__skip||r.temporary||r.noCount||r.avoidStore||!this.get('ready')||(_&&clearTimeout(_),_=setTimeout((function(){var t=n.getDirtyCount()||0,e=(r.unset,(0,u.Z)(r,O));n.set('changesCount',t+1,e)}),0))}},{key:"changesUp",value:function(t){this.handleUpdates(0,0,t)}},{key:"componentHovered",value:function(t,e,n){var r=this.previous('componentHovered');r&&this.trigger('component:unhovered',r,n),e&&this.trigger('component:hovered',e,n)}},{key:"getSelected",value:function(){return this.get('selected').lastComponent()}},{key:"getSelectedAll",value:function(){return this.get('selected').allComponents()}},{key:"setSelected",value:function(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=r.event,a=o&&(o.ctrlKey||o.metaKey),s=o||{},l=s.shiftKey,c=(0,e.isArray)(t),u=(c?t:[t]).map((function(t){return(0,y.getModel)(t,i.default)})),f=this.getSelectedAll(),h=this.getConfig('multipleSelection');c&&this.removeSelected(f.filter((function(t){return!(0,e.contains)(u,t)}))),u.forEach((function(t){var i=(0,y.getModel)(t);if(i&&(n.trigger('component:select:before',i,r),!i.get('selectable')||r.abort)){if(!r.useValid)return;for(var o=i.parent();o&&!o.get('selectable');)o=o.parent();i=o}if(a&&h)return n.toggleSelected(i);if(l&&h){n.clearSelection(n.get('Canvas').getWindow());var s,u,d=i.collection,p=i.index();if(n.getSelectedAll().forEach((function(t){var n=t.collection,r=t.index();n===d&&(rp&&(u=(0,e.isUndefined)(u)?r:Math.min(u,r)))})),!(0,e.isUndefined)(s))for(;s!==p;)n.addSelected(d.at(s)),s++;if(!(0,e.isUndefined)(u))for(;u!==p;)n.addSelected(d.at(u)),u--;return n.addSelected(i)}!c&&n.removeSelected(f.filter((function(t){return t!==i}))),n.addSelected(i,r),i}))}},{key:"addSelected",value:function(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=(0,y.getModel)(t,i.default),a=(0,e.isArray)(o)?o:[o];a.forEach((function(t){if(!t||t.get('selectable')){var e=n.get('selected');r.forceChange&&n.removeSelected(t,r),e.addComponent(t,r),t&&n.trigger('component:select',t,r)}}))}},{key:"removeSelected",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.get('selected').removeComponent((0,y.getModel)(t,i.default),e)}},{key:"toggleSelected",value:function(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=(0,y.getModel)(t,i.default),a=(0,e.isArray)(o)?o:[o];a.forEach((function(t){n.get('selected').hasComponent(t)?n.removeSelected(t,r):n.addSelected(t,r)}))}},{key:"setHovered",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!t)return this.set('componentHovered','');var n='component:hover',r=(0,y.getModel)(t);if(r){if(e.forceChange&&this.set('componentHovered',''),this.trigger("".concat(n,":before"),r,e),!r.get('hoverable')){if(!e.useValid||e.abort)return;for(var i=r&&r.parent();i&&!i.get('hoverable');)i=i.parent();r=i}e.abort||(this.set('componentHovered',r,e),this.trigger(n,r,e))}}},{key:"getHovered",value:function(){return this.get('componentHovered')}},{key:"setComponents",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.get('DomComponents').setComponents(t,e)}},{key:"getComponents",value:function(){var t=this.get('DomComponents'),e=this.get('CodeManager');if(t&&e){var n=t.getComponents();return e.getCode(n,'json')}}},{key:"setStyle",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.get('CssComposer');return n.clear(e),n.getAll().add(t,e),this}},{key:"addStyle",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.getStyle().add(t,n);return(0,e.isArray)(r)?r:[r]}},{key:"getStyle",value:function(){return this.get('CssComposer').getAll()}},{key:"setState",value:function(t){return this.set('state',t),this}},{key:"getState",value:function(){return this.get('state')||''}},{key:"getHtml",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.config,n=e.optsHtml,r=e.jsInHtml?this.getJs(t):'',i=t.component||this.get('DomComponents').getComponent(),o=i?this.get('CodeManager').getCode(i,'html',S(S({},n),t)):'';return o+=r?"` : '';\r\n return html;\r\n }\r\n\r\n /**\r\n * Returns CSS built inside canvas\r\n * @param {Object} [opts={}] Options\r\n * @returns {string} CSS string\r\n * @private\r\n */\r\n getCss(opts = {}) {\r\n const config = this.config;\r\n const { optsCss } = config;\r\n const avoidProt = opts.avoidProtected;\r\n const keepUnusedStyles = !isUndefined(opts.keepUnusedStyles) ? opts.keepUnusedStyles : config.keepUnusedStyles;\r\n const cssc = this.get('CssComposer');\r\n const wrp = opts.component || this.get('DomComponents').getComponent();\r\n const protCss = !avoidProt ? config.protectedCss : '';\r\n const css =\r\n wrp &&\r\n this.get('CodeManager').getCode(wrp, 'css', {\r\n cssc,\r\n keepUnusedStyles,\r\n ...optsCss,\r\n ...opts,\r\n });\r\n return wrp ? (opts.json ? css : protCss + css) : '';\r\n }\r\n\r\n /**\r\n * Returns JS of all components\r\n * @return {string} JS string\r\n * @private\r\n */\r\n getJs(opts = {}) {\r\n var wrp = opts.component || this.get('DomComponents').getWrapper();\r\n return wrp ? this.get('CodeManager').getCode(wrp, 'js').trim() : '';\r\n }\r\n\r\n /**\r\n * Store data to the current storage.\r\n * @private\r\n */\r\n async store(options) {\r\n const data = this.storeData();\r\n await this.get('StorageManager').store(data, options);\r\n this.clearDirtyCount();\r\n return data;\r\n }\r\n\r\n /**\r\n * Load data from the current storage.\r\n * @private\r\n */\r\n async load(options) {\r\n const result = await this.get('StorageManager').load(options);\r\n this.loadData(result);\r\n return result;\r\n }\r\n\r\n storeData() {\r\n let result = {};\r\n // Sync content if there is an active RTE\r\n const editingCmp = this.getEditing();\r\n editingCmp && editingCmp.trigger('sync:content', { noCount: true });\r\n\r\n this.get('storables').forEach(m => {\r\n result = { ...result, ...m.store(1) };\r\n });\r\n return JSON.parse(JSON.stringify(result));\r\n }\r\n\r\n loadData(data = {}) {\r\n this.get('storables').forEach(module => module.load(data));\r\n return data;\r\n }\r\n\r\n /**\r\n * Returns device model by name\r\n * @return {Device|null}\r\n * @private\r\n */\r\n getDeviceModel() {\r\n var name = this.get('device');\r\n return this.get('DeviceManager').get(name);\r\n }\r\n\r\n /**\r\n * Run default command if setted\r\n * @param {Object} [opts={}] Options\r\n * @private\r\n */\r\n runDefault(opts = {}) {\r\n var command = this.get('Commands').get(this.config.defaultCommand);\r\n if (!command || this.defaultRunning) return;\r\n command.stop(this, this, opts);\r\n command.run(this, this, opts);\r\n this.defaultRunning = 1;\r\n }\r\n\r\n /**\r\n * Stop default command\r\n * @param {Object} [opts={}] Options\r\n * @private\r\n */\r\n stopDefault(opts = {}) {\r\n const commands = this.get('Commands');\r\n const command = commands.get(this.config.defaultCommand);\r\n if (!command || !this.defaultRunning) return;\r\n command.stop(this, this, opts);\r\n this.defaultRunning = 0;\r\n }\r\n\r\n /**\r\n * Update canvas dimensions and refresh data useful for tools positioning\r\n * @private\r\n */\r\n refreshCanvas(opts = {}) {\r\n this.set('canvasOffset', null);\r\n this.set('canvasOffset', this.get('Canvas').getOffset());\r\n opts.tools && this.trigger('canvas:updateTools');\r\n }\r\n\r\n /**\r\n * Clear all selected stuf inside the window, sometimes is useful to call before\r\n * doing some dragging opearation\r\n * @param {Window} win If not passed the current one will be used\r\n * @private\r\n */\r\n clearSelection(win) {\r\n var w = win || window;\r\n w.getSelection().removeAllRanges();\r\n }\r\n\r\n /**\r\n * Get the current media text\r\n * @return {string}\r\n */\r\n getCurrentMedia() {\r\n const config = this.config;\r\n const device = this.getDeviceModel();\r\n const condition = config.mediaCondition;\r\n const preview = config.devicePreviewMode;\r\n const width = device && device.get('widthMedia');\r\n return device && width && !preview ? `(${condition}: ${width})` : '';\r\n }\r\n\r\n /**\r\n * Return the component wrapper\r\n * @return {Component}\r\n */\r\n getWrapper() {\r\n return this.get('DomComponents').getWrapper();\r\n }\r\n\r\n setCurrentFrame(frameView) {\r\n return this.set('currentFrame', frameView);\r\n }\r\n\r\n getCurrentFrame() {\r\n return this.get('currentFrame');\r\n }\r\n\r\n getCurrentFrameModel() {\r\n return (this.getCurrentFrame() || {}).model;\r\n }\r\n\r\n getIcon(icon) {\r\n const icons = this.getConfig('icons') || {};\r\n return icons[icon] || '';\r\n }\r\n\r\n /**\r\n * Return the count of changes made to the content and not yet stored.\r\n * This count resets at any `store()`\r\n * @return {number}\r\n */\r\n getDirtyCount() {\r\n return this.get('changesCount');\r\n }\r\n\r\n clearDirtyCount() {\r\n return this.set('changesCount', 0);\r\n }\r\n\r\n getZoomDecimal() {\r\n return this.get('Canvas').getZoomDecimal();\r\n }\r\n\r\n getZoomMultiplier() {\r\n return this.get('Canvas').getZoomMultiplier();\r\n }\r\n\r\n setDragMode(value) {\r\n return this.set('dmode', value);\r\n }\r\n\r\n t(...args) {\r\n const i18n = this.get('I18n');\r\n return i18n?.t(...args);\r\n }\r\n\r\n /**\r\n * Returns true if the editor is in absolute mode\r\n * @returns {Boolean}\r\n */\r\n inAbsoluteMode() {\r\n return this.get('dmode') === 'absolute';\r\n }\r\n\r\n /**\r\n * Destroy editor\r\n */\r\n destroyAll() {\r\n const { config, view } = this;\r\n const editor = this.getEditor();\r\n const { editors = [] } = config.grapesjs || {};\r\n const shallow = this.get('shallow');\r\n shallow?.destroyAll();\r\n this.stopListening();\r\n this.stopDefault();\r\n this.get('modules')\r\n .slice()\r\n .reverse()\r\n .forEach(mod => mod.destroy());\r\n view && view.remove();\r\n this.clear({ silent: true });\r\n this.destroyed = 1;\r\n ['config', 'view', '_previousAttributes', '_events', '_listeners'].forEach(i => (this[i] = {}));\r\n editors.splice(editors.indexOf(editor), 1);\r\n hasWin() && $(config.el).empty().attr(this.attrsOrig);\r\n }\r\n\r\n getEditing() {\r\n const res = this.get('editing');\r\n return (res && res.model) || null;\r\n }\r\n\r\n setEditing(value) {\r\n this.set('editing', value);\r\n return this;\r\n }\r\n\r\n isEditing() {\r\n return !!this.get('editing');\r\n }\r\n\r\n log(msg, opts = {}) {\r\n const { ns, level = 'debug' } = opts;\r\n this.trigger('log', msg, opts);\r\n level && this.trigger(`log:${level}`, msg, opts);\r\n\r\n if (ns) {\r\n const logNs = `log-${ns}`;\r\n this.trigger(logNs, msg, opts);\r\n level && this.trigger(`${logNs}:${level}`, msg, opts);\r\n }\r\n }\r\n\r\n logInfo(msg, opts) {\r\n this.log(msg, { ...opts, level: 'info' });\r\n }\r\n\r\n logWarning(msg, opts) {\r\n this.log(msg, { ...opts, level: 'warning' });\r\n }\r\n\r\n logError(msg, opts) {\r\n this.log(msg, { ...opts, level: 'error' });\r\n }\r\n\r\n initBaseColorPicker(el, opts = {}) {\r\n const config = this.getConfig();\r\n const { colorPicker = {} } = config;\r\n const elToAppend = config.el;\r\n const ppfx = config.stylePrefix;\r\n\r\n return $(el).spectrum({\r\n containerClassName: `${ppfx}one-bg ${ppfx}two-color`,\r\n appendTo: elToAppend || 'body',\r\n maxSelectionSize: 8,\r\n showPalette: true,\r\n palette: [],\r\n showAlpha: true,\r\n chooseText: 'Ok',\r\n cancelText: '⨯',\r\n ...opts,\r\n ...colorPicker,\r\n });\r\n }\r\n\r\n /**\r\n * Execute actions without triggering the storage and undo manager.\r\n * @param {Function} clb\r\n * @private\r\n */\r\n skip(clb) {\r\n this.__skip = true;\r\n const um = this.get('UndoManager');\r\n um ? um.skip(clb) : clb();\r\n this.__skip = false;\r\n }\r\n\r\n /**\r\n * Set/get data from the HTMLElement\r\n * @param {HTMLElement} el\r\n * @param {string} name Data name\r\n * @param {any} value Date value\r\n * @return {any}\r\n * @private\r\n */\r\n data(el, name, value) {\r\n const varName = '_gjs-data';\r\n\r\n if (!el[varName]) {\r\n el[varName] = {};\r\n }\r\n\r\n if (isUndefined(value)) {\r\n return el[varName][name];\r\n } else {\r\n el[varName][name] = value;\r\n }\r\n }\r\n}\r\n","import { isObject } from 'underscore';\r\n\r\nexport default ({ $ }) => {\r\n if ($ && $.prototype && $.prototype.constructor.name !== 'jQuery') {\r\n const fn = $.fn;\r\n\r\n // Additional helpers\r\n\r\n fn.hide = function () {\r\n return this.css('display', 'none');\r\n };\r\n\r\n fn.show = function () {\r\n return this.css('display', 'block');\r\n };\r\n\r\n fn.focus = function () {\r\n const el = this.get(0);\r\n el && el.focus();\r\n return this;\r\n };\r\n\r\n // For SVGs in IE\r\n // (fn.removeClass = function(c) {\r\n // if (!arguments.length) {\r\n // return this.attr('class', '');\r\n // }\r\n // const classes = isString(c) && c.match(/\\S+/g);\r\n // return classes\r\n // ? this.each(function(el) {\r\n // each(classes, function(c) {\r\n // if (el.classList) {\r\n // el.classList.remove(c);\r\n // } else {\r\n // const val = el.className;\r\n // const bval = el.className.baseVal;\r\n\r\n // if (!isUndefined(bval)) {\r\n // val.baseVal = bval.replace(c, '');\r\n // } else {\r\n // el.className = val.replace(c, '');\r\n // }\r\n // }\r\n // });\r\n // })\r\n // : this;\r\n // }),\r\n // (fn.remove = function() {\r\n // return this.each(node => {\r\n // return node.parentNode && node.parentNode.removeChild(node);\r\n // });\r\n // }),\r\n\r\n // For spectrum compatibility\r\n\r\n fn.bind = function (ev, h) {\r\n return this.on(ev, h);\r\n };\r\n\r\n fn.unbind = function (ev, h) {\r\n if (isObject(ev)) {\r\n for (let name in ev) {\r\n ev.hasOwnProperty(name) && this.off(name, ev[name]);\r\n }\r\n\r\n return this;\r\n } else {\r\n return this.off(ev, h);\r\n }\r\n };\r\n\r\n fn.click = function (h) {\r\n return h ? this.on('click', h) : this.trigger('click');\r\n };\r\n\r\n fn.change = function (h) {\r\n return h ? this.on('change', h) : this.trigger('change');\r\n };\r\n\r\n fn.keydown = function (h) {\r\n return h ? this.on('keydown', h) : this.trigger('keydown');\r\n };\r\n\r\n fn.delegate = function (selector, events, data, handler) {\r\n if (!handler) {\r\n handler = data;\r\n }\r\n\r\n return this.on(events, selector, function (e) {\r\n e.data = data;\r\n handler(e);\r\n });\r\n };\r\n\r\n fn.scrollLeft = function () {\r\n let el = this.get(0);\r\n el = el.nodeType == 9 ? el.defaultView : el;\r\n let win = el instanceof Window ? el : null;\r\n return win ? win.pageXOffset : el.scrollLeft || 0;\r\n };\r\n\r\n fn.scrollTop = function () {\r\n let el = this.get(0);\r\n el = el.nodeType == 9 ? el.defaultView : el;\r\n let win = el instanceof Window ? el : null;\r\n return win ? win.pageYOffset : el.scrollTop || 0;\r\n };\r\n\r\n const offset = $.prototype.offset;\r\n fn.offset = function (coords) {\r\n let top, left;\r\n\r\n if (coords) {\r\n top = coords.top;\r\n left = coords.left;\r\n }\r\n\r\n if (typeof top != 'undefined') {\r\n this.css('top', `${top}px`);\r\n }\r\n if (typeof left != 'undefined') {\r\n this.css('left', `${left}px`);\r\n }\r\n\r\n return offset.call(this);\r\n };\r\n\r\n $.map = function (items, clb) {\r\n const ar = [];\r\n\r\n for (var i = 0; i < items.length; i++) {\r\n ar.push(clb(items[i], i));\r\n }\r\n\r\n return ar;\r\n };\r\n\r\n const indexOf = Array.prototype.indexOf;\r\n\r\n $.inArray = function (val, arr, i) {\r\n return arr == null ? -1 : indexOf.call(arr, val, i);\r\n };\r\n\r\n $.Event = function (src, props) {\r\n if (!(this instanceof $.Event)) {\r\n return new $.Event(src, props);\r\n }\r\n\r\n this.type = src;\r\n this.isDefaultPrevented = () => false;\r\n };\r\n }\r\n};\r\n","import Backbone from 'backbone';\r\nimport { View } from '../../common';\r\nimport { appendStyles } from '../../utils/mixins';\r\n\r\nconst $ = Backbone.$;\r\n\r\nexport default class EditorView extends View {\r\n initialize() {\r\n const { model } = this;\r\n const { Panels, UndoManager } = model.attributes;\r\n model.view = this;\r\n model.once('change:ready', () => {\r\n Panels.active();\r\n Panels.disableButtons();\r\n UndoManager.clear();\r\n setTimeout(() => {\r\n model.trigger('load', model.get('Editor'));\r\n model.clearDirtyCount();\r\n });\r\n });\r\n }\r\n\r\n render() {\r\n const { $el, model } = this;\r\n const { Panels, Canvas, modules } = model.attributes;\r\n const conf = model.getConfig();\r\n const pfx = conf.stylePrefix;\r\n const contEl = $(conf.el || `body ${conf.container}`);\r\n appendStyles(conf.cssIcons, { unique: 1, prepand: 1 });\r\n $el.empty();\r\n\r\n if (conf.width) contEl.css('width', conf.width);\r\n if (conf.height) contEl.css('height', conf.height);\r\n\r\n $el.append(Canvas.render());\r\n $el.append(Panels.render());\r\n\r\n // Load shallow editor\r\n const shallow = model.get('shallow');\r\n const shallowCanvasEl = shallow.get('Canvas').render();\r\n shallowCanvasEl.style.display = 'none';\r\n $el.append(shallowCanvasEl);\r\n\r\n $el.attr('class', `${pfx}editor ${pfx}one-bg ${pfx}two-color`);\r\n contEl.addClass(`${pfx}editor-cont`).empty().append($el);\r\n modules.forEach(md => md.postRender && md.postRender(this));\r\n\r\n return this;\r\n }\r\n}\r\n","/**\r\n * Editor contains the top level API which you'll probably use to customize the editor or extend it with plugins.\r\n * You get the Editor instance on init method and you can pass options via its [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/editor/config/config.js)\r\n *\r\n * ```js\r\n * const editor = grapesjs.init({\r\n * // options\r\n * });\r\n * ```\r\n *\r\n * ## Available Events\r\n *\r\n * You can make use of available events in this way\r\n * ```js\r\n * editor.on('EVENT-NAME', (some, argument) => {\r\n * // do something\r\n * })\r\n * ```\r\n *\r\n * * `update` - The structure of the template is updated (its HTML/CSS)\r\n * * `undo` - Undo executed\r\n * * `redo` - Redo executed\r\n * * `load` - Editor is loaded\r\n *\r\n * ### Components\r\n * Check the [Components](/api/components.html) module.\r\n * ### Keymaps\r\n * Check the [Keymaps](/api/keymaps.html) module.\r\n * ### Style Manager\r\n * Check the [Style Manager](/api/style_manager.html) module.\r\n * ### Storage\r\n * Check the [Storage](/api/storage_manager.html) module.\r\n * ### Canvas\r\n * Check the [Canvas](/api/canvas.html) module.\r\n * ### RTE\r\n * Check the [Rich Text Editor](/api/rich_text_editor.html) module.\r\n * ### Commands\r\n * Check the [Commands](/api/commands.html) module.\r\n * ### Selectors\r\n * Check the [Selectors](/api/selector_manager.html) module.\r\n * ### Blocks\r\n * Check the [Blocks](/api/block_manager.html) module.\r\n * ### Assets\r\n * Check the [Assets](/api/assets.html) module.\r\n * ### Modal\r\n * Check the [Modal](/api/modal_dialog.html) module.\r\n * ### Devices\r\n * Check the [Devices](/api/device_manager.html) module.\r\n * ### Parser\r\n * Check the [Parser](/api/parser.html) module.\r\n * ### Pages\r\n * Check the [Pages](/api/pages.html) module.\r\n *\r\n * ## Methods\r\n * @module Editor\r\n */\r\nimport html from '../utils/html';\r\nimport defaults from './config/config';\r\nimport EditorModel from './model/Editor';\r\nimport EditorView from './view/EditorView';\r\n\r\nexport default (config = {}, opts = {}) => {\r\n const { $ } = opts;\r\n let c = {\r\n ...defaults,\r\n ...config,\r\n };\r\n\r\n c.pStylePrefix = c.stylePrefix;\r\n let em = new EditorModel(c);\r\n let editorView;\r\n\r\n return {\r\n $,\r\n\r\n /**\r\n * @property {EditorModel}\r\n * @private\r\n */\r\n editor: em,\r\n\r\n modules: [],\r\n\r\n /**\r\n * Initialize editor model\r\n * @return {this}\r\n * @private\r\n */\r\n init(opts = {}) {\r\n em.init(this, { ...c, ...opts });\r\n\r\n this.modules = [\r\n 'I18n',\r\n 'Utils',\r\n 'Config',\r\n 'Commands',\r\n 'Keymaps',\r\n 'Modal',\r\n 'Panels',\r\n 'Canvas',\r\n 'Parser',\r\n 'CodeManager',\r\n 'UndoManager',\r\n 'RichTextEditor',\r\n ['Pages', 'PageManager'],\r\n 'DomComponents',\r\n ['Components', 'DomComponents'],\r\n 'LayerManager',\r\n ['Layers', 'LayerManager'],\r\n 'CssComposer',\r\n ['Css', 'CssComposer'],\r\n 'StorageManager',\r\n ['Storage', 'StorageManager'],\r\n 'AssetManager',\r\n ['Assets', 'AssetManager'],\r\n 'BlockManager',\r\n ['Blocks', 'BlockManager'],\r\n 'TraitManager',\r\n ['Traits', 'TraitManager'],\r\n 'SelectorManager',\r\n ['Selectors', 'SelectorManager'],\r\n 'StyleManager',\r\n ['Styles', 'StyleManager'],\r\n 'DeviceManager',\r\n ['Devices', 'DeviceManager'],\r\n ];\r\n\r\n this.modules.forEach(prop => {\r\n if (Array.isArray(prop)) {\r\n this[prop[0]] = em.get(prop[1]);\r\n } else {\r\n this[prop] = em.get(prop);\r\n }\r\n });\r\n\r\n return this;\r\n },\r\n\r\n /**\r\n * Returns configuration object\r\n * @param {string} [prop] Property name\r\n * @returns {any} Returns the configuration object or\r\n * the value of the specified property\r\n */\r\n getConfig(prop) {\r\n return em.getConfig(prop);\r\n },\r\n\r\n /**\r\n * Returns HTML built inside canvas\r\n * @param {Object} [opts={}] Options\r\n * @param {Component} [opts.component] Return the HTML of a specific Component\r\n * @param {Boolean} [opts.cleanId=false] Remove unnecessary IDs (eg. those created automatically)\r\n * @returns {string} HTML string\r\n */\r\n getHtml(opts) {\r\n return em.getHtml(opts);\r\n },\r\n\r\n /**\r\n * Returns CSS built inside canvas\r\n * @param {Object} [opts={}] Options\r\n * @param {Component} [opts.component] Return the CSS of a specific Component\r\n * @param {Boolean} [opts.json=false] Return an array of CssRules instead of the CSS string\r\n * @param {Boolean} [opts.avoidProtected=false] Don't include protected CSS\r\n * @param {Boolean} [opts.onlyMatched=false] Return only rules matched by the passed component.\r\n * @param {Boolean} [opts.keepUnusedStyles=false] Force keep all defined rules. Toggle on in case output looks different inside/outside of the editor.\r\n * @returns {String|Array} CSS string or array of CssRules\r\n */\r\n getCss(opts) {\r\n return em.getCss(opts);\r\n },\r\n\r\n /**\r\n * Returns JS of all components\r\n * @param {Object} [opts={}] Options\r\n * @param {Component} [opts.component] Get the JS of a specific component\r\n * @returns {String} JS string\r\n */\r\n getJs(opts) {\r\n return em.getJs(opts);\r\n },\r\n\r\n /**\r\n * Return the complete tree of components. Use `getWrapper` to include also the wrapper\r\n * @return {Components}\r\n */\r\n getComponents() {\r\n return em.get('DomComponents').getComponents();\r\n },\r\n\r\n /**\r\n * Return the wrapper and its all components\r\n * @return {Component}\r\n */\r\n getWrapper() {\r\n return em.get('DomComponents').getWrapper();\r\n },\r\n\r\n /**\r\n * Set components inside editor's canvas. This method overrides actual components\r\n * @param {Array|Object|string} components HTML string or components model\r\n * @param {Object} opt the options object to be used by the [setComponents]{@link em#setComponents} method\r\n * @return {this}\r\n * @example\r\n * editor.setComponents('
New component
');\r\n * // or\r\n * editor.setComponents({\r\n * type: 'text',\r\n * classes:['cls'],\r\n * content: 'New component'\r\n * });\r\n */\r\n setComponents(components, opt = {}) {\r\n em.setComponents(components, opt);\r\n return this;\r\n },\r\n\r\n /**\r\n * Add components\r\n * @param {Array|Object|string} components HTML string or components model\r\n * @param {Object} opts Options\r\n * @param {Boolean} [opts.avoidUpdateStyle=false] If the HTML string contains styles,\r\n * by default, they will be created and, if already exist, updated. When this option\r\n * is true, styles already created will not be updated.\r\n * @return {Array}\r\n * @example\r\n * editor.addComponents('
New component
');\r\n * // or\r\n * editor.addComponents({\r\n * type: 'text',\r\n * classes:['cls'],\r\n * content: 'New component'\r\n * });\r\n */\r\n addComponents(components, opts) {\r\n return this.getWrapper().append(components, opts);\r\n },\r\n\r\n /**\r\n * Returns style in JSON format object\r\n * @return {Object}\r\n */\r\n getStyle() {\r\n return em.get('CssComposer').getAll();\r\n },\r\n\r\n /**\r\n * Set style inside editor's canvas. This method overrides actual style\r\n * @param {Array|Object|string} style CSS string or style model\r\n * @return {this}\r\n * @example\r\n * editor.setStyle('.cls{color: red}');\r\n * //or\r\n * editor.setStyle({\r\n * selectors: ['cls'],\r\n * style: { color: 'red' }\r\n * });\r\n */\r\n setStyle(style, opt = {}) {\r\n em.setStyle(style, opt);\r\n return this;\r\n },\r\n\r\n /**\r\n * Add styles to the editor\r\n * @param {Array|Object|string} style CSS string or style model\r\n * @returns {Array} Array of created CssRule instances\r\n * @example\r\n * editor.addStyle('.cls{color: red}');\r\n */\r\n addStyle(style, opts = {}) {\r\n return em.addStyle(style, opts);\r\n },\r\n\r\n /**\r\n * Returns the last selected component, if there is one\r\n * @return {Model}\r\n */\r\n getSelected() {\r\n return em.getSelected();\r\n },\r\n\r\n /**\r\n * Returns an array of all selected components\r\n * @return {Array}\r\n */\r\n getSelectedAll() {\r\n return em.getSelectedAll();\r\n },\r\n\r\n /**\r\n * Get a stylable entity from the selected component.\r\n * If you select a component without classes the entity is the Component\r\n * itself and all changes will go inside its 'style' attribute. Otherwise,\r\n * if the selected component has one or more classes, the function will\r\n * return the corresponding CSS Rule\r\n * @return {Model}\r\n */\r\n getSelectedToStyle() {\r\n let selected = em.getSelected();\r\n\r\n if (selected) {\r\n return this.StyleManager.getModelToStyle(selected);\r\n }\r\n },\r\n\r\n /**\r\n * Select a component\r\n * @param {Component|HTMLElement} el Component to select\r\n * @param {Object} [opts] Options\r\n * @param {Boolean} [opts.scroll] Scroll canvas to the selected element\r\n * @return {this}\r\n * @example\r\n * // Select dropped block\r\n * editor.on('block:drag:stop', function(model) {\r\n * editor.select(model);\r\n * });\r\n */\r\n select(el, opts) {\r\n em.setSelected(el, opts);\r\n return this;\r\n },\r\n\r\n /**\r\n * Add component to selection\r\n * @param {Component|HTMLElement|Array} el Component to select\r\n * @return {this}\r\n * @example\r\n * editor.selectAdd(model);\r\n */\r\n selectAdd(el) {\r\n em.addSelected(el);\r\n return this;\r\n },\r\n\r\n /**\r\n * Remove component from selection\r\n * @param {Component|HTMLElement|Array} el Component to select\r\n * @return {this}\r\n * @example\r\n * editor.selectRemove(model);\r\n */\r\n selectRemove(el) {\r\n em.removeSelected(el);\r\n return this;\r\n },\r\n\r\n /**\r\n * Toggle component selection\r\n * @param {Component|HTMLElement|Array} el Component to select\r\n * @return {this}\r\n * @example\r\n * editor.selectToggle(model);\r\n */\r\n selectToggle(el) {\r\n em.toggleSelected(el);\r\n return this;\r\n },\r\n\r\n /**\r\n * Returns, if active, the Component enabled in rich text editing mode.\r\n * @returns {Component|null}\r\n * @example\r\n * const textComp = editor.getEditing();\r\n * if (textComp) {\r\n * console.log('HTML: ', textComp.toHTML());\r\n * }\r\n */\r\n getEditing() {\r\n return em.getEditing();\r\n },\r\n\r\n /**\r\n * Set device to the editor. If the device exists it will\r\n * change the canvas to the proper width\r\n * @param {string} name Name of the device\r\n * @return {this}\r\n * @example\r\n * editor.setDevice('Tablet');\r\n */\r\n setDevice(name) {\r\n em.set('device', name);\r\n return this;\r\n },\r\n\r\n /**\r\n * Return the actual active device\r\n * @return {string} Device name\r\n * @example\r\n * var device = editor.getDevice();\r\n * console.log(device);\r\n * // 'Tablet'\r\n */\r\n getDevice() {\r\n return em.get('device');\r\n },\r\n\r\n /**\r\n * Execute command\r\n * @param {string} id Command ID\r\n * @param {Object} options Custom options\r\n * @return {*} The return is defined by the command\r\n * @example\r\n * editor.runCommand('myCommand', {someValue: 1});\r\n */\r\n runCommand(id, options = {}) {\r\n return em.get('Commands').run(id, options);\r\n },\r\n\r\n /**\r\n * Stop the command if stop method was provided\r\n * @param {string} id Command ID\r\n * @param {Object} options Custom options\r\n * @return {*} The return is defined by the command\r\n * @example\r\n * editor.stopCommand('myCommand', {someValue: 1});\r\n */\r\n stopCommand(id, options = {}) {\r\n return em.get('Commands').stop(id, options);\r\n },\r\n\r\n /**\r\n * Store data to the current storage.\r\n * This will reset the counter of changes (`editor.getDirtyCount()`).\r\n * @param {Object} [options] Storage options.\r\n * @returns {Object} Stored data.\r\n * @example\r\n * const storedData = await editor.store();\r\n */\r\n async store(options) {\r\n return await em.store(options);\r\n },\r\n\r\n /**\r\n * Load data from the current storage.\r\n * @param {Object} [options] Storage options.\r\n * @returns {Object} Loaded data.\r\n * @example\r\n * const data = await editor.load();\r\n */\r\n async load(options) {\r\n return await em.load(options);\r\n },\r\n\r\n /**\r\n * Get the JSON project data, which could be stored and loaded back with `editor.loadProjectData(json)`\r\n * @returns {Object}\r\n * @example\r\n * console.log(editor.getProjectData());\r\n * // { pages: [...], styles: [...], ... }\r\n */\r\n getProjectData() {\r\n return em.storeData();\r\n },\r\n\r\n /**\r\n * Load data from the JSON project\r\n * @param {Object} data Project to load\r\n * @example\r\n * editor.loadProjectData({ pages: [...], styles: [...], ... })\r\n */\r\n loadProjectData(data) {\r\n return em.loadData(data);\r\n },\r\n\r\n storeData() {\r\n return em.storeData();\r\n },\r\n\r\n loadData(data) {\r\n return em.loadData(data);\r\n },\r\n\r\n /**\r\n * Returns container element. The one which was indicated as 'container'\r\n * on init method\r\n * @return {HTMLElement}\r\n */\r\n getContainer() {\r\n return c.el;\r\n },\r\n\r\n /**\r\n * Return the count of changes made to the content and not yet stored.\r\n * This count resets at any `store()`\r\n * @return {number}\r\n */\r\n getDirtyCount() {\r\n return em.getDirtyCount();\r\n },\r\n\r\n /**\r\n * Reset the counter of changes.\r\n */\r\n clearDirtyCount() {\r\n return em.clearDirtyCount();\r\n },\r\n\r\n /**\r\n * Update editor dimension offsets\r\n *\r\n * This method could be useful when you update, for example, some position\r\n * of the editor element (eg. canvas, panels, etc.) with CSS, where without\r\n * refresh you'll get misleading position of tools\r\n * @param {Object} [options] Options\r\n * @param {Boolean} [options.tools=false] Update the position of tools (eg. rich text editor, component highlighter, etc.)\r\n */\r\n refresh(opts) {\r\n em.refreshCanvas(opts);\r\n },\r\n\r\n /**\r\n * Replace the built-in Rich Text Editor with a custom one.\r\n * @param {Object} obj Custom RTE Interface\r\n * @example\r\n * editor.setCustomRte({\r\n * // Function for enabling custom RTE\r\n * // el is the HTMLElement of the double clicked Text Component\r\n * // rte is the same instance you have returned the first time you call\r\n * // enable(). This is useful if need to check if the RTE is already enabled so\r\n * // ion this case you'll need to return the RTE and the end of the function\r\n * enable: function(el, rte) {\r\n * rte = new MyCustomRte(el, {}); // this depends on the Custom RTE API\r\n * ...\r\n * return rte; // return the RTE instance\r\n * },\r\n *\r\n * // Disable the editor, called for example when you unfocus the Text Component\r\n * disable: function(el, rte) {\r\n * rte.blur(); // this depends on the Custom RTE API\r\n * }\r\n *\r\n * // Called when the Text Component is focused again. If you returned the RTE instance\r\n * // from the enable function, the enable won't be called again instead will call focus,\r\n * // in this case to avoid double binding of the editor\r\n * focus: function (el, rte) {\r\n * rte.focus(); // this depends on the Custom RTE API\r\n * }\r\n * });\r\n */\r\n setCustomRte(obj) {\r\n this.RichTextEditor.customRte = obj;\r\n },\r\n\r\n /**\r\n * Replace the default CSS parser with a custom one.\r\n * The parser function receives a CSS string as a parameter and expects\r\n * an array of CSSRule objects as a result. If you need to remove the\r\n * custom parser, pass `null` as the argument\r\n * @param {Function|null} parser Parser function\r\n * @return {this}\r\n * @example\r\n * editor.setCustomParserCss(css => {\r\n * const result = [];\r\n * // ... parse the CSS string\r\n * result.push({\r\n * selectors: '.someclass, div .otherclass',\r\n * style: { color: 'red' }\r\n * })\r\n * // ...\r\n * return result;\r\n * });\r\n */\r\n setCustomParserCss(parser) {\r\n this.Parser.getConfig().parserCss = parser;\r\n return this;\r\n },\r\n\r\n /**\r\n * Change the global drag mode of components.\r\n * To get more about this feature read: https://github.com/artf/grapesjs/issues/1936\r\n * @param {String} value Drag mode, options: 'absolute' | 'translate'\r\n * @returns {this}\r\n */\r\n setDragMode(value) {\r\n em.setDragMode(value);\r\n return this;\r\n },\r\n\r\n /**\r\n * Trigger event log message\r\n * @param {*} msg Message to log\r\n * @param {Object} [opts={}] Custom options\r\n * @param {String} [opts.ns=''] Namespace of the log (eg. to use in plugins)\r\n * @param {String} [opts.level='debug'] Level of the log, `debug`, `info`, `warning`, `error`\r\n * @return {this}\r\n * @example\r\n * editor.log('Something done!', { ns: 'from-plugin-x', level: 'info' });\r\n * // This will trigger following events\r\n * // `log`, `log:info`, `log-from-plugin-x`, `log-from-plugin-x:info`\r\n * // Callbacks of those events will always receive the message and\r\n * // options, as arguments, eg:\r\n * // editor.on('log:info', (msg, opts) => console.info(msg, opts))\r\n */\r\n log(msg, opts = {}) {\r\n em.log(msg, opts);\r\n return this;\r\n },\r\n\r\n /**\r\n * Translate label\r\n * @param {String} key Label to translate\r\n * @param {Object} [opts] Options for the translation\r\n * @param {Object} [opts.params] Params for the translation\r\n * @param {Boolean} [opts.noWarn] Avoid warnings in case of missing resources\r\n * @returns {String}\r\n * @example\r\n * editor.t('msg');\r\n * // use params\r\n * editor.t('msg2', { params: { test: 'hello' } });\r\n * // custom local\r\n * editor.t('msg2', { params: { test: 'hello' }, l: 'it' });\r\n */\r\n t(...args) {\r\n return em.t(...args);\r\n },\r\n\r\n /**\r\n * Attach event\r\n * @param {string} event Event name\r\n * @param {Function} callback Callback function\r\n * @return {this}\r\n */\r\n on(event, callback) {\r\n em.on(event, callback);\r\n return this;\r\n },\r\n\r\n /**\r\n * Attach event and detach it after the first run\r\n * @param {string} event Event name\r\n * @param {Function} callback Callback function\r\n * @return {this}\r\n */\r\n once(event, callback) {\r\n em.once(event, callback);\r\n return this;\r\n },\r\n\r\n /**\r\n * Detach event\r\n * @param {string} event Event name\r\n * @param {Function} callback Callback function\r\n * @return {this}\r\n */\r\n off(event, callback) {\r\n em.off(event, callback);\r\n return this;\r\n },\r\n\r\n /**\r\n * Trigger event\r\n * @param {string} event Event to trigger\r\n * @return {this}\r\n */\r\n trigger(event) {\r\n em.trigger.apply(em, arguments);\r\n return this;\r\n },\r\n\r\n /**\r\n * Destroy the editor\r\n */\r\n destroy() {\r\n if (!em) return;\r\n em.destroyAll();\r\n this.modules.forEach(prop => {\r\n if (Array.isArray(prop)) {\r\n this[prop[0]] = 0;\r\n } else {\r\n this[prop] = 0;\r\n }\r\n });\r\n this.modules = 0;\r\n editorView = 0;\r\n em = 0;\r\n c = 0;\r\n },\r\n\r\n /**\r\n * Returns editor element\r\n * @return {HTMLElement}\r\n * @private\r\n */\r\n getEl() {\r\n return editorView && editorView.el;\r\n },\r\n\r\n /**\r\n * Returns editor model\r\n * @return {Model}\r\n * @private\r\n */\r\n getModel() {\r\n return em;\r\n },\r\n\r\n /**\r\n * Render editor\r\n * @return {HTMLElement}\r\n */\r\n render() {\r\n editorView && editorView.remove();\r\n editorView = new EditorView({\r\n model: em,\r\n config: c,\r\n });\r\n return editorView.render().el;\r\n },\r\n\r\n /**\r\n * Trigger a callback once the editor is loaded and rendered.\r\n * The callback will be executed immediately if the method is called on the already rendered editor.\r\n * @param {Function} clb Callback to trigger\r\n * @example\r\n * editor.onReady(() => {\r\n * // perform actions\r\n * });\r\n */\r\n onReady(clb) {\r\n em.get('ready') ? clb(this) : em.on('load', clb);\r\n },\r\n\r\n /**\r\n * Print safe HTML by using ES6 tagged template strings.\r\n * @param {Array} literals\r\n * @param {Array} substs\r\n * @returns {String}\r\n * @example\r\n * const unsafeStr = '';\r\n * const safeStr = 'Hello';\r\n * // Use `$${var}` to avoid escaping\r\n * const strHtml = editor.html`Escaped ${unsafeStr}, unescaped $${safeStr}`;\r\n */\r\n html,\r\n };\r\n};\r\n","export default {\r\n plugins: []\r\n};\r\n","/**\r\n * File made for IE/Edge support\r\n * https://github.com/artf/grapesjs/issues/214\r\n */\r\nimport { hasWin } from './mixins';\r\n\r\nexport default () => {\r\n /**\r\n * Check if IE/Edge\r\n * @return {Boolean}\r\n */\r\n const isIE = () => {\r\n let match;\r\n const agent = window.navigator.userAgent;\r\n const rules = [\r\n ['edge', /Edge\\/([0-9\\._]+)/],\r\n ['ie', /MSIE\\s(7\\.0)/],\r\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\r\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/]\r\n ];\r\n\r\n for (let i = 0; i < rules.length; i++) {\r\n const rule = rules[i];\r\n match = rule[1].exec(agent);\r\n if (match) break;\r\n }\r\n\r\n return !!match;\r\n };\r\n\r\n if (hasWin() && isIE()) {\r\n const originalCreateHTMLDocument =\r\n DOMImplementation.prototype.createHTMLDocument;\r\n DOMImplementation.prototype.createHTMLDocument = title => {\r\n if (!title) title = '';\r\n return originalCreateHTMLDocument.apply(document.implementation, [title]);\r\n };\r\n }\r\n};\r\n","import { isElement, isFunction } from 'underscore';\r\nimport $ from './utils/cash-dom';\r\nimport Editor from './editor';\r\nimport polyfills from './utils/polyfills';\r\nimport { getGlobal } from './utils/mixins';\r\nimport PluginManager from './plugin_manager';\r\n\r\npolyfills();\r\n\r\nconst plugins = new PluginManager();\r\nconst editors = [];\r\nconst defaultConfig = {\r\n // If true renders editor on init\r\n autorender: 1,\r\n\r\n // Array of plugins to init\r\n plugins: [],\r\n\r\n // Custom options for plugins\r\n pluginsOpts: {},\r\n};\r\n\r\nexport default {\r\n $,\r\n\r\n editors,\r\n\r\n plugins,\r\n\r\n // Will be replaced on build\r\n version: __GJS_VERSION__,\r\n\r\n /**\r\n * Initialize the editor with passed options\r\n * @param {Object} config Configuration object\r\n * @param {string|HTMLElement} config.container Selector which indicates where render the editor\r\n * @param {Boolean} [config.autorender=true] If true, auto-render the content\r\n * @param {Array} [config.plugins=[]] Array of plugins to execute on start\r\n * @param {Object} [config.pluginsOpts={}] Custom options for plugins\r\n * @param {Boolean} [config.headless=false] Init headless editor\r\n * @return {Editor} Editor instance\r\n * @example\r\n * var editor = grapesjs.init({\r\n * container: '#myeditor',\r\n * components: '
Hello world
',\r\n * style: '.hello{color: red}',\r\n * })\r\n */\r\n init(config = {}) {\r\n const { headless } = config;\r\n const els = config.container;\r\n if (!els && !headless) throw new Error(\"'container' is required\");\r\n config = { ...defaultConfig, ...config, grapesjs: this };\r\n config.el = !headless && (isElement(els) ? els : document.querySelector(els));\r\n const editor = new Editor(config, { $ }).init();\r\n const em = editor.getModel();\r\n\r\n // Load plugins\r\n config.plugins.forEach(pluginId => {\r\n let plugin = isFunction(pluginId) ? pluginId : plugins.get(pluginId);\r\n const plgOptions = config.pluginsOpts[pluginId] || {};\r\n\r\n // Try to search in global context\r\n if (!plugin) {\r\n const wplg = getGlobal()[pluginId];\r\n plugin = wplg?.default || wplg;\r\n }\r\n\r\n if (plugin) {\r\n plugin(editor, plgOptions);\r\n } else if (isFunction(pluginId)) {\r\n pluginId(editor, plgOptions);\r\n } else {\r\n em.logWarning(`Plugin ${pluginId} not found`, {\r\n context: 'plugins',\r\n plugin: pluginId,\r\n });\r\n }\r\n });\r\n\r\n // Execute `onLoad` on modules once all plugins are initialized.\r\n // A plugin might have extended/added some custom type so this\r\n // is a good point to load stuff like components, css rules, etc.\r\n em.loadOnStart();\r\n config.autorender && !headless && editor.render();\r\n editors.push(editor);\r\n\r\n return editor;\r\n },\r\n};\r\n","import defaults from './config/config';\r\n\r\nexport default config => {\r\n var c = config || {};\r\n\r\n // Set default options\r\n for (var name in defaults) {\r\n if (!(name in c)) c[name] = defaults[name];\r\n }\r\n\r\n var plugins = {};\r\n\r\n return {\r\n /**\r\n * Add new plugin. Plugins could not be overwritten\r\n * @param {string} id Plugin ID\r\n * @param {Function} plugin Function which contains all plugin logic\r\n * @return {Function} The plugin function\r\n * @example\r\n * PluginManager.add('some-plugin', function(editor){\r\n * editor.Commands.add('new-command', {\r\n * run: function(editor, senderBtn){\r\n * console.log('Executed new-command');\r\n * }\r\n * })\r\n * });\r\n */\r\n add(id, plugin) {\r\n if (plugins[id]) {\r\n return plugins[id];\r\n }\r\n\r\n plugins[id] = plugin;\r\n return plugin;\r\n },\r\n\r\n /**\r\n * Returns plugin by ID\r\n * @param {string} id Plugin ID\r\n * @return {Function|undefined} Plugin\r\n * @example\r\n * var plugin = PluginManager.get('some-plugin');\r\n * plugin(editor);\r\n */\r\n get(id) {\r\n return plugins[id];\r\n },\r\n\r\n /**\r\n * Returns object with all plugins\r\n * @return {Object}\r\n */\r\n getAll() {\r\n return plugins;\r\n }\r\n };\r\n};\r\n"],"names":["root","factory","exports","module","define","amd","globalThis","window","this","assets","noAssets","stylePrefix","upload","uploadName","headers","params","credentials","multiUpload","autoAdd","customFetch","uploadFile","embedAsBase64","handleAdd","beforeUpload","showUrlInput","custom","dropzone","openAssetsOnDrop","dropzoneContent","Asset","type","src","get","split","pop","shift","getFilename","Model","prototype","idAttribute","getDefaults","result","AssetImage","unitDim","height","width","AssetView","o","options","collection","config","pfx","ppfx","pStylePrefix","em","className","listenTo","model","remove","view","init","bind","am","__getBehaviour","getPreview","getInfo","target","set","clone","el","innerHTML","template","View","AssetImageView","html","name","unit","dim","select","__getBhv","onClick","coll","trigger","$el","addClass","isFunction","updateTarget","onDblClick","onSelect","close","e","stopImmediatePropagation","events","click","dblclick","Assets","Collection","TypeableCollection","types","id","isType","value","AssetsView","form","t","renderAssets","addToAsset","removedAsset","deselectAll","preventDefault","input","getAddInput","url","trim","getAssetsEl","scrollTop","globalCollection","add","at","querySelector","inputUrl","length","toggleNoAssets","addAsset","fragmentEl","fragment","rendered","typeView","render","appendChild","assetsEl","insertBefore","firstChild","hide","find","empty","append","removeClass","document","createDocumentFragment","each","fuRendered","fu","submit","FileUploaderView","title","uploadId","disabled","opts","c","undefined","disableUpload","constructor","delegateEvents","__propEv","res","val","err","console","error","onUploadEnd","text","clb","json","JSON","parse","data","files","dataTransfer","body","FormData","param","i","reqHead","onUploadStart","fetchOpts","method","fetch","then","status","Promise","reject","onUploadResponse","catch","onUploadError","that","uploadForm","ondragover","ondragleave","ondrop","ev","addedCls","edEl","editor","frameEl","getBody","updatedCls","dropzoneCls","cleanEditorElCls","replace","onDragOver","onDragLeave","onDrop","stopPropagation","getSelected","runCommand","Modal","AssetManager","setTarget","forEach","item","initDrop","attr","response","FileReader","promises","mimeTypeMatcher","file","promise","resolve","reader","addEventListener","event","match","exec","image","Image","readAsDataURL","push","all","Error","evAll","evPfx","evSelect","evUpdate","evAdd","evRemove","evRemoveBefore","evCustom","evOpen","evClose","evUpload","evUploadStart","evUploadEnd","evUploadError","evUploadRes","assetsVis","assetCmd","Module","storageKey","update","removeBefore","open","uploadStart","uploadEnd","uploadError","uploadResponse","defaults","__initListen","on","getAllVisible","getAll","__onAllEvent","debounce","__trgCustom","container","getConfig","__customData","bhv","isOpen","models","asset","complete","cmd","run","stop","isActive","where","__remove","store","getProjectData","load","loadProjectData","getContainer","assts","toRender","obj","__viewParams","FileUploader","reset","addType","definition","getType","getTypes","FileUpload","onLoad","postRender","editorView","initDropzone","m","f","func","__behaviour","_bhv","destroy","stopListening","appendTo","appendOnClick","blocks","Block","label","content","media","category","activate","resetId","disable","attributes","ctg","Blocks","Category","Categories","BlockView","mousedown","dragstart","drag","dragend","endDrag","getEditor","insertAt","sorter","getSorter","selected","setDropContent","validTarget","getEl","valid","parent","components","indexOf","wrapper","getWrapper","setSelected","scroll","button","draggable","refreshCanvas","setDragHelper","startSort","__getModule","__startDrag","__drag","__endDrag","off","moved","endMove","cls","class","clsAdd","textContent","setAttribute","hasDnd","prefix","CategoryView","caretR","caretD","iconClass","activeClass","updateVisibility","getIconEl","getBlocksEl","style","display","iconEl","blocksEl","css","order","BlocksView","bindAll","categories","renderedCategories","noCatClass","blockContClass","catsClass","addTo","tac","grabbingCls","canvas","utils","Sorter","placer","getPlacerEl","containerSel","itemSel","onStart","onDrag","onEndMove","onMove","getFrameEl","contentDocument","direction","wmargin","nested","canvasRelative","stopDefault","runDefault","oldActive","unset","frag","ignoreCategories","isString","isObject","catModel","catId","catView","getCategoriesEl","silent","catsEl","evDrag","evDragStart","evDragStop","blocksVisible","blocksView","dragStart","dragEnd","bm","block","startDrag","dragStop","cancel","getContent","_dragBlock","dragResult","dragContent","map","cmp","oldKey","toActive","toSelect","first","isArray","onAll","__getFrameViews","getFrames","frame","fv","droppable","startCustom","endCustom","elTo","isElement","__logWarn","props","prp","getCategories","external","updateConfig","colls","scripts","styles","customBadgeLabel","autoscrollLimit","extHl","notTextable","Canvas","frames","rulers","zoom","x","y","Frames","onZoomChange","updateDevice","evPageSelect","_pageUpdated","mainPage","getMain","getMainFrame","page","prev","device","getDeviceModel","getCurrentFrameModel","noUndo","Droppable","rootEl","getComponent","els","Array","counter","toggleEffects","enable","methods","handleDragEnter","handleDragOver","handleDrop","handleDragLeave","doc","ownerDocument","defaultView","frameElement","sortOpts","onEnd","customTarget","elementFromPoint","clientX","clientY","__customTglEff","over","endDrop","updateCounter","dt","inAbsoluteMode","dragger","guidesInfo","center","comp","cancelled","getStyle","left","top","position","addStyle","handleDragEnd","cnt","preserveSelected","getContentByData","border","getData","alt","href","FrameView","allowfullscreen","tools","frameView","showGlobalTools","cvModel","getCanvasModel","updateHead","renderStyles","setViewEl","headEl","getHead","toRemove","toAdd","current","previous","attrStr","Object","keys","sort","join","items","stack","tag","some","s","stl","parentNode","removeChild","appendVNodes","getModel","contentWindow","getDoc","jsContainer","createEl","frameWrapView","elTools","getGlobalToolsEl","_getTool","rect","getBoundingClientRect","scrollLeft","offsetHeight","offsetWidth","offsetTop","offsetLeft","scrollBottom","scrollRight","toolsEl","getToolsEl","wrp","_toggleEffects","arguments","lastMaxHeight","setTimeout","_toggleAutoscrollFx","requestAnimationFrame","autoscroll","dragging","lastClientY","win","getWindow","actualTop","limitTop","limitBottom","getRect","nextTop","isUndefined","opacity","scrollTo","getPointerEvent","getZoomDecimal","mt","updateClientY","stopAutoscroll","renderScripts","evLoad","evOpts","appendScript","scriptEl","onerror","onload","head","renderBody","normalize","stls","rel","prevStyles","conf","_isEditor","baseCss","canvasCss","protectedCss","component","CssRulesView","getStyles","getJsContainer","tagName","dispatchEvent","createCustomEvent","motionsEv","_emitUpdate","_emitUpdated","FrameWrapView","canvasView","cv","classAnim","updateOffset","updateSize","frameLoaded","updatePos","setupDragger","dragX","dragY","toggleFramesEvents","Dragger","getZoomMultiplier","setPosition","posOpts","start","removeEl","__clear","md","isNaN","updateDim","__handleSize","noChanges","isNull","onscroll","onScroll","currW","currH","newW","newH","isNumber","onRender","twrp","toolsWrapper","elTop","elRight","elBottom","elLeft","frameWrapperView","timerZoom","FramesView","DomainViews","itemView","CanvasView","wheel","_initFrames","clearOff","checkSelected","updateFrames","_onFramesUpdate","toggleListeners","_renderFrames","once","currFrame","views","_getFrame","scrollIntoView","_parentEvent","fn","onKeyPress","getKeyChar","isInputFocused","ctrlKey","metaKey","delta","Math","max","min","wheelDelta","detail","getZoom","defOpts","mpl","framesArea","transform","clearTimeout","elem","getElement","getElRect","frameRect","getFrameOffset","rTop","rLeft","docBody","noScroll","frmOff","cvsOff","winEl","frEl","offset","opt","getCanvasOffset","eo","frmTop","avoidFrameOffset","frmLeft","isTextNode","getComputedStyle","parseFloat","bEl","fo","co","getId","scriptContainer","script","createElement","scriptFn","getScriptString","scriptFnStr","scriptProps","stringify","__getScriptProps","scr","getFrameView","ready","frms","listenToLoad","mainFrame","setCurrentFrame","$frames","toolsWrp","hlEl","badgeEl","placerEl","ghostEl","toolbarEl","resizerEl","offsetEl","fixedOffsetEl","toolsGlobEl","getUiClass","getCanvasView","startAutoscroll","getFrame","index","getFramesEl","getDocument","_getCompFrame","compView","_getLocalEl","globalEl","getHighlighter","getBadgeEl","getGhostEl","getToolbarEl","getResizerEl","getOffsetViewerEl","getFixedOffsetViewerEl","getOffset","frameOff","canvasOff","setCustomBadgeLabel","getElementPos","getElementOffsets","getPosition","topScroll","leftScroll","getTargetToElementDim","element","canvasPos","pos","elPos","toRight","targetHeight","targetWidth","eventToTrigger","leftPos","topPos","elementTop","elementLeft","elementWidth","elementHeight","canvasTop","canvasLeft","canvasWidth","canvasHeight","canvasRectOffset","getFrameElFromDoc","rectOff","side","getTargetToElementFixed","elToMove","cvOff","toolbarH","toolbarW","frCvOff","frameOffset","fullHeight","elIsShort","canvasOffsetTop","canvasOffsetLeft","getMouseRelativePos","addTop","addLeft","subWinOffset","parentWindow","yOffset","pageYOffset","xOffset","pageXOffset","getMouseRelativeCanvas","hasFocus","toIgnore","focused","activeElement","matches","getViewEl","fr","getCurrentFrame","setZoom","setCoords","getCoords","pointerEvents","addFrame","keyAutoW","keyAutoH","Frame","changesCount","_undo","_undoexc","domc","allRules","idMap","modOpts","isComponent","Wrapper","idMapKeys","sel","selectors","sSel","idSel","prevId","substring","temporary","noCount","avoidStore","setHead","filter","getHeadByAttr","splice","addHeadItem","removeHeadByAttr","fromUndo","key","prop","isEmpty","onReset","onRemove","previousModels","p","removed","loadedItems","itemsToLoad","listenToLoadItems","itemLoaded","inlineCss","HTMLGenerator","htmlOpts","cleanId","rules","idRules","toJSON","rule","sels","isId","mod","attrs","toHTML","JsonGenerator","beforeEach","v","build","CodeMirror","JsGenerator","code","comps","extend","scrStr","scrProps","mapJs","ids","mapType","mapModel","toString","hasWin","require","CodeMirrorEditor","codeName","theme","readOnly","lineNumbers","fromTextArea","dragDrop","lineWrapping","mode","onChange","refresh","focus","ed","getValue","setValue","autoFormatRange","commands","selectAll","getCursor","goDocStart","noRefresh","EditorView","generators","defGenerators","viewers","defViewers","defaultViewer","gHtml","gCss","gJson","js","gJs","eCM","loadDefaultGenerators","loadDefaultViewers","addGenerator","generator","getGenerator","getGenerators","addViewer","viewer","getViewer","getViewers","createViewer","cont","txtarea","setElement","updateViewer","setContent","getCode","genId","maxValue","Number","MAX_VALUE","getMediaLength","mediaQuery","CssGenerator","compCls","avoidInline","styleToString","classes","getFullName","buildFromModel","cssc","codeJson","clearStyles","atRules","dump","onlyMatched","matchedRules","atRule","getAtRule","mRules","buildFromRule","sortMediaObject","rulesStr","ruleStr","r","found","selectorStrNoAdd","selectorsToString","skipAdd","selectorsAdd","singleAtRule","selector","keepUnusedStyles","getDeclaration","__cleanSelector","concat","itemsArr","a","b","isMobFirst","every","mquery","right","getQueryLength","getKey","q","strict","commandsDef","defaultCommands","active","CommandAbstract","k","action","sender","selAll","getSelectedAll","nativeDrag","defComOptions","modes","logWarning","hideTlb","altMode","includes","eventDrag","emitUpdate","setDragImage","cmdMove","Commands","onEndMoveFromModel","initSorterFromModels","UndoManager","undo","redo","oldCmd","default","cmdName","args","loadDefaultCommands","noStop","initialize","command","cmdObj","has","stopCommand","getActive","hasOwnProperty","force","callRun","abort","callStop","create","DomComponents","clear","CssComposer","canvasModel","toggleMove","disableDragger","onKeyUp","enableDragger","toggleDragger","methodCls","getCanvas","classList","methodEv","methodsEv","editorModel","hoverClass","badgeClass","plhClass","freezClass","Boolean","evName","guidesStatic","guidesTarget","setupGuides","isTran","guidesContainer","getGuidesContainer","getGuidesTarget","getGuidesStatic","drg","setOptions","toggleDrag","getEventOpts","guides","guide","guidesEl","elInfoX","elInfoY","guideContent","elGuideInfoX","elGuideInfoY","elGuideInfoContentX","elGuideInfoContentY","updateGuides","debug","renderGuide","children","getElementGuides","lastEl","lastPos","origin","getGuidePosUpdate","originRect","un","guideSize","numEl","getTranslate","axis","itemStr","toUpperCase","setTranslate","end","en","styleUp","adds","_getDragData","relPos","parentRel","pStyle","offsetP","renderGuideInfo","hideGuidesInfo","rectOrigin","isY","origEdge1","origEdge1Raw","origEdge2","origEdge2Raw","elGuideInfo","elGuideInfoCnt","guideInfoStyle","stat","statEdge2","gap","isEdge1","statEdge1","statEdge1Raw","statEdge2Raw","posFirst","posSecond","pos2","size","sizeRaw","round","matched","next","snd","len","incr","getChildAt","wrappers","Pages","getAllWrappers","flatten","findType","$","Backbone","SelectComponent","mouseover","startDelete","mouseout","stopDelete","onDelete","$this","attachBadge","badge","removeBadge","clean","updateBadgeLabel","getName","modal","cm","CodeManager","$editors","oHtmlEd","buildEditor","oCsslEd","htmlEditor","cssEditor","textViewCode","getHtml","getCss","codeMirror","isEnabled","d","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","warn","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","fsChanged","removeEventListener","targetEl","SelectPosition","noSelClass","getHighlighterEl","wp","$wrapper","initSorter","toggleClipboard","cacheEl","startSelectPosition","stopSelectComponent","getContentWindow","rollback","initSorterFromModel","lastModel","toMove","onMoveClb","which","keyCode","$badge","getBadge","$hl","unbind","onceClose","accept","modalTitle","uploadEl","firstRender","pn","Panels","getPanel","addPanel","lm","LayerManager","layers","panels","$cn","trgEvCnt","$cn2","dvm","DeviceManager","showDevices","devicePanel","dvEl","slm","SelectorManager","slmConfig","sm","StyleManager","smConfig","$header","pnCnt","panel","toggleSm","show","Config","tm","TraitManager","confTm","toggleTm","clp","added","addOpts","copyable","cop","contains","cmdVis","getPanels","preventDrag","tglEffects","mthEv","tlb","elP","querySelectorAll","shouldRunSwVisibility","editorEl","helper","onclick","canvasS","padding","margin","posFetcher","mousePosFetcher","canvasResizer","forceNew","Utils","Resizer","blur","handleClick","calibrated","execCommand","ToolbarView","ToolbarButtonView","ToolbarButton","showOffsets","adjScroll","startSelectComponent","toggleSelectComponent","listenToEl","onFrameUpdated","onContainerChange","onHovered","updateGlobalPos","_upToolbar","updateAttached","onHover","onOut","onFrameScroll","trg","isDoc","currentDoc","setHovered","useValid","updateLocalPos","updateToolsLocal","elHovered","toggleToolsEl","currentFrame","getView","isVisible","elSelected","updateToolsGlobal","initResize","getElSelected","getElHovered","showElementOffset","hideElementOffset","showFixedElementOffset","state","hideFixedElementOffset","hideHighlighter","isEditing","isChildOf","updateBadge","posOnly","icon","getIcon","clsBadge","customeLabel","badgeLabel","bStyle","targetToElem","leftOff","showHighlighter","modelToStyle","resizeClass","isTaggableNode","resizable","toggleBodyClass","docs","resizer","keyHeight","keyWidth","currentUnit","keepAutoHeight","keepAutoWidth","getModelToStyle","computedStyle","modelStyle","currentWidth","autoWidth","currentHeight","autoHeight","startDim","w","h","unitHeight","getUnitFromValue","unitWidth","selectedHandler","onlyHeight","onlyWidth","bodyw","updateEvent","eventToListen","noEmit","updateToolbar","toolbarStyle","toolbar","showToolbar","Toolbar","toolbarView","updateToolbarPos","getCanvasPosition","updateTools","isCompSelected","isHoverEn","isNewEl","lastHovered","badgeOpts","topOff","_trgToolUp","lastSelected","hideBadge","cleanPrevious","isPointed","scale","getOffsetDim","stopSelectPosition","posTargetCollection","posIndex","posMethod","cDim","posIsLastEl","posTargetEl","outsideElem","posTargetModel","nearFloat","dims","isLast","getOffsetMethod","showOffsetsSelected","stateVar","offsetViewer","marginT","marginB","marginL","marginR","padT","padB","padL","padR","childNodes","stateLow","toLowerCase","marginName","paddingName","marginV","paddingV","paddingEls","fullMargName","fullPadName","marginLeftSt","marginLeft","marginRightSt","marginRight","marginTopSt","marginTop","marginBottomSt","marginBottom","mtStyle","mbStyle","mlStyle","mrStyle","ptStyle","pbStyle","plStyle","prStyle","posLeft","widthEl","marginSideH","marginSideT","padTop","paddingTop","padBot","paddingBottom","padSideH","padSideT","paddingLeft","padRight","paddingRight","toggleVis","mth","_upFrame","_onFramesChange","__getConfig","onResult","isDef","array","getAllMap","reduce","acc","__initConfig","def","deepMerge","changedAttributes","__catchAllEvent","collections","propagate","entity","rm","__appendTo","str","_createId","ln","allMap","createId","__listenAdd","__listenRemove","__listenUpdate","__destroy","onBeforeStyle","CSS","CssRule","mediaText","stylable","atRuleType","important","group","shallow","ensureSelectors","__onChange","changed","isEmptyObj","changesUp","toListen","getSelectors","Selectors","condition","typeStr","addSelector","selOpts","escape","getFullString","stateStr","skipState","allowEmpty","devices","getDevices","deviceDefault","getWidthMedia","stateValue","getStates","sngl","cmpId","getById","__p","ruleProps","st","wd","selAdd","a1","a2","a1S","slice","a2S","Styleable","CssRules","onAdd","parseCss","rulesView","elStyle","postLoad","um","slc","singleSel","node","parserCss","checkNode","compare","addCollection","l","sl","newSels","j","le","selec","modelExists","updateStyle","avoidUpdateStyle","styleUpdate","addRules","setRule","atRuleParams","setStyle","getRule","getRules","setIdRule","getCurrentMedia","Selector","getIdRule","setClassRule","getClassRule","getComponentRules","getSelectorsString","CssRuleView","toCSS","CssGroupRuleView","createTextNode","getBlockId","addToCollection","renderStarted","atRuleEl","styleEl","appendData","clsName","defaultBlockId","blockId","getMediaWidth","contRules","prs","pluck","pr","unshift","widthMedia","Device","priority","checkUnit","Devices","DevicesView","change","startAdd","updateSelect","devEl","devicesEl","getOptions","evSelectBefore","evAddBefore","chnSel","dv","_onSelect","deviceId","newDevice","draggableComponents","processor","voidElements","ComponentWrapperView","ComponentView","Component","columns","rows","rowsToAdd","columnsToAdd","clm","ComponentTableBody","svgAttrs","void","editable","highlightable","ratioDefault","traits","fallback","initToolbar","hasButtonBool","tb","getAttrToHTML","getSrcResult","substr","btoa","isDefaultSrc","parseUri","uri","query","qrs","search","pair","decodeURIComponent","hostname","pathname","protocol","hash","port","mapUrl","address","frameborder","OComponent","placeholder","changeProp","parseFromSrc","updateSrc","getMapUrl","addr","qr","z","test","classEmpty","fetchFile","modelOpt","srcExists","addAttributes","onActive","getSrc","onError","noDrag","renderAttributes","getIframe","iframe","ifrm","frameBorder","updateClasses","ComponentText","ComponentLink","textTags","child","nodeType","compProt","apply","updateContentText","syncContent","rte","fromDisable","disableEditing","canActivate","delegate","rteEnabled","sameInEdit","getEditing","isInnerText","isInstanceOf","lastContent","activeRte","logError","toggleEvents","onDisable","getChildrenContainer","contentOpt","customRte","resetFromString","insertComponent","selection","getSelection","rangeCount","range","getRangeAt","textNode","startContainer","startOffset","textModel","newCmps","is","cmps","onInput","disablePropagation","mixins","setEditing","elDocs","prevDef","ComponentLinkView","yt","vi","ytnc","videoId","provider","ytUrl","ytncUrl","viUrl","loop","poster","muted","autoplay","controls","color","list","modestbranding","sources","updateTraits","getYoutubeTraits","getVimeoTraits","getSourceTraits","prov","parseInt","getYoutubeSrc","getYoutubeNoCookieSrc","getVimeoSrc","getProviderTrait","getAutoplayTrait","getLoopTrait","getControlsTrait","isYtProv","isYtncProv","isViProv","isExtProv","OComponentView","updateProvider","updateVideo","renderByProvider","videoEl","renderYoutube","renderYoutubeNoCookie","renderVimeo","renderSource","initVideoEl","layerable","scrCnt","scriptCount","svar","svarNext","svarFn","svarNextFn","__innerHTML","customName","charAt","selectable","hoverable","inSvg","_createElement","createElementNS","_setAttributes","updateStatus","updateAttributes","initClasses","initComponents","createComment","ComponentWrapper","removable","__hasUm","attrUp","__getSrc","getAttributes","componentView","componentsById","componentTypes","ComponentTableCell","ComponentTableCellView","ComponentTableRow","ComponentTableRowView","ComponentTable","ComponentTableView","ComponentTableHead","ComponentTableHeadView","ComponentTableBodyView","ComponentTableFoot","ComponentTableFootView","ComponentMap","ComponentMapView","ComponentLabel","ComponentLabelView","ComponentVideo","ComponentVideoView","ComponentImage","ComponentImageView","ComponentScript","ComponentScriptView","ComponentSvgIn","ComponentSvgView","ComponentSvg","ComponentFrame","ComponentFrameView","ComponentComment","ComponentCommentView","ComponentTextNode","ComponentTextNodeView","ComponentTextView","Components","ComponentsView","compTypes","componentHovered","selectAdd","selectRemove","rest","getComponents","addComponent","setComponents","extendView","extendFn","extendFnView","compType","extendType","extendViewType","typeToExtend","modelToExt","viewToExt","getExtendedObj","fns","srcToExt","parentFn","df","it","removeType","getShallowWrapper","shallowEm","keyUpdate","keyUpdateInside","canMove","source","reason","srcModel","allById","Trait","targetEvent","targetUpdated","locale","getTargetValue","valueOpts","partial","setTargetValue","fromTarget","trait","valueToSet","final","toSet","step","Traits","handleReset","tf","objs","optionsTarget","TraitFactory","escapeRegExp","keySymbols","keySymbol","keySymbolOvrd","property","parentAttr","newAttr","toPropagate","ccid","initTraits","initScriptProps","scriptUpdated","tagUpdated","attrUpdated","_idUpdated","__emitUpdateTlb","__propToParent","__postAdd","__isSymbolOrInst","__initSymb","recursive","__changesUp","__propSelfToParent","$els","eq","closest","setClass","attrPrev","diff","shallowDiff","setAttributes","noClass","attrArr","compAttr","optsAdd","inline","cc","parseStyle","propOrig","addId","noStyle","TYPE_ID","__getSymbol","__getSymbols","classe","classStr","toUp","symbol","symbols","log","context","__symbReady","__upSymbProps","__isSymbol","__isSymbolTop","symbTopSelf","__getSymbTop","symbTop","symb","ref","__getAllById","symbs","idx","ovrd","symbEnabled","fromInstance","noPropagate","__isSymbOvrd","__getSymbToUp","__logSymbol","propsChanged","optUp","toUpOpts","isTemp","addedInstances","isMainSymb","addSymb","cid","toAppend","addedInst","addedTop","symbolInv","isSymbNested","__isSymbolNested","toUpFn","symbPrnt","newMods","attrCls","clsArr","normalizeClasses","__upSymbCls","addChild","avoidChildren","__upSymbComps","__loadTraits","getInitValue","prevProps","newProps","prevPropsEv","newPropsEv","__scriptPropsChange","compArr","prevColl","tr","traitsI","getTraits","getTrait","arr","_inner","cloned","newId","rulesToClone","newRule","defName","nameTag","i18nPfx","i18nName","i18nNameTag","i18nDefName","capitalize","customTag","sTag","customAttr","withProps","isBoolean","valueRes","altQuoteAttr","attrString","inner","getInnerHTML","getChangedProps","modelProps","tagVarStart","tagVarEnd","reg","RegExp","updated","removeChildren","rmOpts","byType","oldId","setId","idS","_getStyleRule","idUpdate","idPrev","getList","_getStyleSelector","ensureInList","nextId","getIncrementId","getNewId","ilen","uid","random","keepIds","dm","checkId","badgable","unstylable","dmode","getComponentIds","getComponentsFromDefs","itms","newComponents","resetChildren","newIds","allByID","parsed","parseString","canRemoveStyle","rulesRemoved","__postRemove","parseHtml","optsToPass","nodes","isMult","processDef","__firstAdd","mdl","modelPr","$$typeof","parserHtml","splitPropsFromAttr","__onAddEnd","getClasses","updateHighlight","updateContent","handleChange","avoidRender","_clbObj","__isDraggable","childrenView","handleDragStart","importClasses","renderChildren","chgArr","selectedCls","selectedParentCls","freezedCls","hoveredCls","selCls","noExtHl","actualCls","getAttribute","avoidHover","isTextable","hl","onAttrUpdate","removeAttr","textable","defaultAttr","contenteditable","nodeName","hasComps","updateScript","getChildrenSelector","getTemplate","getOffsetRect","gtop","gleft","assignRect","offsetParent","bottom","isInViewport","elDoc","behavior","_ensureElement","_setData","replaceWith","call","triggerAdd","sameFrameView","viewObject","parentEl","lastIndex","ParserHtml","extendStyle","propNew","noEvent","removeStyle","imp","propPrv","_validate","newStyle","baseType","getBaseType","typeFound","recognizeType","ModelInst","ViewInst","extendViewApi","Input","handleModelChange","holderClass","getInputEl","__onInputChange","elementUpdated","fromInput","inputEl","plh","inputClass","defaultOpts","beforeShow","noop","move","flat","showInput","showButtons","clickoutFiresChange","showInitial","showPalette","showPaletteOnly","hideAfterPaletteSelect","togglePaletteOnly","showSelectionPalette","localStorageKey","maxSelectionSize","cancelText","chooseText","togglePaletteMoreText","togglePaletteLessText","clearText","noColorSelectedText","preferredFormat","containerClassName","replacerClassName","showAlpha","palette","selectionPalette","spectrums","IE","navigator","userAgent","rgbaSupport","cssText","backgroundColor","replaceInput","markup","gradientFix","dataID","spectrum","extra","returnValue","spect","option","removeData","loadOpts","inputTypeColorSupport","_cachedResult","colorInput","localization","palettes","processNativeColorInputs","colorInputs","trimLeft","trimRight","tinyCounter","math","mathRound","mathMin","mathMax","mathRandom","tinycolor","rgb","g","ok","format","named","names","matchers","rgba","hsl","hsla","hsv","hsva","hex8","convertHexToDecimal","parseIntFromHex","hex6","hex3","stringInputToObject","bound01","String","convertToPercentage","floor","hsvToRgb","hue2rgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_b","_a","_roundA","_format","_gradientType","gradientType","_ok","_tc_id","isDark","getBrightness","isLight","isValid","getOriginalInput","getFormat","getAlpha","toRgb","setAlpha","toHsv","rgbToHsv","toHsvString","toHsl","rgbToHsl","toHslString","toHex","allow3Char","rgbToHex","toHexString","toHex8","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","lighten","brighten","darken","desaturate","saturate","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","equals","color1","color2","mix","amount","w1","rgb1","rgb2","w2","readability","c1","c2","brightnessA","brightnessB","colorDiff","brightness","abs","isReadable","mostReadable","baseColor","colorList","bestColor","bestScore","bestIsReadable","readable","score","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flipped","flip","paletteTemplate","tiny","swatchStyle","wait","timeout","callbackContext","callbacks","instanceOptions","resize","reflow","throttler","visible","isDragging","isDefault","dragWidth","dragHeight","dragHelperHeight","slideHeight","alphaWidth","alphaSlideHelperWidth","slideHelperHeight","currentHue","currentSaturation","currentValue","currentAlpha","paletteArray","paletteLookup","draggingClass","shiftMovementDirection","boundElement","pickerContainer","dragHelper","slider","slideHelper","alphaSliderInner","alphaSlider","alphaSlideHelper","textInput","paletteContainer","initialColorContainer","cancelButton","clearButton","chooseButton","toggleButton","isInput","isInputTypeColor","shouldReplace","replacer","offsetElement","previewElement","initialColor","colorOnShow","currentPreferredFormat","applyOptions","toggleClass","updateSelectionPaletteFromStorage","localStorage","oldPalette","addColorToSelectionPalette","inArray","drawPalette","currentColor","unique","reverse","getUniqueSelectionPalette","drawInitial","initial","setFromTextInput","updateOriginalInput","toggle","Event","isDefaultPrevented","hideAll","$doc","onkeydown","clickout","updateUI","revert","ignoreFormatChange","newHsv","updateHelperLocations","flatColor","realColor","displayColor","realHex","realRgb","alpha","realAlpha","gradient","alphaX","slideY","fireCallback","hasChanged","picker","extraY","dpWidth","outerWidth","dpHeight","outerHeight","inputHeight","docElem","documentElement","cW","clientWidth","cH","clientHeight","scL","scT","viewWidth","viewHeight","after","paletteElementClick","ignore","keydown","hasClass","shiftKey","oldDragX","oldDragY","furtherFromX","paletteEvent","optionName","optionValue","coord","onmove","onstart","onstop","maxHeight","maxWidth","hasTouch","duringDragEvents","prevent","documentMode","t0","touches","pageX","pageY","rightclick","hex","pad2","clamp01","hue","results","slices","part","ret","modification","n","isOnePointZero","processPercent","isPercentage","ColorPicker","getColor","cl","InputColor","colorEl","getColorEl","tc","valueClr","noneColor","previousColor","self","cpStyle","elToAppend","colorPickerConfig","setValueFromInput","noDefault","InputNumber","contClass","validateInputValue","deepCheck","validObj","getUnitEl","upArrowClick","downArrowClick","unitEl","units","temp","normalizeValue","moveIncrement","upIncrement","prValue","defValue","stepDecimals","toFixed","limitlessMax","limitlessMin","fixed","regFixed","valCopy","uN","ns","reuseView","itemsView","typeField","itemType","itemViewNotFound","clearItems","onRemoveBefore","traitInputAttr","localeFallback","detectLocale","messages","assetManager","addButton","inputPlh","uploadTitle","blockManager","labels","domComponents","comment","video","link","tfoot","tbody","thead","table","row","cell","deviceManager","desktop","tablet","mobileLandscape","mobilePortrait","buttons","titles","preview","fullscreen","selectorManager","emptyState","states","hover","styleManager","layer","fileButton","sectors","general","layout","typography","decorations","flex","dimension","properties","traitManager","false","_blank","storageManager","recover","messagesAdd","isObj","deepAssign","targValue","srcValue","addMessages","_localLang","setLocale","evObj","valuePrev","getLocale","getMessages","lang","_debug","setMessages","msg","localeFlb","lFlb","_getMsg","_addParams","nav","language","userLanguage","msgSet","_handlers","_mods","_scope","_MODIFIERS","ctrl","control","_MAP","backspace","tab","enter","return","esc","space","up","down","del","delete","home","pageup","pagedown","charCodeAt","_downKeys","compareArray","modifierMap","updateModifierKey","clearModifier","assignKey","resetModifiers","scope","mods","getKeys","getMods","shortcut","getScope","mi","addEvent","object","attachEvent","setScope","deleteScope","handlers","srcElement","isPressed","getPressedKeyCodes","multipleKeys","handler","modifiersMatch","cancelBubble","dispatch","keymaster","configDef","keymaps","defKeys","keymap","pk","removeAll","backdrop","ModalView","updateOpen","updateTitle","$collector","$content","$title","getCollector","getTitle","currAttr","updateAttr","triggerEvent","ModalM","enb","_evData","titl","createText","setTitle","onceOpen","getContentEl","sortable","hidable","hideTextnode","showWrapper","showHover","scrollCanvas","scrollLayers","highlightHover","onInit","ItemsView","inputProp","styleOpts","isStyleHidden","ItemView","clsNoEdit","count","countChildren","clsNoChild","clsTitle","clsTitleC","clsCaret","clsInput","inputNameCls","level","gut","clsBase","clsCount","clsMove","clsChildren","parentView","checkChildren","updateOpening","updateLayerable","updateName","clsEdit","viewLayer","__render","getInputName","innerText","eyeEl","hClass","getVisibilityEl","prevDspKey","prevDisplay","isEscKey","isEnterKey","handleEditEnd","setName","propName","inputName","opened","chvDown","getCaret","fromLayers","isCountable","caret","_rendered","__clearItems","hidden","vis","componentChanged","setRoot","getRoot","sortContainer","ignoreViewChildren","created","getSourceModel","forceChange","avoidSelectOnEnd","Page","defFrame","evPageSelectBefore","evPageUpdate","evPageAdd","evPageAddBefore","evPageRemove","evPageRemoveBefore","typeMain","selectBefore","addBefore","cnf","pages","_onPageChange","mainComp","getMainComponent","pg","getAllFrames","pagesMap","swv","expt","osm","otm","ola","obl","ful","prv","togglable","delayBtnsShow","Panel","btn","Buttons","ButtonView","listen","activeCls","disableCls","btnsVisCls","updateActive","checkActive","updateBtnsVis","updateClassName","updateDisable","chnOpt","fromListen","$buttons","fromCollection","commandName","deactivateAll","toggleActive","ButtonsView","parentM","PanelView","appendContent","toggleVisible","cr","bc","resz","resLen","tl","bl","br","silentFrames","avoidContainerUpdate","forContainer","styleWidth","styleHeight","PanelsView","PanelsViewObj","getPanelsEl","removePanel","panelId","removeButton","getButton","disableButtons","Button","runDefaultCommand","stopDefaultCommand","except","deactivateAllExceptOne","ctx","disableAllButtonsExceptOne","optionsHtml","htmlType","allowScripts","allowUnsafeAttr","atRuleKeys","singleAtRules","singleAtRulesNames","parseSelector","propValue","getPropertyValue","getPropertyPriority","parseCondition","conditionText","selectorText","createNode","selLen","lastClass","stateArr","parseNode","cssRules","keyText","isSingleAtRule","subRules","lens","subRule","selsParsed","selsAdd","lastRule","len3","selsAddStr","sheet","BrowserCssParser","output","classSets","classSet","pHtml","pCss","Parser","defaultType","parser","DOMParser","mimeType","strF","parseFromString","hEls","modelAttrStart","modelAttr","valueLen","valStr","firstChar","lastChar","decls","decl","parseClass","attrsLen","nodePrev","nodeChild","ct","namespaceURI","nodeValue","keepEmptyTextNodes","outerHTML","allTxt","foundTextNode","ci","cType","cf","BrowserParserHtml","__clearUnsafeAttr","styleStr","resHtml","returnArray","removeAttribute","btnState","isValidTag","anchorNode","focusNode","parentAnchor","parentFocus","customElAttr","defActions","bold","italic","underline","strikethrough","insertHTML","wrap","RichTextEditor","settings","setEl","updateActiveActions","__onKeydown","__onPaste","acts","actions","actionbar","inactive","actionbarCont","actionbarContainer","addAction","styleWithCSS","getActions","queryCommandSupported","queryCommandState","enabled","__toggleEffects","actionbarEl","contentEditable","syncActions","caretRangeFromPoint","poiner","rangeParent","createRange","setStart","rangeOffset","removeAllRanges","addRange","clipboardData","textHtml","sync","deleteContents","nd","insertNode","toSel","removeAttributes","adjustToolbar","eventsUp","hideToolbar","initRte","globalRte","updatePosition","rteInst","escapeName","selectedName","iconAdd","iconSync","iconTagOn","iconTagOff","iconTagRemove","componentFirst","State","ClassTagView","removeSelected","$chk","ClassTagsView","labelInfo","labelHead","stateInputId","stateInputC","checkSync","toList","toListCls","__handleStateChange","addNew","renderClasses","tagRemoved","renderStates","getTarget","cssC","getCommonSelectors","noDisabled","ruleComponents","getTargets","ruleComponent","updateStateVis","addToClasses","$addBtn","$input","addNewTag","endNewTag","getState","statesEl","targets","updateSelection","trgs","validSelectors","__getCommonSelectors","__common","hasStyle","$btnSyncEl","getStatesC","updateSelector","elSel","__getName","checkStates","getStyleable","idRes","addSelected","$states","$statesC","labelStates","getLabel","tmpOpts","renderRes","$classes","isClass","evState","cFirst","__update","selTags","selectorTags","isRule","cOpts","cname","getSelector","setState","setStates","__getCommon","getSelectedTargets","setComponentFirst","getComponentFirst","getValid","private","protected","namePreEsc","nameEsc","objLen","TYPE_CLASS","combine","tail","curr","combination","autosave","autoload","recovery","stepsBeforeSave","onStore","local","checkLocal","remote","urlStore","urlLoad","contentTypeJson","fetchOptions","LocalStorage","hasLocal","setItem","getItem","thr","RemoteStorage","request","__props","parsable","typeJson","typeHead","eventStart","eventAfter","eventEnd","eventError","STORAGE_LOCAL","STORAGE_REMOTE","_disable","storages","setCurrent","isAutosave","setAutosave","getStepsBeforeSave","setStepsBeforeSave","storage","getStorages","getCurrent","currentStorage","getCurrentStorage","getStorageOptions","getCurrentOptions","getRecoveryStorage","recoveryOpts","__exec","recoveryStorage","recoveryData","__askRecovery","getRecovery","rej","confirm","toStore","__clearKeys","onAfter","itemKey","itemKeyR","canAutoload","hideNotStylable","highlightChanged","highlightComputed","showComputed","clearProperties","avoidComputed","Property","__upTargets","callInit","parentProp","isClear","__getFullValue","__getParentProp","to","from","kProps","__getClearProps","toProps","applyStyle","__up","__trgEv","propertyUpdate","__upTargetsStyle","addStyleTargets","noTarget","hasValue","getDefaultValue","noParent","parentValue","getParentTarget","camelCase","__parseValue","_up","getParent","__canClearProp","parseValue","valueStr","lastIndexOf","functionName","numeric","num","withDefault","getFullValue","fnParameter","__parentTarget","toRequire","requires","requiresParent","stylableReq","sector","getProperties","values","callParentInit","skipInit","info","fixedValues","full","isNumberType","PropertyComposite","detached","separator","fromStyle","toStyle","Properties","__upProperties","byName","getSplitSeparator","__getJoin","getValues","isDetached","__clearIn","__upTargetsStyleProps","getStyleFromProps","__setProperties","__getSplitValue","nameProps","allNameProps","sep","__splitValue","props4Nums","__styleHasProps","upValue","valuesStr","Layer","getLayerLabel","getSelectedLayer","selectLayer","removeLayer","moveLayer","getStylePreview","Layers","VALUES_REG","PARTS_REG","PropertyStack","layerSeparator","layerJoin","prepend","layerLabel","selectedLayer","layersColl","__upSelected","__upLayers","__getLayers","getIndex","__select","getLayer","currIndex","getLayers","parts","joinLayers","__getJoinLayers","number","newVal","getStyleFromLayer","upValues","PropertyBase","getStyleFromLayers","layerSelect","__layers","__setLayers","newLayers","layersNew","__parseLayer","parseFn","getLayerSeparator","separatorLayers","__splitStyleName","inLayer","clearProp","icons","iconClose","__destroyFn","onValueChange","_getClbOpts","computedCls","labelEl","clearStyleEl","getClearEl","clearStyle","clearEl","emit","__setValueInput","createdEl","__change","__updateStyle","clearCached","clsType","templateLabel","templateInput","isFull","PropertiesView","appendAtIndex","PropertyCompositeView","PropertyView","propsView","LayerView","iconMove","propertyView","pModel","updateLabel","propsWrapEl","previewEl","getLabelEl","hasPreview","prvEl","getPreviewEl","wrapEl","getPropertiesWrapper","isSelected","LayersView","PropertyStackView","iconPlus","plus","addLayer","layersView","PropertyFileView","valueDef","prvBoxEl","backgroundImage","PropertyNumberView","inputInst","PropertyColorView","inp","__handleChange","PropertySelect","getOptionId","getOption","optId","propId","__onOptionChange","PropertySelectView","updateOptions","optionsRes","getOptionLabel","styleAttr","inputH","firstOpt","firstId","PropertyRadio","PropertyRadioView","itemCls","elId","titleAttr","checked","inputHld","inputIn","PropertyNumber","PropertySlider","PropertySliderView","getSliderEl","propertyAdd","propertyRemove","Sector","buildProps","extendBuilded","builded","buildProperties","extendProperties","checkExtend","propsModel","withValue","withParentValue","moProps","ex","pLen","mProps","ext","isolated","mProp","mPProps","buildP","builtIn","Sectors","sect","PropertyFactory","typeNumber","typeColor","typeRadio","typeSelect","typeFile","typeSlider","typeComposite","typeStack","unitsSize","unitsSizeNoPerc","unitsTime","unitsAngle","ss","optsFlex","optsFlexAlign","optsBgSize","optsBgAttach","optsBgRepeat","optsWrap","optsOverflow","optsDir","opstDisplay","optsTransitFn","optsCursor","optsFloat","optsPos","optsTextAlign","optsJustCont","optsAlignCont","optsAlignSelf","optsTransitProp","optsBorderStyle","optsBgPos","optsWeight","optsShadowType","optsFonts","font","fixedFontSizes","fixedLetSpace","requireFlex","__sub","spread","repeat","att","fromRes","SectorView","iconCaret","clsPfx","getPropertiesEl","setOpen","renderProperties","SectorsView","evSector","evSectorAdd","evSectorRemove","evSectorUpdate","evProp","evPropAdd","evPropRemove","evPropUp","evLayerSelect","evTarget","propDef","SectView","sectorAdd","sectorRemove","sectorUpdate","upAll","__upSel","__clearStateTarget","upProps","__upProps","trgCustom","__ctn","stateTarget","__getStateTarget","skip","addSector","getSector","_logNoSector","getSectors","removeSector","addProperty","sectorId","getProperty","removeProperty","lastTarget","lastTargetParents","getParentRules","getSelectedParents","targetState","getBuiltIn","getBuiltInAll","addBuiltIn","smConf","devicePreviewMode","hasClasses","useClasses","deviceW","avoidInlineStyle","cssGen","optsSel","cmpRules","otherRules","sortRules","createType","parentStyles","__upProp","__checkVisibility","sectorVisible","hasVal","isStack","isComposite","canUpdate","__getLayersFromStyle","__getPropsFromStyle","newValue","parentTarget","parentItem","__setParentTarget","newParentStyles","TraitView","eventCapture","clsField","removeView","rerender","elInput","getInputElem","onEvent","getClbOpts","setInputValue","postUpdate","getValueForTarget","tpl","createLabel","getModelValue","i18nAttr","getElInput","appendInput","inputs","createInput","noLabel","onUpdate","hasLabel","tmpl","renderLabel","renderField","TraitsView","updatedCollection","TraitSelectView","resultName","valResult","TraitCheckboxView","getCheckedValue","valueTrue","valueFalse","toInit","targetValue","TraitNumberView","inputNumber","$unit","TraitColorView","TraitButtonView","labelButton","typesDef","checkbox","__onUp","getTraitsViewer","baseView","beforeCache","maximumStackLength","trackSelection","hasSkip","getChanged","track","register","changeUndoType","hasUndo","undoExc","chn","previousAttributes","before","isRegistered","unregister","unregisterAll","startTracking","stopTracking","undoAll","redoAll","isAvailable","hasRedo","getInstance","objectRegistry","getStack","getStackGroup","inserted","getGroupedStack","createItem","goToGroup","getPointer","goTo","times","pointer","snapOffset","getDocumentEl","getContainerEl","getWindowEl","keyHandle","handleScroll","lastScroll","actualScroll","getScrollInfo","scrollDiff","lastScrollDiff","startPointer","getPointerPos","startPosition","getStartPosition","globScrollDiff","currentPos","glDiff","lockedAxis","detectAxisLock","moveDelta","deltaPre","currentPointer","snapGuides","newDelta","trgX","trgY","axs","trgPoint","statPoint","deltaPoint","trgGuide","isPointIn","trgValue","setGuideLock","lock","ofst","trgName","xPos","yPos","getPos","getPointerPosition","pEv","relX","relY","absX","absY","_Array$prototype","idRe","classRe","htmlRe","tagRe","getElementsByClassName","getElementsByTagName","Cash","__cash","eles","getElementById","parseHTML","cash","last","callback","ele","camelCaseRe","camelCaseWhitespaceRe","letter","removeProp","guid","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","isNumeric","isFinite","getCompareFunction","comparator","splitValuesRe","getSplitValues","computeStyle","isVariable","computeStyleInt","check","_value","isForce","cssVariableRe","isCSSVariable","prefixedProps","docEl","vendorsPrefixes","getPrefixedProp","propCC","propUC","prefixedProp","numericProps","animationIterationCount","columnCount","flexGrow","flexShrink","fontWeight","lineHeight","orphans","widows","zIndex","getSuffixedValue","setProperty","dataNamespace","dataAttributeRe","getDataCache","cache","dataset","getExtraSpace","xAxis","hasNamespaces","ns1","ns2","removeEventListeners","_ref","hasData","_this","setData","boxSizing","includeMargins","getEventsCache","parseEventName","eventName","removeEvent","namespaces","eventCache","_ref2","cb","eventFullName","_this2","_parseEventName","_one","_this3","_parseEventName2","finalCallback","namespace","thisArg","one","readyState","evt","_parseEventName3","createEvent","initEvent","selectOneRe","selectMultipleRe","selectedIndex","getValueSelectSingle","getValueSelectMultiple","queryEncodeSpaceRe","skippableRe","checkableRe","serialize","elements","encodeURIComponent","queryEncode","isMultiple","eleValue","cloneNode","detach","containers","fragmentRe","singleTagRe","td","th","initContainers","$1","insertContent","isStr","insertAdjacentHTML","insertElement","_this4","insertAfter","_this5","nextSibling","_this6","_this7","_this8","_this9","prependTo","_this10","$eles","replaceChild","replaceAll","docEle","clientTop","clientLeft","contents","nextElementSibling","not","parents","previousElementSibling","siblings","KEY_ATTR","getClientRects","oldEl","newEl","total","lastChild","oEvent","keyCodeVal","defineProperty","vNodes","vNodesArr","vnode","TypeError","remaining","setTimeoutFunc","_state","_handled","_deferreds","doResolve","handle","deferred","_immediateFn","onFulfilled","onRejected","finale","_unhandledRejectionFn","Handler","done","prom","promiseFinally","allSettled","race","setImmediate","req","XMLHttpRequest","withCredentials","setRequestHeader","statusText","responseText","onProgress","onprogress","send","literals","substs","raw","lit","subst","elT","elL","borderOffset","freezeClass","relative","ignoreModels","offTop","offLeft","$document","dropContent","selectOnEnd","activeTextModel","getScale","getDocuments","dropModel","updateTextViewCursorPosition","targetDoc","setContentEditable","toggleSortCursor","clonedEl","computed","moveDragHelper","posY","posX","dragHelperStyle","useBody","createPlaceholder","ins","prevTarget","sourceEl","clearSelection","getTargetModel","isTextableActive","tempModel","selectTargetModel","targetModel","dsp","eO","rY","rX","mousePos","eventMove","sourceModel","dimsFromTarget","lastDims","findPosition","disableTextable","movePlaceholder","prevTargetDim","$plh","isInFlow","styleInFlow","$parent","overflow","propFloat","trgModel","dragInfo","dropInfo","targetP","validResult","getDim","cacheDimsP","getChildrenDim","cacheDims","nearBorders","targetParent","getTargetFromEl","targetPrev","nearElBorders","getCurrentPos","offsets","getCurrentView","elIndex","dir","indexEl","leftLimit","xLimit","yLimit","xCenter","yCenter","dimDown","trgDim","elDim","marg","pT","pL","obj1","obj2","ancester","s1","toMoveArr","domPositionOffset","dst","modelToDrop","srcEl","warns","targetCollection","srcIndex","sameCollection","errors","onUpdateContainer","minDim","maxDim","getBoundingRect","setup","hdl","createHandler","parentElement","updateContainer","forceShow","handleMouseDown","getParentEl","attrName","parentRect","handlerAttr","clickedHandler","rectDim","startPos","parentDim","handleKeyDown","toggleFrames","mouseFetch","altKey","calc","updateRect","getSelectedHandler","isHandler","deltaX","deltaY","parentW","parentH","startW","startH","box","normalizeFloat","ratioActive","ratio","helpers","getGlobal","global","elProt","Element","defCls","customUI","appendStyles","prepand","objOrig","objNew","keysNew","origValue","upFirst","nativeDnD","isCommentNode","__cashData","rectText","selectNode","getKeyCode","fromCharCode","__gjsv","chars","_","core_slice","hasKeys","getMagicFusionIndex","callstackWasIndexed","magicFusionIndex","indexCycle","defer","ObjectRegistry","registeredObjects","cidIndexes","onoff","objects","actionUndoRedo","undoTypes","managerUndoRedo","manager","magic","everything","isCurrentlyUndoRedoing","isUndo","validateUndoActionCreation","undoTypesType","addToStack","UndoTypes","unsetData","afterAttributes","keysAfter","pick","keysPrevious","OwnedUndoTypes","manipulateUndoType","manipType","undoType","undoTypesInstance","Action","UndoStack","Infinity","setMaxLength","isArguments","isTracking","_addToStack","merge","undoManager","addUndoType","removeUndoType","defaultAttributes","previousBackbone","VERSION","noConflict","emulateHTTP","emulateJSON","addMethod","attribute","iteratee","defaultVal","addUnderscoreMethods","Class","instance","_isModel","modelMatcher","matcher","Events","eventSplitter","eventsApi","internalOn","listening","_events","onApi","_listeners","_listenId","uniqueId","listeningTo","_listeningTo","thisId","objId","offApi","listeners","_callback","onceMap","listenToOnce","offer","triggerApi","objEvents","allEvents","triggerEvents","a3","cidPrefix","validationError","changes","changing","_changing","_previousAttributes","isEqual","_pending","old","success","resp","serverAttrs","wrapError","save","validate","isNew","patch","xhr","base","urlError","pairs","invert","omit","chain","_reset","addOptions","insert","singular","_removeModels","merged","toMerge","modelMap","sortAttr","existing","_prepareModel","_addReference","orderChanged","_removeReference","_byId","modelId","findWhere","sortBy","callbackOpts","_onModelEvent","collect","foldl","inject","reduceRight","foldr","detect","any","include","invoke","toArray","take","drop","without","difference","shuffle","sample","partition","groupBy","countBy","indexBy","findIndex","findLastIndex","viewOptions","delegateEventSplitter","_removeElement","undelegateEvents","_setElement","listener","undelegate","methodMap","dataType","contentType","_method","beforeSend","processData","textStatus","errorThrown","ajax","Router","routes","_bindRoutes","optionalParam","namedParam","splatParam","route","isRegExp","_routeToRegExp","router","history","_extractParameters","execute","navigate","optional","History","checkUrl","location","routeStripper","rootStripper","pathStripper","started","interval","atRoot","getSearch","matchRoot","decodeFragment","decodeURI","getHash","getPath","path","getFragment","_usePushState","_wantsHashChange","hashChange","_hasHashChange","_useHashChange","_wantsPushState","pushState","_hasPushState","rootPath","tabIndex","iWindow","_checkUrlInterval","setInterval","loadUrl","detachEvent","clearInterval","assign","_updateHash","protoProps","staticProps","__super__","extendMode","commentStart","commentEnd","newlineAfterToken","_type","textAfter","jsonMode","lexical","inlineElements","configuration","defineExtension","isComment","curMode","innerMode","getMode","getTokenAt","operation","replaceRange","line","ch","setCursor","selText","getRange","startIndex","endIndex","cmInstance","indentLine","outer","copyState","tabSize","out","lines","atSol","newline","stream","StringStream","eol","token","cur","string","blankLine","setSelection","platform","gecko","ie_upto10","ie_11up","edge","ie","ie_version","webkit","qtwebkit","chrome","presto","safari","vendor","mac_geMountainLion","phantom","ios","maxTouchPoints","android","mobile","mac","chromeOS","windows","presto_version","flipCtrlCmd","captureRightClick","classTest","rmClass","removeChildrenAndAdd","elt","eltP","host","activeElt","shadowRoot","joinClasses","as","endNode","setEnd","createTextRange","moveToElementText","collapse","moveEnd","moveStart","selectInput","copyObj","overwrite","countColumn","startValue","nextTab","selectionStart","selectionEnd","_e","Delayed","time","onTimeout","Date","ms","scrollerGap","Pass","sel_dontScroll","sel_mouse","sel_move","findColumn","goal","col","skipped","spaceStrs","spaceStr","lst","insertSorted","nothing","createObj","inst","nonASCIISingleCaseWordChar","isWordCharBasic","isWordChar","extendingChars","isExtendingChar","skipExtendingChars","findFirst","pred","midF","mid","ceil","iterateBidiSections","bidiOther","getBidiPartAt","sticky","bidiOrdering","lowTypes","arabicTypes","charType","bidiRE","isNeutral","isStrong","countsAsLeft","countsAsNum","BidiSpan","outerType","i$1","i$2","type$1","i$3","prev$1","type$2","i$4","type$3","i$5","cur$1","type$4","i$6","end$1","replace$1","j$1","i$7","isRTL","j$2","nstart","getOrder","noHandlers","emitter","getHandlers","signal","signalDOMEvent","override","defaultPrevented","e_defaultPrevented","codemirrorIgnore","signalCursorActivity","cursorActivity","curOp","cursorActivityHandlers","hasHandler","eventMixin","ctor","e_preventDefault","e_stopPropagation","e_stop","e_target","e_button","zwspSupported","badBidiRects","dragAndDrop","div","zeroWidthElement","measure","hasBadBidiRects","txt","r0","r1","splitLinesAuto","nl","rt","hasSelection","te","compareEndPoints","hasCopyEvent","oncopy","badZoomedRects","hasBadZoomedRects","normal","fromRange","mimeModes","defineMode","dependencies","defineMIME","mime","spec","resolveMode","mfactory","modeObj","modeExtensions","exts","helperType","modeProps","prop$1","nstate","startState","lineOracle","lastColumnPos","lastColumnValue","lineStart","getLine","chunk","sz","chunkSize","getBetween","iter","getLines","updateLineHeight","lineNo","no","lineAtHeight","lh","isLine","lineNumberFor","lineNumberFormatter","firstLineNumber","Pos","equalCursorPos","copyPos","maxPos","minPos","clipLine","clipPos","clipToLen","linelen","clipPosArray","sol","peek","eat","eatWhile","eatSpace","skipToEnd","skipTo","backUp","column","indentation","pattern","consume","caseInsensitive","cased","hideFirstChars","lookAhead","oracle","baseToken","SavedContext","Context","maxLookAhead","baseTokens","baseTokenPos","highlightLine","forceToEnd","modeGen","lineClasses","runMode","overlay","overlays","i_end","opaque","bgClass","textClass","getLineStyles","updateFrontier","getContextBefore","resetState","maxHighlightLength","stateAfter","styleClasses","highlightFrontier","modeFrontier","precise","findStartLine","saved","fromSaved","processLine","viewFrom","viewTo","nextLine","startAt","callBlankLine","readToken","copy","Token","takeToken","asArray","tokens","extractLineClasses","lineClass","flattenSpans","curStart","curStyle","addModeClass","mName","minindent","minline","lim","indented","retreatFrontier","sawReadOnlySpans","sawCollapsedSpans","seeReadOnlySpans","seeCollapsedSpans","MarkedSpan","marker","getMarkedSpanFor","spans","span","removeMarkedSpan","addMarkedSpan","op","inThisOp","WeakSet","markedSpans","attachLine","markedSpansBefore","startCh","isInsert","nw","inclusiveLeft","insertLeft","endsAfter","inclusiveRight","markedSpansAfter","endCh","startsBefore","stretchSpansOverChange","oldFirst","oldLast","sameLine","span$1","clearEmptySpans","newMarkers","gapMarkers","clearWhenEmpty","removeReadOnlyRanges","markers","mark","mk","newParts","dfrom","dto","detachMarkedSpans","detachLine","attachMarkedSpans","extraLeft","extraRight","compareCollapsedMarkers","lenDiff","aPos","bPos","fromCmp","toCmp","collapsedSpanAtSide","sps","sp","collapsed","collapsedSpanAtStart","collapsedSpanAtEnd","collapsedSpanAround","conflictingCollapsedRange","visualLine","visualLineEnd","visualLineContinued","visualLineNo","lineN","visualLineEndNo","lastLine","lineIsHidden","widgetNode","lineIsHiddenInner","heightAtLine","lineObj","lineLength","found$1","findMaxLine","maxLine","maxLineLength","maxLineChanged","Line","estimateHeight","updateLine","estHeight","cleanUpLine","styleToClassCache","styleToClassCacheWithMode","interpretTokenStyle","buildLineContent","lineView","builder","pre","trailingSpace","splitSpaces","addToken","buildToken","buildTokenBadBidi","insertLineContent","externalMeasured","maps","caches","defaultSpecialCharPlaceholder","startStyle","endStyle","displayText","special","specialChars","mustWrap","txt$1","tabWidth","specialCharPlaceholder","fullStyle","trailingBefore","spaceBefore","buildCollapsedSpan","ignoreWidget","widget","needsContentAttribute","setUneditable","allText","spanStyle","spanEndStyle","spanStartStyle","nextChange","foundBookmarks","endStyles","upto","tokenText","LineView","buildViewArray","nextPos","operationGroup","pushOperation","ops","ownsGroup","delayedCallbacks","fireCallbacksForOps","cursorActivityCalled","finishOperation","endCb","orphanDelayedCallbacks","signalLater","fireOrphanDelayed","delayed","updateLineForChanges","updateLineText","updateLineGutter","updateLineClasses","updateLineWidgets","ensureLineWrapped","updateLineBackground","background","getLineContent","built","wrapClass","gutter","gutterBackground","gutterClass","fixedGutter","fixedPos","gutterTotalWidth","gutterMarkers","wrap$1","gutterWrap","lineNumber","gutterLeft","gutterSpecs","gutterWidth","alignable","isWidget","insertLineWidgets","buildLineElement","insertLineWidgetsFor","allowAbove","widgets","ws","handleMouseEvents","positionLineWidget","above","noHScroll","wrapperWidth","coverGutter","widgetHeight","parentStyle","gutters","eventInWidget","sizer","mover","lineSpace","paddingVert","paddingH","cachedPaddingH","currentStyle","scrollGap","nativeBarWidth","displayWidth","scroller","barWidth","displayHeight","barHeight","ensureLineHeights","wrapping","curWidth","heights","rects","mapFromLineView","updateExternalMeasurement","lineMeasure","measureChar","bias","measureCharPrepared","prepareMeasureForLine","findViewForLine","findViewIndex","getDimensions","forceUpdate","hasHeights","prepared","varHeight","measureCharInner","bogus","rtop","rbottom","measureText","nullRect","nodeAndOffsetInLineMap","mStart","mEnd","coverStart","coverEnd","getUsefulRect","place","maybeUpdateRectForZooming","rSpan","charWidth","rbot","bot","singleCursorHeightPerLine","screen","logicalXDPI","deviceXDPI","scaleX","scaleY","logicalYDPI","deviceYDPI","clearLineMeasurementCacheFor","clearLineMeasurementCache","externalMeasure","clearCaches","cachedCharWidth","cachedTextHeight","lineNumChars","pageScrollX","pageScrollY","widgetTopHeight","intoCoordSystem","includeWidgets","yOff","viewOffset","lOff","xOff","fromCoordSystem","coords","localBox","lineSpaceBox","charCoords","cursorCoords","preparedMeasure","getBidi","partPos","other","estimateCoords","PosWithInfo","outside","xRel","coordsChar","coordsCharInner","rangeEnd","wrappedLineExtent","begin","wrappedLineExtentChar","boxIsAfter","ltr","coordsBidiPartWrapped","coordsBidiPart","baseX","chAround","boxAround","atLeft","atStart","_lineNo","closestDist","endX","dist","textHeight","anchor","compensateForHScroll","perLine","widgetsHeight","estimateLineHeights","est","posFromMouse","liberal","forRect","e$1","colDiff","regChange","lendiff","updateLineNumbers","viewChanged","resetView","cut","viewCuttingPoint","cut$1","cutTop","cutBot","regLineChange","oldN","newN","adjustView","countDirtyView","dirty","showSelection","prepareSelection","primary","curFragment","cursors","selFragment","ranges","primIndex","showCursorWhenSelecting","drawSelectionCursor","drawSelectionRange","cursor","cursorHeight","getWrapperElement","charPos","otherCursor","cmpCoords","leftSide","rightSide","sizerWidth","docLTR","drawForLine","fromArg","toArg","lineLen","wrapX","extent","fromPos","toPos","openStart","openEnd","openRight","topLeft","topRight","botLeft","botRight","sFrom","sTo","fromLine","toLine","singleVLine","leftEnd","rightStart","restartBlink","blinker","cursorDiv","visibility","cursorBlinkRate","onBlur","ensureFocus","onFocus","delayBlurEvent","delayingBlurEvent","draggingText","selForContextMenu","receivedFocus","updateHeightsInViewport","prevBottom","lineDiv","viewTop","oldHeight","mustScroll","updateWidgetHeight","chWidth","visibleLines","viewport","ensure","ensureFrom","ensureTo","maybeScrollWindow","doScroll","innerHeight","scrollNode","scrollPosIntoView","limit","endCoords","scrollPos","calculateScrollPos","startTop","startLeft","updateScrollTop","setScrollLeft","snapMargin","screentop","docBottom","atTop","atBottom","newTop","gutterSpace","screenleft","screenw","tooWide","addToScrollTop","resolveScrollToPos","ensureCursorVisible","scrollToPos","cursorScrollMargin","scrollToCoords","scrollToRange","scrollToCoordsRange","sPos","updateDisplaySimple","setScrollTop","startWorker","forceScroll","scrollHeight","scrollbars","isScroller","scrollWidth","alignHorizontally","measureForScrollbars","gutterW","docH","barLeft","docHeight","NativeScrollbars","vert","horiz","checkedZeroWidth","minHeight","minWidth","needsH","needsV","sWidth","totalHeight","totalWidth","zeroWidthHack","disableHoriz","enableZeroWidthBar","disableVert","bar","delay","maybeDisable","NullScrollbars","updateScrollbars","startWidth","startHeight","updateScrollbarsInner","sizes","heightForcer","borderBottom","scrollbarFiller","coverGutterNextToScrollbar","gutterFiller","scrollbarModel","initScrollbars","scrollbarStyle","nextOpId","startOperation","updateInput","typing","changeObjs","selectionChanged","updateMaxLine","markArrays","endOperation","endOperations","endOperation_R1","endOperation_W1","endOperation_R2","endOperation_W2","endOperation_finish","maybeClipScrollbars","mustUpdate","DisplayUpdate","updatedDisplay","updateDisplayIfNeeded","barMeasure","adjustWidthTo","maxScrollLeft","preparedSelection","takeFocus","setDocumentHeight","postUpdateDisplay","wheelStartX","wheelStartY","maybeHiddenMarkers","unhidden","maybeUnhiddenMarkers","finish","runInOp","methodOp","docMethodOp","highlight","highlightWorker","workTime","changedLines","oldStyles","highlighted","oldCls","newCls","ischange","workDelay","editorIsHidden","wrapperHeight","oldDisplayWidth","scrollbarsClipped","borderRightWidth","selectionSnapshot","anchorOffset","focusOffset","restoreSelection","snapshot","renderedView","maybeUpdateLineNumberWidth","viewportMargin","different","lastWrapHeight","lastWrapWidth","toUpdate","selSnapshot","patchDisplay","selectionDiv","reportedViewFrom","reportedViewTo","updateNumbersFrom","currentWheelTarget","updateNumber","updateGutterSpace","alignWidgets","align","innerW","lineGutter","lineNumInnerWidth","lineNumWidth","getGutters","sawLineNumbers","renderGutters","specs","gElt","updateGutters","Display","wheelDX","wheelDY","activeTouch","wheelSamples","wheelPixelsPerUnit","wheelEventDelta","dx","wheelDeltaX","dy","wheelDeltaY","HORIZONTAL_AXIS","VERTICAL_AXIS","wheelEventPixels","onScrollWheel","canScrollX","canScrollY","pixels","movedX","movedY","Selection","here","there","deepCopy","Range","somethingSelected","normalizeSelection","mayTouch","selectionsMayTouch","prim","inv","simpleSelection","changeEnd","adjustForChange","computeSelAfterChange","offsetPos","computeReplacedSel","hint","oldPrev","newPrev","loadMode","modeOption","resetModeState","isWholeLineUpdate","wholeLineUpdateBefore","updateDoc","spansFor","linesFor","firstLine","lastText","lastSpans","nlines","added$1","added$2","linkedDocs","sharedHistOnly","sharedHist","linked","shared","attachDoc","setDirectionClass","directionChanged","undone","undoDepth","lastModTime","lastSelTime","lastOp","lastSelOp","lastOrigin","lastSelOrigin","generation","maxGeneration","historyChangeFromChange","histChange","attachLocalSpans","clearSelectionEvents","lastChangeEvent","hist","addChangeToHistory","selAfter","opId","historyEventDelay","pushSelectionToHistory","selectionEventCanBeMerged","addSelectionToHistory","clearRedo","dest","removeClearedSpans","explicitlyCleared","getOldSpans","mergeOldSpans","stretched","oldCur","stretchCur","copyHistoryArray","newGroup","instantiateSel","newChanges","extendRange","posBefore","extendSelection","extendSelections","heads","replaceOneSelection","setSimpleSelection","filterSelectionChange","setSelectionReplaceHistory","setSelectionNoUndo","NaN","setSelectionInner","skipAtomicInSelection","reCheckSelection","mayClear","newAnchor","skipAtomic","newHead","skipAtomicInner","oldPos","preventCursorLeft","selectLeft","preventCursorRight","selectRight","atomic","near","movePos","far","cantEdit","filterChange","canceled","makeChange","ignoreReadOnly","suppressEdits","makeChangeInner","makeChangeSingleDoc","rebased","rebaseHist","makeChangeFromHistory","allowSelectionOnly","suppress","antiChanges","returned","shiftDoc","distance","makeChangeSingleDocInEditor","recomputeMaxLength","checkWidthStart","changesHandler","changeHandler","splitLines","rebaseHistSelSingle","rebaseHistArray","sub","copied","changeLine","changeType","LeafChunk","BranchChunk","removeInner","insertInner","iterN","leaf","maybeSpill","me","sibling","myIndex","used","LineWidget","adjustScrollWhenAboveVisible","addLineWidget","aboveVisible","this$1","oldH","nextMarkerId","TextMarker","markText","markTextShared","replacedWith","addToHistory","curLine","clearOnEnter","clearHistory","withOp","visual","dHeight","SharedTextMarker","isParent","findSharedMarkers","findMarks","copySharedMarkers","mFrom","mTo","subMark","detachSharedMarkers","subMarker","nextDocId","Doc","lineSep","cleanGeneration","lineSeparator","getLineHandle","getLineNumber","getLineHandleVisualStart","lineCount","listSelections","extendSelectionsBy","setSelections","addSelection","getSelections","replaceSelection","dup","replaceSelections","newSel","undoSelection","redoSelection","setExtending","getExtending","historySize","markClean","changeGeneration","forceSplit","isClean","gen","getHistory","setHistory","histData","setGutterMarker","gutterID","clearGutter","lineInfo","addLineClass","removeLineClass","removeLineWidget","setBookmark","realOpts","findMarksAt","getAllMarks","posFromIndex","sepSize","indexFromPos","copyHistory","linkedDoc","unlinkDoc","splitIds","iterLinkedDocs","setDirection","eachLine","lastDrop","clearDragCursor","isReadOnly","File","read","markAsReadAndPasteIfAllFilesAreRead","readTextFromFile","allowDropFileTypes","readAsText","text$1","onDragStart","effectAllowed","img","_top","dragCursor","forEachCodeMirror","byClass","editors","globalsRegistered","ensureGlobalHandlers","registerGlobalHandlers","resizeTimer","onResize","setSize","keyNames","keyMap","normalizeKeyName","normalizeKeyMap","keyname","lookupKey","getKeyMap","fallthrough","isModifierKey","addModifierNames","noShift","keyName","altGraphKey","deleteNearSelection","compute","kill","toKill","replaced","moveCharLogically","moveLogically","endOfLine","visually","prep","targetTop","moveVisually","bidi","mv","getWrappedLineExtent","moveInStorageOrder","searchInVisualLine","getRes","nextCh","basic","pcDefault","emacsy","macDefault","singleSelection","killLine","deleteLine","delLineLeft","delWrappedLineLeft","delWrappedLineRight","rightPos","goDocEnd","goLineStart","goLineStartSmart","lineStartSmart","goLineEnd","lineEnd","goLineRight","goLineLeft","goLineLeftSmart","goLineUp","moveV","goLineDown","goPageUp","goPageDown","goCharLeft","moveH","goCharRight","goColumnLeft","goColumnRight","goWordLeft","goGroupRight","goGroupLeft","goWordRight","delCharBefore","deleteH","delCharAfter","delWordBefore","delWordAfter","delGroupBefore","delGroupAfter","indentAuto","indentSelection","indentMore","indentLess","insertTab","insertSoftTab","spaces","defaultTab","transposeChars","newlineAndIndent","openLine","toggleOverwrite","firstNonWS","inWS","doHandleBinding","bound","dropShift","ensurePolled","prevShift","lookupKeyForEditor","keyMaps","extraKeys","stopSeq","dispatchKey","seq","keySeq","dispatchKeyInner","handleKeyBinding","motion","handleCharBinding","lastStoppedKey","onKeyDown","getField","handled","showCrossHair","charCode","lastClick","lastDoubleClick","DOUBLECLICK_DELAY","PastClick","clickRepeat","now","onMouseDown","supportsTouch","clickInGutter","selectingText","handleMappedButton","leftButtonDown","onContextMenu","configureMouse","moveOnDrag","contained","leftButtonStartDrag","leftButtonSelect","mouseMove","preventScroll","e2","rangeForUnit","findWordAt","ourRange","ourIndex","startSel","extendTo","startCol","posCol","oldRange","ranges$1","bidiSimplify","editorSize","curCount","anchorLine","boundary","headIndex","usePart","gutterEvent","mX","mY","lineBox","contextMenuInGutter","themeChanged","Init","optionHandlers","defineOptions","deflt","notOnInit","defineOption","newBreaks","getInputField","spellcheck","autocorrect","autocapitalize","attach","wrappingChanged","integer","readOnlyChanged","screenReaderLabelChanged","dragDropChanged","resetPosition","funcs","dragFunctions","leave","inputStyles","inputStyle","pasteIncoming","cutIncoming","autofocus","registerEventHandlers","finishInit","initHooks","textRendering","word","touchFinished","prevTouch","finishTouch","isMouseLikeTouchEvent","touch","radiusX","radiusY","farAway","how","aggressive","indent","curSpace","curSpaceString","indentUnit","indentString","indentWithTabs","pos$1","defineInitHook","lastCopied","setLastCopied","newLastCopied","applyTextInput","deleted","recent","paste","textLines","multiPaste","pasteLinesPerSelection","lineWise","changeEvent","triggerElectric","handlePaste","pasted","disableInput","electricChars","smartIndent","getModeAt","electricInput","copyableRanges","lineRange","disableBrowserMagic","field","hiddenTextarea","addEditorMethods","setOption","addKeyMap","removeKeyMap","addOverlay","modeSpec","removeOverlay","newRanges","getLineTokens","getTokenTypeAt","getHelper","getHelpers","help","_global","getStateAfter","defaultTextHeight","defaultCharWidth","getViewport","addWidget","vspace","hspace","triggerOnKeyDown","triggerOnKeyPress","triggerOnKeyUp","triggerOnMouseDown","findPosH","hitSide","rtlMoveVisually","findPosV","goalColumn","goals","headPos","startChar","interpret","swapDoc","phrase","phraseText","phrases","getScrollerElement","getGutterElement","registerHelper","registerGlobalHelper","predicate","origDir","lineDir","findNextLine","moveOnce","boundToLine","astral","sawType","pageSize","moveAmount","ContentEditableInput","lastAnchorNode","lastAnchorOffset","lastFocusNode","lastFocusOffset","polling","composing","gracePeriod","readDOMTimeout","posToDOM","isInGutter","scan","badPos","bad","domTextBetween","closing","extraLinebreak","recognizeMarker","addText","walk","cmText","markerID","isBlock","domToPos","lineNode","locateNodeInLineView","topNode","curNode","previousSibling","dist$1","belongsToInput","onCopyCut","lineWiseCopyCut","clearData","kludge","hadFocus","showPrimarySelection","updateFromDOM","readFromDOMSoon","forceCompositionEnd","showMultipleSelections","curAnchor","curFocus","rng","startGracePeriod","rememberSelection","selectionInEditor","commonAncestorContainer","poll","pollSelection","pollInterval","pollContent","fromIndex","fromNode","toNode","toIndex","newText","oldText","cutFront","cutEnd","oldTop","maxCutFront","newBot","oldBot","maxCutEnd","chFrom","chTo","TextareaInput","prevInput","pollingFast","textarea","tabindex","realSubmit","leaveSubmitMethodAlone","wrappedSubmit","getTextArea","toTextArea","addLegacyProps","cmpPos","createField","prepareCopyCut","fastPoll","_display","moveInputWithCursor","wrapOff","lineOff","teTop","teLeft","drawn","contextMenuPending","slowPoll","missed","same","resetSelectionOnContextMenu","oldScrollY","oldCSS","oldWrapperCSS","wrapperBox","scrollY","rehide","detectingSelectAll","prepareSelectAllHack","mouseup","extval","dontDelegate","defineDocExtension","version","keySet","parserConfig","propertyKeywords","tokenHooks","documentTypes","mediaTypes","mediaFeatures","mediaValueKeywords","nonStandardPropertyKeywords","fontProperties","counterDescriptors","colorKeywords","valueKeywords","allowNested","lineComment","supportsAtComponent","highlightNonStandardPropertyKeywords","tp","tokenBase","tokenize","tokenString","tokenParenthesized","quote","escaped","pushContext","popContext","pass","popAndPass","wordAsValue","stateArg","_stream","atBlock","cx","blockCommentStart","blockCommentEnd","blockCommentContinue","fold","documentTypes_","mediaTypes_","mediaFeatures_","mediaValueKeywords_","propertyKeywords_","nonStandardPropertyKeywords_","colorKeywords_","valueKeywords_","allWords","tokenCComment","maybeEnd","defaultTags","maybeBackup","pat","attrRegexpCache","getAttrRegexp","regexp","getAttrValue","getTagRegexp","anchored","addTags","findMatchingMode","tagInfo","tagText","htmlMode","multilineTagIndentFactor","multilineTagIndentPastTag","allowMissingTagName","tags","configTags","configScript","scriptTypes","htmlState","inTag","endTagA","endTag","localState","localMode","statementIndent","jsonldMode","jsonld","trackScope","isTS","typescript","wordRE","wordCharacters","keywords","kw","A","B","C","D","operator","atom","isOperatorChar","isJsonldKeyword","readRegexp","inSet","tokenComment","expressionAllowed","tokenQuasi","lastType","propertyIsEnumerable","brackets","findFatArrow","fatArrowAt","arrow","depth","sawSomething","bracket","atomicTypes","JSLexical","inScope","varname","localVars","vars","parseJS","marked","expression","statement","lex","inList","newContext","registerVarScoped","Var","globalVars","isModifier","defaultVars","pushcontext","pushblockcontext","popcontext","pushlex","poplex","expect","wanted","exp","vardef","parenExpr","maybeexpression","maybeelse","functiondef","forspec","enumdef","typename","typeexpr","maybelabel","maybeCatchBinding","afterExport","afterImport","funarg","expressionInner","expressionNoComma","noComma","arrowBodyNoComma","arrowBody","commasep","maybeop","maybeoperatorNoComma","maybeoperatorComma","classExpression","arrayLiteral","contCommasep","objprop","quasi","maybeTarget","expr","continueQuasi","targetNoComma","maybeTypeArgs","getterSetter","afterprop","maybetype","what","proceed","maybetypeOrIn","mayberettype","isKW","afterType","typeprops","typearg","maybeReturnType","quasiType","typeprop","functiondecl","continueQuasiType","typeparam","maybeTypeDefault","maybeAssign","vardefCont","eltpattern","proppattern","forspec1","forspec2","classNameAfter","classBody","classfield","maybeFrom","exportField","importSpec","maybeMoreImports","maybeAs","enummember","isContinuedStatement","basecolumn","doubleIndentSwitch","closeBrackets","skipExpression","htmlConfig","autoSelfClosers","implicitlyClosed","contextGrabbers","doNotIndent","allowUnquoted","allowMissing","caseFold","xmlConfig","editorConf","config_","inText","inBlock","doctype","baseState","tagStart","inAttribute","stringStartCol","closure","isInAttribute","terminator","lower","startOfLine","noIndent","maybePopContext","nextTagName","parentTagName","tagNameState","closeTagNameState","attrState","matchClosing","closeState","closeStateErr","attrEqState","attrValueState","attrContinuedState","isInText","baseIndent","fullLine","alignCDATA","tagAfter","grabbers","skipAttribute","xmlCurrentTag","xmlCurrentContext","runtime","Op","hasOwn","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","enumerable","configurable","writable","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","GenStateSuspendedStart","arg","GenStateExecuting","GenStateCompleted","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","setPrototypeOf","__proto__","awrap","async","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","webpackContext","webpackContextResolve","__webpack_require__","_arrayLikeToArray","arr2","_assertThisInitialized","ReferenceError","asyncGeneratorStep","_next","_throw","_asyncToGenerator","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","_defineProperty","_getPrototypeOf","_setPrototypeOf","_inherits","subClass","superClass","_objectWithoutProperties","excluded","sourceKeys","getOwnPropertySymbols","sourceSymbolKeys","_possibleConstructorReturn","_slicedToArray","_i","_s","_arr","_n","_d","unsupportedIterableToArray","_taggedTemplateLiteral","strings","freeze","defineProperties","_toConsumableArray","arrayLikeToArray","_typeof","_unsupportedIterableToArray","minLen","ArrayProto","ObjProto","SymbolProto","supportsArrayBuffer","ArrayBuffer","supportsDataView","DataView","nativeIsArray","nativeKeys","nativeCreate","nativeIsView","isView","_isNaN","_isFinite","hasEnumBug","nonEnumerableProps","MAX_ARRAY_INDEX","pow","restArguments","tagTester","nodelist","Int8Array","hasStringTagBug","isIE11","Map","isDataView","getInt8","isArrayBuffer","buffer","isSymbol","constant","createSizePropertyCheck","getSizeProperty","sizeProperty","shallowProperty","typedArrayPattern","collectNonEnumProps","emulatedSet","nonEnumIdx","proto","isMatch","_keys","_wrapped","toBufferView","bufferSource","Uint8Array","byteOffset","valueOf","tagDataView","aStack","bStack","deepEq","areArrays","aCtor","bCtor","allKeys","ie11fingerprint","weakMapMethods","forEachName","commonInit","mapTail","mapMethods","setMethods","functions","createAssigner","keysFunc","baseCreate","Ctor","extendOwn","tap","interceptor","toPath","deepGet","defaultValue","identity","optimizeCb","argCount","accumulator","baseIteratee","mapObject","currentKey","propertyOf","accum","getTime","createEscaper","escaper","testRegexp","replaceRegexp","templateSettings","evaluate","interpolate","noMatch","escapes","escapeChar","bareIdentifier","oldSettings","argument","variable","idCounter","_chain","executeBound","sourceFunc","boundFunc","callingContext","boundArgs","callArgs","memoize","hasher","throttle","later","leading","throttled","_now","trailing","immediate","passed","debounced","_args","negate","compose","memo","findKey","createPredicateIndexFinder","sortedIndex","low","high","createIndexFinder","predicateFind","createReduce","reducer","guard","contextPath","lastComputed","rand","criteria","reStrSymbol","keyInObj","compact","otherArrays","uniq","isSorted","seen","arrays","intersection","argsLength","unzip","chainResult","mixin","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","fromElement","projectData","noticeOnUnload","forceClass","defaultCommand","mediaCondition","jsInHtml","multipleSelection","optsHtml","optsCss","avoidDefaults","dragMode","cssIcons","arrowUp","i18n","richTextEditor","codeManager","cssComposer","multiFrames","Selectable","Selected","hasComponent","getByComponent","timedInterval","updateItr","deps","Window","ar","Extender","logs","warning","EditorModel","editing","clipboard","previousModel","storables","modules","toLoad","toLog","attrsOrig","pageManager","loadModule","updateChanges","_checkReady","listenLog","eventFrom","eventTo","loadData","stm","getDirtyCount","onbeforeunload","moduleName","Mod","cfgParent","cfg","destroyed","__skip","handleUpdates","lastComponent","allComponents","multiple","mltSel","toggleSelected","selColl","selIndex","removeComponent","getJs","avoidProt","avoidProtected","protCss","storeData","clearDirtyCount","editingCmp","defaultRunning","grapesjs","destroyAll","logNs","colorPicker","varName","contEl","shallowCanvasEl","addComponents","getSelectedToStyle","selectToggle","setDevice","getDevice","setCustomRte","setCustomParserCss","setDragMode","onReady","plugins","agent","isIE","originalCreateHTMLDocument","DOMImplementation","createHTMLDocument","implementation","polyfills","plugin","defaultConfig","autorender","pluginsOpts","__GJS_VERSION__","headless","Editor","pluginId","plgOptions","wplg","loadOnStart"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"grapes.min.js","mappings":"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","sources":["webpack://grapesjs/webpack/universalModuleDefinition","webpack://grapesjs/./node_modules/@babel/runtime/regenerator/index.js","webpack://grapesjs/./src/abstract/moduleLegacy.js","webpack://grapesjs/./src/asset_manager/config/config.js","webpack://grapesjs/./src/asset_manager/model/Asset.js","webpack://grapesjs/./src/asset_manager/model/AssetImage.js","webpack://grapesjs/./src/asset_manager/view/AssetView.js","webpack://grapesjs/./src/asset_manager/view/AssetImageView.js","webpack://grapesjs/./src/asset_manager/model/Assets.js","webpack://grapesjs/./src/asset_manager/view/AssetsView.js","webpack://grapesjs/./src/asset_manager/view/FileUploader.js","webpack://grapesjs/./src/asset_manager/index.js","webpack://grapesjs/./src/block_manager/config/config.js","webpack://grapesjs/./src/block_manager/model/Block.js","webpack://grapesjs/./src/block_manager/model/Blocks.js","webpack://grapesjs/./src/block_manager/model/Category.js","webpack://grapesjs/./src/block_manager/model/Categories.js","webpack://grapesjs/./src/block_manager/view/BlockView.js","webpack://grapesjs/./src/block_manager/view/CategoryView.js","webpack://grapesjs/./src/block_manager/view/BlocksView.js","webpack://grapesjs/./src/block_manager/index.js","webpack://grapesjs/./src/canvas/config/config.js","webpack://grapesjs/./src/canvas/model/Canvas.js","webpack://grapesjs/./src/utils/Droppable.js","webpack://grapesjs/./src/canvas/view/FrameView.js","webpack://grapesjs/./src/canvas/view/FrameWrapView.js","webpack://grapesjs/./src/canvas/view/CanvasView.js","webpack://grapesjs/./src/canvas/view/FramesView.js","webpack://grapesjs/./src/canvas/index.js","webpack://grapesjs/./src/canvas/model/Frame.js","webpack://grapesjs/./src/canvas/model/Frames.js","webpack://grapesjs/./src/code_manager/config/config.js","webpack://grapesjs/./src/code_manager/model/HtmlGenerator.js","webpack://grapesjs/./src/code_manager/model/JsonGenerator.js","webpack://grapesjs/./src/code_manager/model/CodeMirrorEditor.js","webpack://grapesjs/./src/code_manager/model/JsGenerator.js","webpack://grapesjs/./src/code_manager/view/EditorView.js","webpack://grapesjs/./src/code_manager/index.js","webpack://grapesjs/./src/code_manager/model/CssGenerator.js","webpack://grapesjs/./src/commands/config/config.js","webpack://grapesjs/./src/commands/index.js","webpack://grapesjs/./src/commands/view/CanvasClear.js","webpack://grapesjs/./src/commands/view/CanvasMove.js","webpack://grapesjs/./src/commands/view/CommandAbstract.js","webpack://grapesjs/./src/commands/view/ComponentDelete.js","webpack://grapesjs/./src/commands/view/ComponentDrag.js","webpack://grapesjs/./src/commands/view/ComponentEnter.js","webpack://grapesjs/./src/commands/view/ComponentExit.js","webpack://grapesjs/./src/commands/view/ComponentNext.js","webpack://grapesjs/./src/commands/view/ComponentPrev.js","webpack://grapesjs/./src/commands/view/ComponentStyleClear.js","webpack://grapesjs/./src/commands/view/CopyComponent.js","webpack://grapesjs/./src/commands/view/DeleteComponent.js","webpack://grapesjs/./src/commands/view/ExportTemplate.js","webpack://grapesjs/./src/commands/view/Fullscreen.js","webpack://grapesjs/./src/commands/view/MoveComponent.js","webpack://grapesjs/./src/commands/view/OpenAssets.js","webpack://grapesjs/./src/commands/view/OpenBlocks.js","webpack://grapesjs/./src/commands/view/OpenLayers.js","webpack://grapesjs/./src/commands/view/OpenStyleManager.js","webpack://grapesjs/./src/commands/view/OpenTraitManager.js","webpack://grapesjs/./src/commands/view/PasteComponent.js","webpack://grapesjs/./src/commands/view/Preview.js","webpack://grapesjs/./src/commands/view/Resize.js","webpack://grapesjs/./src/dom_components/view/ToolbarButtonView.js","webpack://grapesjs/./src/dom_components/view/ToolbarView.js","webpack://grapesjs/./src/dom_components/model/ToolbarButton.js","webpack://grapesjs/./src/dom_components/model/Toolbar.js","webpack://grapesjs/./src/commands/view/SelectComponent.js","webpack://grapesjs/./src/commands/view/SelectPosition.js","webpack://grapesjs/./src/commands/view/ShowOffset.js","webpack://grapesjs/./src/commands/view/SwitchVisibility.js","webpack://grapesjs/./src/common/module.js","webpack://grapesjs/./src/css_composer/config/config.js","webpack://grapesjs/./src/css_composer/model/CssRule.js","webpack://grapesjs/./src/css_composer/model/CssRules.js","webpack://grapesjs/./src/css_composer/index.js","webpack://grapesjs/./src/css_composer/view/CssRuleView.js","webpack://grapesjs/./src/css_composer/view/CssGroupRuleView.js","webpack://grapesjs/./src/css_composer/view/CssRulesView.js","webpack://grapesjs/./src/device_manager/config/config.js","webpack://grapesjs/./src/device_manager/model/Device.js","webpack://grapesjs/./src/device_manager/model/Devices.js","webpack://grapesjs/./src/device_manager/view/DevicesView.js","webpack://grapesjs/./src/device_manager/index.js","webpack://grapesjs/./src/dom_components/config/config.js","webpack://grapesjs/./src/dom_components/view/ComponentWrapperView.js","webpack://grapesjs/./src/dom_components/model/ComponentTableCell.js","webpack://grapesjs/./src/dom_components/view/ComponentTableCellView.js","webpack://grapesjs/./src/dom_components/model/ComponentTableRow.js","webpack://grapesjs/./src/dom_components/view/ComponentTableRowView.js","webpack://grapesjs/./src/dom_components/model/ComponentTable.js","webpack://grapesjs/./src/dom_components/view/ComponentTableView.js","webpack://grapesjs/./src/dom_components/model/ComponentTableBody.js","webpack://grapesjs/./src/dom_components/model/ComponentTableHead.js","webpack://grapesjs/./src/dom_components/view/ComponentTableHeadView.js","webpack://grapesjs/./src/dom_components/view/ComponentTableBodyView.js","webpack://grapesjs/./src/dom_components/model/ComponentTableFoot.js","webpack://grapesjs/./src/dom_components/view/ComponentTableFootView.js","webpack://grapesjs/./src/dom_components/model/ComponentImage.js","webpack://grapesjs/./src/dom_components/model/ComponentMap.js","webpack://grapesjs/./src/dom_components/view/ComponentImageView.js","webpack://grapesjs/./src/dom_components/view/ComponentMapView.js","webpack://grapesjs/./src/dom_components/model/ComponentText.js","webpack://grapesjs/./src/dom_components/model/ComponentLink.js","webpack://grapesjs/./src/dom_components/view/ComponentTextView.js","webpack://grapesjs/./src/dom_components/view/ComponentLinkView.js","webpack://grapesjs/./src/dom_components/model/ComponentLabel.js","webpack://grapesjs/./src/dom_components/view/ComponentLabelView.js","webpack://grapesjs/./src/dom_components/model/ComponentVideo.js","webpack://grapesjs/./src/dom_components/view/ComponentVideoView.js","webpack://grapesjs/./src/dom_components/model/ComponentScript.js","webpack://grapesjs/./src/dom_components/view/ComponentScriptView.js","webpack://grapesjs/./src/dom_components/model/ComponentSvg.js","webpack://grapesjs/./src/dom_components/model/ComponentSvgIn.js","webpack://grapesjs/./src/dom_components/view/ComponentSvgView.js","webpack://grapesjs/./src/dom_components/model/ComponentTextNode.js","webpack://grapesjs/./src/dom_components/model/ComponentComment.js","webpack://grapesjs/./src/dom_components/view/ComponentTextNodeView.js","webpack://grapesjs/./src/dom_components/view/ComponentCommentView.js","webpack://grapesjs/./src/dom_components/model/ComponentWrapper.js","webpack://grapesjs/./src/dom_components/model/ComponentFrame.js","webpack://grapesjs/./src/dom_components/view/ComponentFrameView.js","webpack://grapesjs/./src/dom_components/index.js","webpack://grapesjs/./src/trait_manager/model/Trait.js","webpack://grapesjs/./src/trait_manager/model/Traits.js","webpack://grapesjs/./src/trait_manager/model/TraitFactory.js","webpack://grapesjs/./src/dom_components/model/Component.js","webpack://grapesjs/./src/dom_components/model/Components.js","webpack://grapesjs/./src/dom_components/view/ComponentView.js","webpack://grapesjs/./src/dom_components/view/ComponentsView.js","webpack://grapesjs/./src/domain_abstract/model/Styleable.js","webpack://grapesjs/./src/domain_abstract/model/TypeableCollection.js","webpack://grapesjs/./src/domain_abstract/ui/Input.js","webpack://grapesjs/./src/domain_abstract/ui/InputColor.js","webpack://grapesjs/./src/utils/ColorPicker.js","webpack://grapesjs/./src/domain_abstract/ui/InputNumber.js","webpack://grapesjs/./src/domain_abstract/view/DomainViews.js","webpack://grapesjs/./src/i18n/locale/en.js","webpack://grapesjs/./src/i18n/config.js","webpack://grapesjs/./src/i18n/index.js","webpack://grapesjs/./src/utils/keymaster.js","webpack://grapesjs/./src/keymaps/index.js","webpack://grapesjs/./src/modal_dialog/config/config.js","webpack://grapesjs/./src/modal_dialog/model/Modal.js","webpack://grapesjs/./src/modal_dialog/view/ModalView.js","webpack://grapesjs/./src/modal_dialog/index.js","webpack://grapesjs/./src/navigator/config/config.js","webpack://grapesjs/./src/navigator/view/ItemView.js","webpack://grapesjs/./src/navigator/index.js","webpack://grapesjs/./src/navigator/view/ItemsView.js","webpack://grapesjs/./src/pages/model/Page.js","webpack://grapesjs/./src/pages/model/Pages.js","webpack://grapesjs/./src/pages/index.js","webpack://grapesjs/./src/panels/config/config.js","webpack://grapesjs/./src/panels/model/Panel.js","webpack://grapesjs/./src/panels/model/Panels.js","webpack://grapesjs/./src/panels/view/ButtonView.js","webpack://grapesjs/./src/panels/view/ButtonsView.js","webpack://grapesjs/./src/panels/view/PanelView.js","webpack://grapesjs/./src/panels/view/PanelsView.js","webpack://grapesjs/./src/panels/index.js","webpack://grapesjs/./src/panels/model/Button.js","webpack://grapesjs/./src/panels/model/Buttons.js","webpack://grapesjs/./src/parser/config/config.js","webpack://grapesjs/./src/parser/model/BrowserParserCss.js","webpack://grapesjs/./src/parser/model/ParserCss.js","webpack://grapesjs/./src/parser/index.js","webpack://grapesjs/./src/parser/model/BrowserParserHtml.js","webpack://grapesjs/./src/parser/model/ParserHtml.js","webpack://grapesjs/./src/rich_text_editor/model/RichTextEditor.js","webpack://grapesjs/./src/rich_text_editor/config/config.js","webpack://grapesjs/./src/rich_text_editor/index.js","webpack://grapesjs/./src/selector_manager/config/config.js","webpack://grapesjs/./src/selector_manager/model/State.js","webpack://grapesjs/./src/selector_manager/view/ClassTagView.js","webpack://grapesjs/./src/selector_manager/view/ClassTagsView.js","webpack://grapesjs/./src/selector_manager/index.js","webpack://grapesjs/./src/selector_manager/model/Selector.js","webpack://grapesjs/./src/selector_manager/model/Selectors.js","webpack://grapesjs/./src/storage_manager/config/config.js","webpack://grapesjs/./src/storage_manager/model/LocalStorage.js","webpack://grapesjs/./src/storage_manager/model/RemoteStorage.js","webpack://grapesjs/./src/storage_manager/index.js","webpack://grapesjs/./src/style_manager/config/config.js","webpack://grapesjs/./src/style_manager/model/Property.js","webpack://grapesjs/./src/style_manager/model/PropertyComposite.js","webpack://grapesjs/./src/style_manager/model/Layer.js","webpack://grapesjs/./src/style_manager/model/Layers.js","webpack://grapesjs/./src/style_manager/model/PropertyStack.js","webpack://grapesjs/./src/style_manager/view/PropertyView.js","webpack://grapesjs/./src/style_manager/view/PropertiesView.js","webpack://grapesjs/./src/style_manager/view/PropertyCompositeView.js","webpack://grapesjs/./src/style_manager/view/LayerView.js","webpack://grapesjs/./src/style_manager/view/LayersView.js","webpack://grapesjs/./src/style_manager/view/PropertyStackView.js","webpack://grapesjs/./src/style_manager/view/PropertyFileView.js","webpack://grapesjs/./src/style_manager/view/PropertyNumberView.js","webpack://grapesjs/./src/style_manager/view/PropertyColorView.js","webpack://grapesjs/./src/style_manager/model/PropertySelect.js","webpack://grapesjs/./src/style_manager/view/PropertySelectView.js","webpack://grapesjs/./src/style_manager/model/PropertyRadio.js","webpack://grapesjs/./src/style_manager/view/PropertyRadioView.js","webpack://grapesjs/./src/style_manager/model/PropertyNumber.js","webpack://grapesjs/./src/style_manager/model/PropertySlider.js","webpack://grapesjs/./src/style_manager/view/PropertySliderView.js","webpack://grapesjs/./src/style_manager/model/Properties.js","webpack://grapesjs/./src/style_manager/model/Sector.js","webpack://grapesjs/./src/style_manager/model/Sectors.js","webpack://grapesjs/./src/style_manager/model/PropertyFactory.js","webpack://grapesjs/./src/style_manager/view/SectorView.js","webpack://grapesjs/./src/style_manager/view/SectorsView.js","webpack://grapesjs/./src/style_manager/index.js","webpack://grapesjs/./src/trait_manager/config/config.js","webpack://grapesjs/./src/trait_manager/view/TraitView.js","webpack://grapesjs/./src/trait_manager/view/TraitsView.js","webpack://grapesjs/./src/trait_manager/view/TraitSelectView.js","webpack://grapesjs/./src/trait_manager/view/TraitCheckboxView.js","webpack://grapesjs/./src/trait_manager/view/TraitNumberView.js","webpack://grapesjs/./src/trait_manager/view/TraitColorView.js","webpack://grapesjs/./src/trait_manager/view/TraitButtonView.js","webpack://grapesjs/./src/trait_manager/index.js","webpack://grapesjs/./src/undo_manager/index.js","webpack://grapesjs/./src/utils/Dragger.js","webpack://grapesjs/./src/utils/cash-dom.js","webpack://grapesjs/./src/utils/dom.js","webpack://grapesjs/./node_modules/promise-polyfill/src/finally.js","webpack://grapesjs/./node_modules/promise-polyfill/src/allSettled.js","webpack://grapesjs/./node_modules/promise-polyfill/src/index.js","webpack://grapesjs/./src/utils/fetch.js","webpack://grapesjs/./src/utils/html.js","webpack://grapesjs/./src/utils/Sorter.js","webpack://grapesjs/./src/utils/Resizer.js","webpack://grapesjs/./src/utils/index.js","webpack://grapesjs/./src/utils/mixins.js","webpack://grapesjs/./node_modules/backbone-undo/Backbone.Undo.js","webpack://grapesjs/./node_modules/backbone/backbone.js","webpack://grapesjs/./node_modules/codemirror-formatting/formatting.js","webpack://grapesjs/./node_modules/codemirror/lib/codemirror.js","webpack://grapesjs/./node_modules/codemirror/mode/css/css.js","webpack://grapesjs/./node_modules/codemirror/mode/htmlmixed/htmlmixed.js","webpack://grapesjs/./node_modules/codemirror/mode/javascript/javascript.js","webpack://grapesjs/./node_modules/codemirror/mode/xml/xml.js","webpack://grapesjs/./node_modules/regenerator-runtime/runtime.js","webpack://grapesjs/./src/commands/view/ sync ^\\.\\/.*$","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://grapesjs/./node_modules/underscore/modules/_setup.js","webpack://grapesjs/./node_modules/underscore/modules/restArguments.js","webpack://grapesjs/./node_modules/underscore/modules/isObject.js","webpack://grapesjs/./node_modules/underscore/modules/isNull.js","webpack://grapesjs/./node_modules/underscore/modules/isUndefined.js","webpack://grapesjs/./node_modules/underscore/modules/isBoolean.js","webpack://grapesjs/./node_modules/underscore/modules/isElement.js","webpack://grapesjs/./node_modules/underscore/modules/_tagTester.js","webpack://grapesjs/./node_modules/underscore/modules/isString.js","webpack://grapesjs/./node_modules/underscore/modules/isNumber.js","webpack://grapesjs/./node_modules/underscore/modules/isDate.js","webpack://grapesjs/./node_modules/underscore/modules/isRegExp.js","webpack://grapesjs/./node_modules/underscore/modules/isError.js","webpack://grapesjs/./node_modules/underscore/modules/isSymbol.js","webpack://grapesjs/./node_modules/underscore/modules/isArrayBuffer.js","webpack://grapesjs/./node_modules/underscore/modules/isFunction.js","webpack://grapesjs/./node_modules/underscore/modules/_hasObjectTag.js","webpack://grapesjs/./node_modules/underscore/modules/_stringTagBug.js","webpack://grapesjs/./node_modules/underscore/modules/isDataView.js","webpack://grapesjs/./node_modules/underscore/modules/isArray.js","webpack://grapesjs/./node_modules/underscore/modules/_has.js","webpack://grapesjs/./node_modules/underscore/modules/isArguments.js","webpack://grapesjs/./node_modules/underscore/modules/isFinite.js","webpack://grapesjs/./node_modules/underscore/modules/isNaN.js","webpack://grapesjs/./node_modules/underscore/modules/constant.js","webpack://grapesjs/./node_modules/underscore/modules/_createSizePropertyCheck.js","webpack://grapesjs/./node_modules/underscore/modules/_shallowProperty.js","webpack://grapesjs/./node_modules/underscore/modules/_getByteLength.js","webpack://grapesjs/./node_modules/underscore/modules/_isBufferLike.js","webpack://grapesjs/./node_modules/underscore/modules/isTypedArray.js","webpack://grapesjs/./node_modules/underscore/modules/_getLength.js","webpack://grapesjs/./node_modules/underscore/modules/_collectNonEnumProps.js","webpack://grapesjs/./node_modules/underscore/modules/keys.js","webpack://grapesjs/./node_modules/underscore/modules/isEmpty.js","webpack://grapesjs/./node_modules/underscore/modules/isMatch.js","webpack://grapesjs/./node_modules/underscore/modules/underscore.js","webpack://grapesjs/./node_modules/underscore/modules/_toBufferView.js","webpack://grapesjs/./node_modules/underscore/modules/isEqual.js","webpack://grapesjs/./node_modules/underscore/modules/allKeys.js","webpack://grapesjs/./node_modules/underscore/modules/_methodFingerprint.js","webpack://grapesjs/./node_modules/underscore/modules/isMap.js","webpack://grapesjs/./node_modules/underscore/modules/isWeakMap.js","webpack://grapesjs/./node_modules/underscore/modules/isSet.js","webpack://grapesjs/./node_modules/underscore/modules/isWeakSet.js","webpack://grapesjs/./node_modules/underscore/modules/values.js","webpack://grapesjs/./node_modules/underscore/modules/pairs.js","webpack://grapesjs/./node_modules/underscore/modules/invert.js","webpack://grapesjs/./node_modules/underscore/modules/functions.js","webpack://grapesjs/./node_modules/underscore/modules/_createAssigner.js","webpack://grapesjs/./node_modules/underscore/modules/extend.js","webpack://grapesjs/./node_modules/underscore/modules/extendOwn.js","webpack://grapesjs/./node_modules/underscore/modules/defaults.js","webpack://grapesjs/./node_modules/underscore/modules/_baseCreate.js","webpack://grapesjs/./node_modules/underscore/modules/create.js","webpack://grapesjs/./node_modules/underscore/modules/clone.js","webpack://grapesjs/./node_modules/underscore/modules/tap.js","webpack://grapesjs/./node_modules/underscore/modules/toPath.js","webpack://grapesjs/./node_modules/underscore/modules/_toPath.js","webpack://grapesjs/./node_modules/underscore/modules/_deepGet.js","webpack://grapesjs/./node_modules/underscore/modules/get.js","webpack://grapesjs/./node_modules/underscore/modules/has.js","webpack://grapesjs/./node_modules/underscore/modules/identity.js","webpack://grapesjs/./node_modules/underscore/modules/matcher.js","webpack://grapesjs/./node_modules/underscore/modules/property.js","webpack://grapesjs/./node_modules/underscore/modules/_optimizeCb.js","webpack://grapesjs/./node_modules/underscore/modules/_baseIteratee.js","webpack://grapesjs/./node_modules/underscore/modules/iteratee.js","webpack://grapesjs/./node_modules/underscore/modules/_cb.js","webpack://grapesjs/./node_modules/underscore/modules/mapObject.js","webpack://grapesjs/./node_modules/underscore/modules/noop.js","webpack://grapesjs/./node_modules/underscore/modules/propertyOf.js","webpack://grapesjs/./node_modules/underscore/modules/times.js","webpack://grapesjs/./node_modules/underscore/modules/random.js","webpack://grapesjs/./node_modules/underscore/modules/now.js","webpack://grapesjs/./node_modules/underscore/modules/_createEscaper.js","webpack://grapesjs/./node_modules/underscore/modules/_escapeMap.js","webpack://grapesjs/./node_modules/underscore/modules/escape.js","webpack://grapesjs/./node_modules/underscore/modules/unescape.js","webpack://grapesjs/./node_modules/underscore/modules/_unescapeMap.js","webpack://grapesjs/./node_modules/underscore/modules/templateSettings.js","webpack://grapesjs/./node_modules/underscore/modules/template.js","webpack://grapesjs/./node_modules/underscore/modules/result.js","webpack://grapesjs/./node_modules/underscore/modules/uniqueId.js","webpack://grapesjs/./node_modules/underscore/modules/chain.js","webpack://grapesjs/./node_modules/underscore/modules/_executeBound.js","webpack://grapesjs/./node_modules/underscore/modules/partial.js","webpack://grapesjs/./node_modules/underscore/modules/bind.js","webpack://grapesjs/./node_modules/underscore/modules/_isArrayLike.js","webpack://grapesjs/./node_modules/underscore/modules/_flatten.js","webpack://grapesjs/./node_modules/underscore/modules/bindAll.js","webpack://grapesjs/./node_modules/underscore/modules/memoize.js","webpack://grapesjs/./node_modules/underscore/modules/delay.js","webpack://grapesjs/./node_modules/underscore/modules/defer.js","webpack://grapesjs/./node_modules/underscore/modules/throttle.js","webpack://grapesjs/./node_modules/underscore/modules/debounce.js","webpack://grapesjs/./node_modules/underscore/modules/wrap.js","webpack://grapesjs/./node_modules/underscore/modules/negate.js","webpack://grapesjs/./node_modules/underscore/modules/compose.js","webpack://grapesjs/./node_modules/underscore/modules/after.js","webpack://grapesjs/./node_modules/underscore/modules/before.js","webpack://grapesjs/./node_modules/underscore/modules/once.js","webpack://grapesjs/./node_modules/underscore/modules/findKey.js","webpack://grapesjs/./node_modules/underscore/modules/_createPredicateIndexFinder.js","webpack://grapesjs/./node_modules/underscore/modules/findIndex.js","webpack://grapesjs/./node_modules/underscore/modules/findLastIndex.js","webpack://grapesjs/./node_modules/underscore/modules/sortedIndex.js","webpack://grapesjs/./node_modules/underscore/modules/_createIndexFinder.js","webpack://grapesjs/./node_modules/underscore/modules/indexOf.js","webpack://grapesjs/./node_modules/underscore/modules/lastIndexOf.js","webpack://grapesjs/./node_modules/underscore/modules/find.js","webpack://grapesjs/./node_modules/underscore/modules/findWhere.js","webpack://grapesjs/./node_modules/underscore/modules/each.js","webpack://grapesjs/./node_modules/underscore/modules/map.js","webpack://grapesjs/./node_modules/underscore/modules/_createReduce.js","webpack://grapesjs/./node_modules/underscore/modules/reduce.js","webpack://grapesjs/./node_modules/underscore/modules/reduceRight.js","webpack://grapesjs/./node_modules/underscore/modules/filter.js","webpack://grapesjs/./node_modules/underscore/modules/reject.js","webpack://grapesjs/./node_modules/underscore/modules/every.js","webpack://grapesjs/./node_modules/underscore/modules/some.js","webpack://grapesjs/./node_modules/underscore/modules/contains.js","webpack://grapesjs/./node_modules/underscore/modules/invoke.js","webpack://grapesjs/./node_modules/underscore/modules/pluck.js","webpack://grapesjs/./node_modules/underscore/modules/where.js","webpack://grapesjs/./node_modules/underscore/modules/max.js","webpack://grapesjs/./node_modules/underscore/modules/min.js","webpack://grapesjs/./node_modules/underscore/modules/sample.js","webpack://grapesjs/./node_modules/underscore/modules/shuffle.js","webpack://grapesjs/./node_modules/underscore/modules/sortBy.js","webpack://grapesjs/./node_modules/underscore/modules/_group.js","webpack://grapesjs/./node_modules/underscore/modules/groupBy.js","webpack://grapesjs/./node_modules/underscore/modules/indexBy.js","webpack://grapesjs/./node_modules/underscore/modules/countBy.js","webpack://grapesjs/./node_modules/underscore/modules/partition.js","webpack://grapesjs/./node_modules/underscore/modules/toArray.js","webpack://grapesjs/./node_modules/underscore/modules/size.js","webpack://grapesjs/./node_modules/underscore/modules/_keyInObj.js","webpack://grapesjs/./node_modules/underscore/modules/pick.js","webpack://grapesjs/./node_modules/underscore/modules/omit.js","webpack://grapesjs/./node_modules/underscore/modules/initial.js","webpack://grapesjs/./node_modules/underscore/modules/first.js","webpack://grapesjs/./node_modules/underscore/modules/rest.js","webpack://grapesjs/./node_modules/underscore/modules/last.js","webpack://grapesjs/./node_modules/underscore/modules/compact.js","webpack://grapesjs/./node_modules/underscore/modules/flatten.js","webpack://grapesjs/./node_modules/underscore/modules/difference.js","webpack://grapesjs/./node_modules/underscore/modules/without.js","webpack://grapesjs/./node_modules/underscore/modules/uniq.js","webpack://grapesjs/./node_modules/underscore/modules/union.js","webpack://grapesjs/./node_modules/underscore/modules/intersection.js","webpack://grapesjs/./node_modules/underscore/modules/unzip.js","webpack://grapesjs/./node_modules/underscore/modules/zip.js","webpack://grapesjs/./node_modules/underscore/modules/object.js","webpack://grapesjs/./node_modules/underscore/modules/range.js","webpack://grapesjs/./node_modules/underscore/modules/chunk.js","webpack://grapesjs/./node_modules/underscore/modules/_chainResult.js","webpack://grapesjs/./node_modules/underscore/modules/mixin.js","webpack://grapesjs/./node_modules/underscore/modules/underscore-array-methods.js","webpack://grapesjs/./node_modules/underscore/modules/index-default.js","webpack://grapesjs/webpack/bootstrap","webpack://grapesjs/webpack/runtime/compat get default export","webpack://grapesjs/webpack/runtime/define property getters","webpack://grapesjs/webpack/runtime/global","webpack://grapesjs/webpack/runtime/hasOwnProperty shorthand","webpack://grapesjs/webpack/runtime/make namespace object","webpack://grapesjs/./src/editor/config/config.js","webpack://grapesjs/./src/editor/model/Selected.js","webpack://grapesjs/./src/editor/model/Editor.js","webpack://grapesjs/./src/utils/extender.js","webpack://grapesjs/./src/editor/view/EditorView.js","webpack://grapesjs/./src/editor/index.js","webpack://grapesjs/./src/plugin_manager/config/config.js","webpack://grapesjs/./src/utils/polyfills.js","webpack://grapesjs/./src/index.js","webpack://grapesjs/./src/plugin_manager/index.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\"] = factory();\n\telse\n\t\troot[\"grapesjs\"] = factory();\n})(typeof globalThis !== 'undefined' ? globalThis : (typeof window !== 'undefined' ? window : this), () => {\nreturn ","module.exports = require(\"regenerator-runtime\");\n","import { isString, isElement } from 'underscore';\nimport { createId, deepMerge, isDef } from 'utils/mixins';\n\nexport default {\n getConfig(name) {\n return this.__getConfig(name);\n },\n\n getProjectData(data) {\n const obj = {};\n const key = this.storageKey;\n if (key) {\n obj[key] = data || this.getAll();\n }\n return obj;\n },\n\n loadProjectData(data = {}, { all, onResult, reset } = {}) {\n const key = this.storageKey;\n const opts = { action: 'load' };\n const coll = all || this.getAll();\n let result = data[key];\n\n if (typeof result == 'string') {\n try {\n result = JSON.parse(result);\n } catch (err) {\n this.__logWarn('Data parsing failed', { input: result });\n }\n }\n\n reset && result && coll.reset(null, opts);\n\n if (onResult) {\n result && onResult(result, opts);\n } else if (result && isDef(result.length)) {\n coll.reset(result, opts);\n }\n\n return result;\n },\n\n clear(opts = {}) {\n const { all } = this;\n all && all.reset(null, opts);\n return this;\n },\n\n __getConfig(name) {\n const res = this.config || {};\n return name ? res[name] : res;\n },\n\n getAll(opts = {}) {\n return this.all ? (opts.array ? [...this.all.models] : this.all) : [];\n },\n\n getAllMap() {\n return this.getAll().reduce((acc, i) => {\n acc[i.get(i.idAttribute)] = i;\n return acc;\n }, {});\n },\n\n __initConfig(def = {}, conf = {}) {\n this.config = deepMerge(def, conf);\n this.em = this.config.em;\n this.cls = [];\n },\n\n __initListen(opts = {}) {\n const { all, em, events } = this;\n all &&\n em &&\n all\n .on('add', (m, c, o) => em.trigger(events.add, m, o))\n .on('remove', (m, c, o) => em.trigger(events.remove, m, o))\n .on('change', (p, c) => em.trigger(events.update, p, p.changedAttributes(), c))\n .on('all', this.__catchAllEvent, this);\n // Register collections\n this.cls = [all].concat(opts.collections || []);\n // Propagate events\n (opts.propagate || []).forEach(({ entity, event }) => {\n entity.on('all', (ev, model, coll, opts) => {\n const options = opts || coll;\n const opt = { event: ev, ...options };\n [em, all].map(md => md.trigger(event, model, opt));\n });\n });\n },\n\n __remove(model, opts = {}) {\n const { em } = this;\n const md = isString(model) ? this.get(model) : model;\n const rm = () => {\n md && this.all.remove(md, opts);\n return md;\n };\n !opts.silent && em && em.trigger(this.events.removeBefore, md, rm, opts);\n return !opts.abort && rm();\n },\n\n __catchAllEvent(event, model, coll, opts) {\n const { em, events } = this;\n const options = opts || coll;\n em && events.all && em.trigger(events.all, { event, model, options });\n this.__onAllEvent();\n },\n\n __appendTo() {\n const elTo = this.getConfig().appendTo;\n\n if (elTo) {\n const el = isElement(elTo) ? elTo : document.querySelector(elTo);\n if (!el) return this.__logWarn('\"appendTo\" element not found');\n el.appendChild(this.render());\n }\n },\n\n __onAllEvent() {},\n\n __logWarn(str, opts) {\n this.em.logWarning(`[${this.name}]: ${str}`, opts);\n },\n\n _createId(len = 16) {\n const all = this.getAll();\n const ln = all.length + len;\n const allMap = this.getAllMap();\n let id;\n\n do {\n id = createId(ln);\n } while (allMap[id]);\n\n return id;\n },\n\n __listenAdd(model, event) {\n model.on('add', (m, c, o) => this.em.trigger(event, m, o));\n },\n\n __listenRemove(model, event) {\n model.on('remove', (m, c, o) => this.em.trigger(event, m, o));\n },\n\n __listenUpdate(model, event) {\n model.on('change', (p, c) => this.em.trigger(event, p, p.changedAttributes(), c));\n },\n\n __destroy() {\n this.cls.forEach(coll => {\n coll.stopListening();\n coll.reset();\n });\n this.em = 0;\n this.config = 0;\n this.view?.remove();\n this.view = 0;\n },\n};\n","export default {\n // Default assets\n // eg. [\n // 'https://...image1.png',\n // 'https://...image2.png',\n // {type: 'image', src: 'https://...image3.png', someOtherCustomProp: 1},\n // ..\n // ]\n assets: [],\n\n // Content to add where there is no assets to show\n // eg. 'No assets here, drag to upload'\n noAssets: '',\n\n // Style prefix\n stylePrefix: 'am-',\n\n // Upload endpoint, set `false` to disable upload\n // upload: 'https://endpoint/upload/assets',\n // upload: false,\n upload: 0,\n\n // The name used in POST to pass uploaded files\n uploadName: 'files',\n\n // Custom headers to pass with the upload request\n headers: {},\n\n // Custom parameters to pass with the upload request, eg. csrf token\n params: {},\n\n // The credentials setting for the upload request, eg. 'include', 'omit'\n credentials: 'include',\n\n // Allow uploading multiple files per request.\n // If disabled filename will not have '[]' appended\n multiUpload: true,\n\n // If true, tries to add automatically uploaded assets.\n // To make it work the server should respond with a JSON containing assets\n // in a data key, eg:\n // {\n // data: [\n // 'https://.../image.png',\n // ...\n // {src: 'https://.../image2.png'},\n // ...\n // ]\n // }\n autoAdd: true,\n\n // To upload your assets, the module uses Fetch API, with this option you\n // overwrite it with something else.\n // It should return a Promise\n // @example\n // customFetch: (url, options) => axios(url, { data: options.body }),\n customFetch: null,\n\n // Custom uploadFile function.\n // Differently from the `customFetch` option, this gives a total control\n // over the uploading process, but you also have to emit all `asset:upload:*` events\n // by yourself (if you need to use them somewhere)\n // @example\n // uploadFile: (e) => {\n // var files = e.dataTransfer ? e.dataTransfer.files : e.target.files;\n // // ...send somewhere\n // }\n uploadFile: null,\n\n // In the absence of 'uploadFile' or 'upload' assets will be embedded as Base64\n embedAsBase64: true,\n\n // Handle the image url submit from the built-in 'Add image' form\n // @example\n // handleAdd: (textFromInput) => {\n // // some check...\n // editor.AssetManager.add(textFromInput);\n // }\n handleAdd: null,\n\n // Method called before upload, on return false upload is canceled.\n // @example\n // beforeUpload: (files) => {\n // // logic...\n // var stopUpload = true;\n // if(stopUpload) return false;\n // }\n beforeUpload: null,\n\n // Toggles visiblity of assets url input\n showUrlInput: true,\n\n // Avoid rendering the default asset manager.\n custom: false,\n\n // WARNING: all the options below are considered DEPRECATED.\n // ---------------------------------------------------------------\n\n // Enable an upload dropzone on the entire editor (not document) when dragging\n // files over it\n // If active the dropzone disable/hide the upload dropzone in asset modal,\n // otherwise you will get double drops (#507)\n dropzone: false,\n\n // Open the asset manager once files are been dropped via the dropzone\n openAssetsOnDrop: 1,\n\n // Any dropzone content to append inside dropzone element\n dropzoneContent: ''\n};\n","import { result } from 'underscore';\nimport { Model } from '../../common';\n\n/**\n * @property {String} type Asset type, eg. 'image'.\n * @property {String} src Asset URL, eg. 'https://.../image.png'.\n */\nexport default class Asset extends Model {\n defaults() {\n return {\n type: '',\n src: '',\n };\n }\n\n /**\n * Get asset type.\n * @returns {String}\n * @example\n * // Asset: { src: 'https://.../image.png', type: 'image' }\n * asset.getType(); // -> 'image'\n * */\n getType() {\n return this.get('type');\n }\n\n /**\n * Get asset URL.\n * @returns {String}\n * @example\n * // Asset: { src: 'https://.../image.png' }\n * asset.getSrc(); // -> 'https://.../image.png'\n * */\n getSrc() {\n return this.get('src');\n }\n\n /**\n * Get filename of the asset (based on `src`).\n * @returns {String}\n * @example\n * // Asset: { src: 'https://.../image.png' }\n * asset.getFilename(); // -> 'image.png'\n * // Asset: { src: 'https://.../image' }\n * asset.getFilename(); // -> 'image'\n * */\n getFilename() {\n return this.get('src').split('/').pop().split('?').shift();\n }\n\n /**\n * Get extension of the asset (based on `src`).\n * @returns {String}\n * @example\n * // Asset: { src: 'https://.../image.png' }\n * asset.getExtension(); // -> 'png'\n * // Asset: { src: 'https://.../image' }\n * asset.getExtension(); // -> ''\n * */\n getExtension() {\n return this.getFilename().split('.').pop();\n }\n}\n\nAsset.prototype.idAttribute = 'src';\n\nAsset.getDefaults = function () {\n return result(this.prototype, 'defaults');\n};\n","import Asset from './Asset';\n\nexport default class AssetImage extends Asset {\n defaults() {\n return {\n ...Asset.getDefaults(),\n type: 'image',\n unitDim: 'px',\n height: 0,\n width: 0\n };\n }\n}\n","import { View } from '../../common';\nimport { clone } from 'underscore';\n\nexport default class AssetView extends View {\n initialize(o = {}) {\n this.options = o;\n this.collection = o.collection;\n const config = o.config || {};\n this.config = config;\n this.pfx = config.stylePrefix || '';\n this.ppfx = config.pStylePrefix || '';\n this.em = config.em;\n this.className = this.pfx + 'asset';\n this.listenTo(this.model, 'destroy remove', this.remove);\n this.model.view = this;\n const init = this.init && this.init.bind(this);\n init && init(o);\n }\n\n __getBhv() {\n const { em } = this;\n const am = em && em.get('AssetManager');\n return (am && am.__getBehaviour()) || {};\n }\n\n template() {\n const pfx = this.pfx;\n return `\n
\n ${this.getPreview()}\n
\n
\n ${this.getInfo()}\n
\n
\n ⨯\n
\n `;\n }\n\n /**\n * Update target if exists\n * @param {Model} target\n * @private\n * */\n updateTarget(target) {\n if (target && target.set) {\n target.set('attributes', clone(target.get('attributes')));\n target.set('src', this.model.get('src'));\n }\n }\n\n getPreview() {\n return '';\n }\n\n getInfo() {\n return '';\n }\n\n render() {\n const el = this.el;\n el.innerHTML = this.template(this, this.model);\n el.className = this.className;\n return this;\n }\n}\n","import { isFunction } from 'underscore';\nimport AssetView from './AssetView';\nimport html from '../../utils/html';\n\nexport default class AssetImageView extends AssetView {\n getPreview() {\n const { pfx, ppfx, model } = this;\n const src = model.get('src');\n return html`\n
\n
\n `;\n }\n\n getInfo() {\n const { pfx, model } = this;\n let name = model.get('name');\n let width = model.get('width');\n let height = model.get('height');\n let unit = model.get('unitDim');\n let dim = width && height ? `${width}x${height}${unit}` : '';\n name = name || model.getFilename();\n return html`\n
${name}
\n
${dim}
\n `;\n }\n\n init(o) {\n const pfx = this.pfx;\n this.className += ` ${pfx}asset-image`;\n }\n\n /**\n * Triggered when the asset is clicked\n * @private\n * */\n onClick() {\n const { model, pfx } = this;\n const { select } = this.__getBhv();\n const { onClick } = this.config;\n const coll = this.collection;\n coll.trigger('deselectAll');\n this.$el.addClass(pfx + 'highlight');\n\n if (isFunction(select)) {\n select(model, false);\n } else if (isFunction(onClick)) {\n onClick(model);\n } else {\n this.updateTarget(coll.target);\n }\n }\n\n /**\n * Triggered when the asset is double clicked\n * @private\n * */\n onDblClick() {\n const { em, model } = this;\n const { select } = this.__getBhv();\n const { onDblClick } = this.config;\n const { target, onSelect } = this.collection;\n\n if (isFunction(select)) {\n select(model, true);\n } else if (isFunction(onDblClick)) {\n onDblClick(model);\n } else {\n this.updateTarget(target);\n em && em.get('Modal').close();\n }\n isFunction(onSelect) && onSelect(model);\n }\n\n /**\n * Remove asset from collection\n * @private\n * */\n onRemove(e) {\n e.stopImmediatePropagation();\n this.model.collection.remove(this.model);\n }\n}\n\nAssetImageView.prototype.events = {\n 'click [data-toggle=asset-remove]': 'onRemove',\n click: 'onClick',\n dblclick: 'onDblClick',\n};\n","import { Collection } from '../../common';\nimport AssetImage from './AssetImage';\nimport AssetImageView from './../view/AssetImageView';\nimport TypeableCollection from '../../domain_abstract/model/TypeableCollection';\n\nexport default class Assets extends Collection.extend(TypeableCollection) {}\n\nAssets.prototype.types = [\n {\n id: 'image',\n model: AssetImage,\n view: AssetImageView,\n isType(value) {\n if (typeof value == 'string') {\n return {\n type: 'image',\n src: value,\n };\n }\n return value;\n },\n },\n];\n","import { View } from '../../common';\n\nexport default class AssetsView extends View {\n template({ pfx, ppfx, em }) {\n let form = '';\n if (this.config.showUrlInput) {\n form = `\n
\n
\n \n
\n \n
\n
\n `;\n }\n\n return `\n
\n
\n ${form}\n
\n
\n
\n
\n `;\n }\n\n initialize(o) {\n this.options = o;\n this.config = o.config;\n this.pfx = this.config.stylePrefix || '';\n this.ppfx = this.config.pStylePrefix || '';\n this.em = this.config.em;\n const coll = this.collection;\n this.listenTo(coll, 'reset', this.renderAssets);\n this.listenTo(coll, 'add', this.addToAsset);\n this.listenTo(coll, 'remove', this.removedAsset);\n this.listenTo(coll, 'deselectAll', this.deselectAll);\n }\n\n /**\n * Add new asset to the collection via string\n * @param {Event} e Event object\n * @return {this}\n * @private\n */\n handleSubmit(e) {\n e.preventDefault();\n const input = this.getAddInput();\n const url = input && input.value.trim();\n const handleAdd = this.config.handleAdd;\n\n if (!url) {\n return;\n }\n\n input.value = '';\n this.getAssetsEl().scrollTop = 0;\n\n if (handleAdd) {\n handleAdd.bind(this)(url);\n } else {\n this.options.globalCollection.add(url, { at: 0 });\n }\n }\n\n /**\n * Returns assets element\n * @return {HTMLElement}\n * @private\n */\n getAssetsEl() {\n //if(!this.assets) // Not able to cache as after the rerender it losses the ref\n return this.el.querySelector(`.${this.pfx}assets`);\n }\n\n /**\n * Returns input url element\n * @return {HTMLElement}\n * @private\n */\n getAddInput() {\n if (!this.inputUrl || !this.inputUrl.value) this.inputUrl = this.el.querySelector(`.${this.pfx}add-asset input`);\n return this.inputUrl;\n }\n\n /**\n * Triggered when an asset is removed\n * @param {Asset} model Removed asset\n * @private\n */\n removedAsset(model) {\n if (!this.collection.length) {\n this.toggleNoAssets();\n }\n }\n\n /**\n * Add asset to collection\n * @private\n * */\n addToAsset(model) {\n if (this.collection.length == 1) {\n this.toggleNoAssets(1);\n }\n this.addAsset(model);\n }\n\n /**\n * Add new asset to collection\n * @param Object Model\n * @param Object Fragment collection\n * @return Object Object created\n * @private\n * */\n addAsset(model, fragmentEl = null) {\n const fragment = fragmentEl;\n const collection = this.collection;\n const config = this.config;\n const rendered = new model.typeView({\n model,\n collection,\n config,\n }).render().el;\n\n if (fragment) {\n fragment.appendChild(rendered);\n } else {\n const assetsEl = this.getAssetsEl();\n if (assetsEl) {\n assetsEl.insertBefore(rendered, assetsEl.firstChild);\n }\n }\n\n return rendered;\n }\n\n /**\n * Checks if to show noAssets\n * @param {Boolean} hide\n * @private\n */\n toggleNoAssets(hide) {\n const assetsEl = this.$el.find(`.${this.pfx}assets`);\n\n if (hide) {\n assetsEl.empty();\n } else {\n const noAssets = this.config.noAssets;\n noAssets && assetsEl.append(noAssets);\n }\n }\n\n /**\n * Deselect all assets\n * @private\n * */\n deselectAll() {\n const pfx = this.pfx;\n this.$el.find(`.${pfx}highlight`).removeClass(`${pfx}highlight`);\n }\n\n renderAssets() {\n const fragment = document.createDocumentFragment();\n const assets = this.$el.find(`.${this.pfx}assets`);\n assets.empty();\n this.toggleNoAssets(this.collection.length);\n this.collection.each(model => this.addAsset(model, fragment));\n assets.append(fragment);\n }\n\n render() {\n const fuRendered = this.options.fu.render().el;\n this.$el.empty();\n this.$el.append(fuRendered).append(this.template(this));\n this.el.className = `${this.ppfx}asset-manager`;\n this.renderAssets();\n return this;\n }\n}\n\nAssetsView.prototype.events = {\n submit: 'handleSubmit',\n};\n","import { View } from '../../common';\nimport fetch from '../../utils/fetch';\nimport html from '../../utils/html';\n\nexport default class FileUploaderView extends View {\n template({ pfx, title, uploadId, disabled, multiUpload }) {\n return html`\n
\n
${title}
\n \n
\n \n `;\n }\n\n initialize(opts = {}) {\n this.options = opts;\n const c = opts.config || {};\n this.module = opts.module;\n this.config = c;\n this.em = this.config.em;\n this.pfx = c.stylePrefix || '';\n this.ppfx = c.pStylePrefix || '';\n this.target = this.options.globalCollection || {};\n this.uploadId = this.pfx + 'uploadFile';\n this.disabled = c.disableUpload !== undefined ? c.disableUpload : !c.upload && !c.embedAsBase64;\n this.multiUpload = c.multiUpload !== undefined ? c.multiUpload : true;\n this.events = {\n [`change #${this.uploadId}`]: 'uploadFile',\n };\n let uploadFile = c.uploadFile;\n\n if (uploadFile) {\n this.uploadFile = uploadFile.bind(this);\n } else if (!c.upload && c.embedAsBase64) {\n this.uploadFile = this.constructor.embedAsBase64;\n }\n\n this.delegateEvents();\n }\n\n /**\n * Triggered before the upload is started\n * @private\n */\n onUploadStart() {\n const { module } = this;\n module && module.__propEv('asset:upload:start');\n }\n\n /**\n * Triggered after the upload is ended\n * @param {Object|string} res End result\n * @private\n */\n onUploadEnd(res) {\n const { $el, module } = this;\n module && module.__propEv('asset:upload:end', res);\n const input = $el.find('input');\n input && input.val('');\n }\n\n /**\n * Triggered on upload error\n * @param {Object} err Error\n * @private\n */\n onUploadError(err) {\n const { module } = this;\n console.error(err);\n this.onUploadEnd(err);\n module && module.__propEv('asset:upload:error', err);\n }\n\n /**\n * Triggered on upload response\n * @param {string} text Response text\n * @private\n */\n onUploadResponse(text, clb) {\n const { module, config, target } = this;\n let json;\n try {\n json = typeof text === 'string' ? JSON.parse(text) : text;\n } catch (e) {\n json = text;\n }\n\n module && module.__propEv('asset:upload:response', json);\n\n if (config.autoAdd && target) {\n target.add(json.data, { at: 0 });\n }\n\n this.onUploadEnd(text);\n clb && clb(json);\n }\n\n /**\n * Upload files\n * @param {Object} e Event\n * @return {Promise}\n * @private\n * */\n uploadFile(e, clb) {\n const files = e.dataTransfer ? e.dataTransfer.files : e.target.files;\n const { config } = this;\n const { beforeUpload } = config;\n\n const beforeUploadResponse = beforeUpload && beforeUpload(files);\n if (beforeUploadResponse === false) return;\n\n const body = new FormData();\n const { params, customFetch } = config;\n\n for (let param in params) {\n body.append(param, params[param]);\n }\n\n if (this.multiUpload) {\n for (let i = 0; i < files.length; i++) {\n body.append(`${config.uploadName}[]`, files[i]);\n }\n } else if (files.length) {\n body.append(config.uploadName, files[0]);\n }\n\n var target = this.target;\n const url = config.upload;\n const headers = config.headers;\n const reqHead = 'X-Requested-With';\n\n if (typeof headers[reqHead] == 'undefined') {\n headers[reqHead] = 'XMLHttpRequest';\n }\n\n if (url) {\n this.onUploadStart();\n const fetchOpts = {\n method: 'post',\n credentials: config.credentials || 'include',\n headers,\n body,\n };\n const fetchResult = customFetch\n ? customFetch(url, fetchOpts)\n : fetch(url, fetchOpts).then(res =>\n ((res.status / 200) | 0) == 1 ? res.text() : res.text().then(text => Promise.reject(text))\n );\n return fetchResult.then(text => this.onUploadResponse(text, clb)).catch(err => this.onUploadError(err));\n }\n }\n\n /**\n * Make input file droppable\n * @private\n * */\n initDrop() {\n var that = this;\n if (!this.uploadForm) {\n this.uploadForm = this.$el.find('form').get(0);\n if ('draggable' in this.uploadForm) {\n var uploadFile = this.uploadFile;\n this.uploadForm.ondragover = function () {\n this.className = that.pfx + 'hover';\n return false;\n };\n this.uploadForm.ondragleave = function () {\n this.className = '';\n return false;\n };\n this.uploadForm.ondrop = function (e) {\n this.className = '';\n e.preventDefault();\n that.uploadFile(e);\n return;\n };\n }\n }\n }\n\n initDropzone(ev) {\n let addedCls = 0;\n const c = this.config;\n const em = ev.model;\n const edEl = ev.el;\n const editor = em.get('Editor');\n const container = em.get('Config').el;\n const frameEl = em.get('Canvas').getBody();\n const ppfx = this.ppfx;\n const updatedCls = `${ppfx}dropzone-active`;\n const dropzoneCls = `${ppfx}dropzone`;\n const cleanEditorElCls = () => {\n edEl.className = edEl.className.replace(updatedCls, '').trim();\n addedCls = 0;\n };\n const onDragOver = () => {\n if (!addedCls) {\n edEl.className += ` ${updatedCls}`;\n addedCls = 1;\n }\n return false;\n };\n const onDragLeave = () => {\n cleanEditorElCls();\n return false;\n };\n const onDrop = e => {\n cleanEditorElCls();\n e.preventDefault();\n e.stopPropagation();\n this.uploadFile(e);\n\n if (c.openAssetsOnDrop && editor) {\n const target = editor.getSelected();\n editor.runCommand('open-assets', {\n target,\n onSelect() {\n editor.Modal.close();\n editor.AssetManager.setTarget(null);\n },\n });\n }\n\n return false;\n };\n\n ev.$el.append(`
${c.dropzoneContent}
`);\n cleanEditorElCls();\n\n if ('draggable' in edEl) {\n [edEl, frameEl].forEach(item => {\n item.ondragover = onDragOver;\n item.ondragleave = onDragLeave;\n item.ondrop = onDrop;\n });\n }\n }\n\n render() {\n const { $el, pfx, em } = this;\n $el.html(\n this.template({\n title: em && em.t('assetManager.uploadTitle'),\n uploadId: this.uploadId,\n disabled: this.disabled,\n multiUpload: this.multiUpload,\n pfx,\n })\n );\n this.initDrop();\n $el.attr('class', pfx + 'file-uploader');\n return this;\n }\n}\n\nFileUploaderView.embedAsBase64 = function (e, clb) {\n // List files dropped\n const files = e.dataTransfer ? e.dataTransfer.files : e.target.files;\n const response = { data: [] };\n\n // Unlikely, widely supported now\n if (!FileReader) {\n this.onUploadError(new Error('Unsupported platform, FileReader is not defined'));\n return;\n }\n\n const promises = [];\n const mimeTypeMatcher = /^(.+)\\/(.+)$/;\n\n for (const file of files) {\n // For each file a reader (to read the base64 URL)\n // and a promise (to track and merge results and errors)\n const promise = new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.addEventListener('load', event => {\n let type;\n const name = file.name;\n\n // Try to find the MIME type of the file.\n const match = mimeTypeMatcher.exec(file.type);\n if (match) {\n type = match[1]; // The first part in the MIME, \"image\" in image/png\n } else {\n type = file.type;\n }\n\n /*\n // Show local video files, http://jsfiddle.net/dsbonev/cCCZ2/embedded/result,js,html,css/\n var URL = window.URL || window.webkitURL\n var file = this.files[0]\n var type = file.type\n var videoNode = document.createElement('video');\n var canPlay = videoNode.canPlayType(type) // can use also for 'audio' types\n if (canPlay === '') canPlay = 'no'\n var message = 'Can play type \"' + type + '\": ' + canPlay\n var isError = canPlay === 'no'\n displayMessage(message, isError)\n\n if (isError) {\n return\n }\n\n var fileURL = URL.createObjectURL(file)\n videoNode.src = fileURL\n */\n\n // If it's an image, try to find its size\n if (type === 'image') {\n const data = {\n src: reader.result,\n name,\n type,\n height: 0,\n width: 0,\n };\n\n const image = new Image();\n image.addEventListener('error', error => {\n reject(error);\n });\n image.addEventListener('load', () => {\n data.height = image.height;\n data.width = image.width;\n resolve(data);\n });\n image.src = data.src;\n } else if (type) {\n // Not an image, but has a type\n resolve({\n src: reader.result,\n name,\n type,\n });\n } else {\n // No type found, resolve with the URL only\n resolve(reader.result);\n }\n });\n reader.addEventListener('error', error => {\n reject(error);\n });\n reader.addEventListener('abort', error => {\n reject('Aborted');\n });\n\n reader.readAsDataURL(file);\n });\n\n promises.push(promise);\n }\n\n Promise.all(promises).then(\n data => {\n response.data = data;\n this.onUploadResponse(response, clb);\n },\n error => {\n this.onUploadError(error);\n }\n );\n};\n","/**\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/asset_manager/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * assetManager: {\n * // options\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\n *\n * ```js\n * const assetManager = editor.AssetManager;\n * ```\n *\n * ## Available Events\n * * `asset:open` - Asset Manager opened.\n * * `asset:close` - Asset Manager closed.\n * * `asset:add` - Asset added. The [Asset] is passed as an argument to the callback.\n * * `asset:remove` - Asset removed. The [Asset] is passed as an argument to the callback.\n * * `asset:update` - Asset updated. The updated [Asset] and the object containing changes are passed as arguments to the callback.\n * * `asset:upload:start` - Before the upload is started.\n * * `asset:upload:end` - After the upload is ended.\n * * `asset:upload:error` - On any error in upload, passes the error as an argument.\n * * `asset:upload:response` - On upload response, passes the result as an argument.\n * * `asset` - Catch-all event for all the events mentioned above. An object containing all the available data about the triggered event is passed as an argument to the callback.\n * * `asset:custom` - Event for handling custom Asset Manager UI.\n *\n * ## Methods\n * * [open](#open)\n * * [close](#close)\n * * [isOpen](#isopen)\n * * [add](#add)\n * * [get](#get)\n * * [getAll](#getall)\n * * [getAllVisible](#getallvisible)\n * * [remove](#remove)\n * * [store](#store)\n * * [load](#load)\n * * [getContainer](#getcontainer)\n *\n * [Asset]: asset.html\n *\n * @module AssetManager\n */\n\nimport { debounce, isFunction } from 'underscore';\nimport { Module } from '../common';\nimport defaults from './config/config';\nimport Asset from './model/Assets';\nimport Assets from './model/Assets';\nimport AssetsView from './view/AssetsView';\nimport FileUpload from './view/FileUploader';\n\nexport const evAll = 'asset';\nexport const evPfx = `${evAll}:`;\nexport const evSelect = `${evPfx}select`;\nexport const evUpdate = `${evPfx}update`;\nexport const evAdd = `${evPfx}add`;\nexport const evRemove = `${evPfx}remove`;\nexport const evRemoveBefore = `${evRemove}:before`;\nexport const evCustom = `${evPfx}custom`;\nexport const evOpen = `${evPfx}open`;\nexport const evClose = `${evPfx}close`;\nexport const evUpload = `${evPfx}upload`;\nexport const evUploadStart = `${evUpload}:start`;\nexport const evUploadEnd = `${evUpload}:end`;\nexport const evUploadError = `${evUpload}:error`;\nexport const evUploadRes = `${evUpload}:response`;\n\nexport default () => {\n let c = {};\n let assets, assetsVis, am, fu;\n const assetCmd = 'open-assets';\n\n return {\n ...Module,\n\n name: 'AssetManager',\n\n storageKey: 'assets',\n\n Asset,\n\n Assets,\n\n events: {\n all: evAll,\n select: evSelect,\n update: evUpdate,\n add: evAdd,\n remove: evRemove,\n removeBefore: evRemoveBefore,\n custom: evCustom,\n open: evOpen,\n close: evClose,\n uploadStart: evUploadStart,\n uploadEnd: evUploadEnd,\n uploadError: evUploadError,\n uploadResponse: evUploadRes,\n },\n\n init(config = {}) {\n c = { ...defaults, ...config };\n const ppfx = c.pStylePrefix;\n const { em } = c;\n this.config = c;\n this.em = em;\n\n if (ppfx) {\n c.stylePrefix = ppfx + c.stylePrefix;\n }\n\n // Global assets collection\n assets = new Assets([]);\n assetsVis = new Assets([]);\n this.all = assets;\n this.__initListen();\n\n // Setup the sync between the global and public collections\n assets.on('add', model => this.getAllVisible().add(model));\n assets.on('remove', model => this.getAllVisible().remove(model));\n\n return this;\n },\n\n __propEv(ev, ...data) {\n this.em.trigger(ev, ...data);\n this.getAll().trigger(ev, ...data);\n },\n\n __onAllEvent: debounce(function () {\n this.__trgCustom();\n }),\n\n __trgCustom() {\n const bhv = this.__getBehaviour();\n if (!bhv.container && !this.getConfig('custom').open) {\n return;\n }\n this.em.trigger(this.events.custom, this.__customData());\n },\n\n __customData() {\n const bhv = this.__getBehaviour();\n return {\n am: this,\n open: this.isOpen(),\n assets: this.getAll().models,\n types: bhv.types || [],\n container: bhv.container,\n close: () => this.close(),\n remove: (...args) => this.remove(...args),\n select: (asset, complete) => {\n const res = this.add(asset);\n isFunction(bhv.select) && bhv.select(res, complete);\n },\n // extra\n options: bhv.options || {},\n };\n },\n\n /**\n * Open the asset manager.\n * @param {Object} [options] Options for the asset manager.\n * @param {Array} [options.types=['image']] Types of assets to show.\n * @param {Function} [options.select] Type of operation to perform on asset selection. If not specified, nothing will happen.\n * @example\n * assetManager.open({\n * select(asset, complete) {\n * const selected = editor.getSelected();\n * if (selected && selected.is('image')) {\n * selected.addAttributes({ src: asset.getSrc() });\n * // The default AssetManager UI will trigger `select(asset, false)` on asset click\n * // and `select(asset, true)` on double-click\n * complete && assetManager.close();\n * }\n * }\n * });\n * // with your custom types (you should have assets with those types declared)\n * assetManager.open({ types: ['doc'], ... });\n */\n open(options = {}) {\n const cmd = this.em.get('Commands');\n cmd.run(assetCmd, {\n types: ['image'],\n select: () => {},\n ...options,\n });\n },\n\n /**\n * Close the asset manager.\n * @example\n * assetManager.close();\n */\n close() {\n const cmd = this.em.get('Commands');\n cmd.stop(assetCmd);\n },\n\n /**\n * Checks if the asset manager is open\n * @returns {Boolean}\n * @example\n * assetManager.isOpen(); // true | false\n */\n isOpen() {\n const cmd = this.em.get('Commands');\n return !!(cmd && cmd.isActive(assetCmd));\n },\n\n /**\n * Add new asset/s to the collection. URLs are supposed to be unique\n * @param {String|Object|Array|Array} asset URL strings or an objects representing the resource.\n * @param {Object} [opts] Options\n * @returns {[Asset]}\n * @example\n * // As strings\n * assetManager.add('http://img.jpg');\n * assetManager.add(['http://img.jpg', './path/to/img.png']);\n *\n * // Using objects you can indicate the type and other meta informations\n * assetManager.add({\n * // type: 'image',\t// image is default\n * \tsrc: 'http://img.jpg',\n * \theight: 300,\n *\twidth: 200,\n * });\n * assetManager.add([{ src: 'img2.jpg' }, { src: 'img2.png' }]);\n */\n add(asset, opts = {}) {\n // Put the model at the beginning\n if (typeof opts.at == 'undefined') {\n opts.at = 0;\n }\n\n return assets.add(asset, opts);\n },\n\n /**\n * Return asset by URL\n * @param {String} src URL of the asset\n * @returns {[Asset]|null}\n * @example\n * const asset = assetManager.get('http://img.jpg');\n */\n get(src) {\n return assets.where({ src })[0] || null;\n },\n\n /**\n * Return the global collection, containing all the assets\n * @returns {Collection<[Asset]>}\n */\n getAll() {\n return assets;\n },\n\n /**\n * Return the visible collection, which contains assets actually rendered\n * @returns {Collection<[Asset]>}\n */\n getAllVisible() {\n return assetsVis;\n },\n\n /**\n * Remove asset\n * @param {String|[Asset]} asset Asset or asset URL\n * @returns {[Asset]} Removed asset\n * @example\n * const removed = assetManager.remove('http://img.jpg');\n * // or by passing the Asset\n * const asset = assetManager.get('http://img.jpg');\n * assetManager.remove(asset);\n */\n remove(asset, opts) {\n return this.__remove(asset, opts);\n },\n\n store() {\n return this.getProjectData();\n },\n\n load(data) {\n return this.loadProjectData(data);\n },\n\n /**\n * Return the Asset Manager Container\n * @returns {HTMLElement}\n */\n getContainer() {\n const bhv = this.__getBehaviour();\n return bhv.container || (am && am.el);\n },\n\n /**\n * Get assets element container\n * @returns {HTMLElement}\n * @private\n */\n getAssetsEl() {\n return am.el.querySelector('[data-el=assets]');\n },\n\n /**\n * Render assets\n * @param {array} assets Assets to render, without the argument will render all global assets\n * @returns {HTMLElement}\n * @example\n * // Render all assets\n * assetManager.render();\n *\n * // Render some of the assets\n * const assets = assetManager.getAll();\n * assetManager.render(assets.filter(\n * asset => asset.get('category') == 'cats'\n * ));\n */\n render(assts) {\n if (this.getConfig('custom')) return;\n const toRender = assts || this.getAll().models;\n\n if (!am) {\n const obj = this.__viewParams();\n obj.fu = this.FileUploader();\n const el = am && am.el;\n am = new AssetsView({\n el,\n ...obj,\n });\n am.render();\n }\n\n assetsVis.reset(toRender);\n return this.getContainer();\n },\n\n __viewParams() {\n return {\n collection: assetsVis, // Collection visible in asset manager\n globalCollection: assets,\n config: c,\n module: this,\n };\n },\n\n /**\n * Add new type. If you want to get more about type definition we suggest to read the [module's page](/modules/Assets.html)\n * @param {string} id Type ID\n * @param {Object} definition Definition of the type. Each definition contains\n * `model` (business logic), `view` (presentation logic)\n * and `isType` function which recognize the type of the\n * passed entity\n * @private\n * @example\n * assetManager.addType('my-type', {\n * model: {},\n * view: {},\n * isType: (value) => {},\n * })\n */\n addType(id, definition) {\n this.getAll().addType(id, definition);\n },\n\n /**\n * Get type\n * @param {string} id Type ID\n * @returns {Object} Type definition\n * @private\n */\n getType(id) {\n return this.getAll().getType(id);\n },\n\n /**\n * Get types\n * @returns {Array}\n * @private\n */\n getTypes() {\n return this.getAll().getTypes();\n },\n\n //-------\n\n AssetsView() {\n return am;\n },\n\n FileUploader() {\n if (!fu) {\n fu = new FileUpload(this.__viewParams());\n }\n return fu;\n },\n\n onLoad() {\n this.getAll().reset(c.assets);\n const { em, events } = this;\n em.on(`run:${assetCmd}`, () => this.__propEv(events.open));\n em.on(`stop:${assetCmd}`, () => this.__propEv(events.close));\n },\n\n postRender(editorView) {\n c.dropzone && fu && fu.initDropzone(editorView);\n },\n\n /**\n * Set new target\n * @param\t{Object}\tm Model\n * @private\n * */\n setTarget(m) {\n assetsVis.target = m;\n },\n\n /**\n * Set callback after asset was selected\n * @param\t{Object}\tf Callback function\n * @private\n * */\n onSelect(f) {\n assetsVis.onSelect = f;\n },\n\n /**\n * Set callback to fire when the asset is clicked\n * @param {function} func\n * @private\n */\n onClick(func) {\n c.onClick = func;\n },\n\n /**\n * Set callback to fire when the asset is double clicked\n * @param {function} func\n * @private\n */\n onDblClick(func) {\n c.onDblClick = func;\n },\n\n __behaviour(opts = {}) {\n return (this._bhv = {\n ...(this._bhv || {}),\n ...opts,\n });\n },\n\n __getBehaviour(opts = {}) {\n return this._bhv || {};\n },\n\n destroy() {\n assets.stopListening();\n assetsVis.stopListening();\n assets.reset();\n assetsVis.reset();\n fu && fu.remove();\n am && am.remove();\n [assets, assetsVis, am, fu].forEach(i => (i = null));\n this._bhv = {};\n this.all = {};\n c = {};\n },\n };\n};\n","export default {\n // Specify the element to use as a container, string (query) or HTMLElement\n // With the empty value, nothing will be rendered\n appendTo: '',\n\n // Append blocks to canvas on click.\n // With the `true` value, it will try to append the block to the selected component.\n // If there is no selected component, the block will be appened to the wrapper.\n // You can also pass a function to this option, use it as a catch-all for all block\n // clicks and implement a custom logic for each block.\n // appendOnClick: (block, editor) => {\n // if (block.get('id') === 'some-id')\n // editor.getSelected().append(block.get('content'))\n // else\n // editor.getWrapper().append(block.get('content'))\n // }\n appendOnClick: false,\n\n // Default blocks\n blocks: [],\n\n // Avoid rendering the default block manager.\n custom: false\n};\n","import { Model } from '../../common';\nimport { isFunction } from 'underscore';\n\n/**\n * @property {String} label Block label, eg. `My block`\n * @property {String|Object} content The content of the block. Might be an HTML string or a [Component Defintion](/modules/Components.html#component-definition)\n * @property {String} [media=''] HTML string for the media/icon of the block, eg. ` editor.getWrapper().append(block.get('content'))`\n * @property {Object} [attributes={}] Block attributes to apply in the view element\n */\nexport default class Block extends Model {\n defaults() {\n return {\n label: '',\n content: '',\n media: '',\n category: '',\n activate: false,\n select: null,\n resetId: false,\n disable: false,\n onClick: null,\n attributes: {},\n };\n }\n\n /**\n * Get block id\n * @returns {String}\n */\n getId() {\n return this.id;\n }\n\n /**\n * Get block label\n * @returns {String}\n */\n getLabel() {\n return this.get('label');\n }\n\n /**\n * Get block media\n * @returns {String}\n */\n getMedia() {\n return this.get('media');\n }\n\n /**\n * Get block content\n * @returns {Object|String|Array} Component definition | HTML string\n */\n getContent() {\n return this.get('content');\n }\n\n /**\n * Get block category label\n * @returns {String}\n */\n getCategoryLabel() {\n const ctg = this.get('category');\n return isFunction(ctg.get) ? ctg.get('label') : ctg.label ? ctg.label : ctg;\n }\n}\n","import { Collection } from '../../common';\nimport Block from './Block';\n\nexport default class Blocks extends Collection {}\n\nBlocks.prototype.model = Block;\n","import { Model } from '../../common';\n\nexport default class Category extends Model {\n defaults() {\n return {\n id: '',\n label: '',\n open: true,\n attributes: {},\n };\n }\n}\n","import { Collection } from '../../common';\nimport Category from './Category';\n\nexport default class Categories extends Collection {}\n\nCategories.prototype.model = Category;\n","import { isFunction } from 'underscore';\nimport { View } from '../../common';\nimport { on, off, hasDnd } from '../../utils/mixins';\n\nexport default class BlockView extends View {\n events() {\n return {\n click: 'handleClick',\n mousedown: 'startDrag',\n dragstart: 'handleDragStart',\n drag: 'handleDrag',\n dragend: 'handleDragEnd',\n };\n }\n\n initialize(o, config = {}) {\n const { model } = this;\n this.em = config.em;\n this.config = config;\n this.endDrag = this.endDrag.bind(this);\n this.ppfx = config.pStylePrefix || '';\n this.listenTo(model, 'destroy remove', this.remove);\n this.listenTo(model, 'change', this.render);\n }\n\n __getModule() {\n return this.em.get('BlockManager');\n }\n\n handleClick(ev) {\n const { config, model, em } = this;\n const onClick = model.get('onClick') || config.appendOnClick;\n em.trigger('block:click', model, ev);\n if (!onClick) {\n return;\n } else if (isFunction(onClick)) {\n return onClick(model, em.getEditor(), { event: ev });\n }\n const sorter = config.getSorter();\n const content = model.get('content');\n const selected = em.getSelected();\n sorter.setDropContent(content);\n let target, valid, insertAt;\n\n // If there is a selected component, try first to append\n // the block inside, otherwise, try to place it as a next sibling\n if (selected) {\n valid = sorter.validTarget(selected.getEl(), content);\n\n if (valid.valid) {\n target = selected;\n } else {\n const parent = selected.parent();\n valid = sorter.validTarget(parent.getEl(), content);\n if (valid.valid) {\n target = parent;\n insertAt = parent.components().indexOf(selected) + 1;\n }\n }\n }\n\n // If no target found yet, try to append the block to the wrapper\n if (!target) {\n const wrapper = em.getWrapper();\n valid = sorter.validTarget(wrapper.getEl(), content);\n if (valid.valid) target = wrapper;\n }\n\n const result = target && target.append(content, { at: insertAt })[0];\n result && em.setSelected(result, { scroll: 1 });\n }\n\n /**\n * Start block dragging\n * @private\n */\n startDrag(e) {\n const { config, em, model } = this;\n const disable = model.get('disable');\n //Right or middel click\n if (e.button !== 0 || !config.getSorter || this.el.draggable || disable) return;\n em.refreshCanvas();\n const sorter = config.getSorter();\n sorter.setDragHelper(this.el, e);\n sorter.setDropContent(this.model.get('content'));\n sorter.startSort(this.el);\n on(document, 'mouseup', this.endDrag);\n }\n\n handleDragStart(ev) {\n this.__getModule().__startDrag(this.model, ev);\n }\n\n handleDrag(ev) {\n this.__getModule().__drag(ev);\n }\n\n handleDragEnd() {\n this.__getModule().__endDrag();\n }\n\n /**\n * Drop block\n * @private\n */\n endDrag(e) {\n off(document, 'mouseup', this.endDrag);\n const sorter = this.config.getSorter();\n\n // After dropping the block in the canvas the mouseup event is not yet\n // triggerd on 'this.doc' and so clicking outside, the sorter, tries to move\n // things (throws false positives). As this method just need to drop away\n // the block helper I use the trick of 'moved = 0' to void those errors.\n sorter.moved = 0;\n sorter.endMove();\n }\n\n render() {\n const { em, el, $el, ppfx, model } = this;\n const disable = model.get('disable');\n const attr = model.get('attributes') || {};\n const cls = attr.class || '';\n const className = `${ppfx}block`;\n const label = (em && em.t(`blockManager.labels.${model.id}`)) || model.get('label');\n const render = model.get('render');\n const media = model.get('media');\n const clsAdd = disable ? `${className}--disable` : `${ppfx}four-color-h`;\n $el.attr(attr);\n el.className = `${cls} ${className} ${ppfx}one-bg ${clsAdd}`.trim();\n el.innerHTML = `\n ${media ? `
${media}
` : ''}\n
${label}
\n `;\n el.title = attr.title || el.textContent.trim();\n el.setAttribute('draggable', hasDnd(em) && !disable ? true : false);\n const result = render && render({ el, model, className, prefix: ppfx });\n if (result) el.innerHTML = result;\n return this;\n }\n}\n","import { View } from '../../common';\nimport html from '../../utils/html';\n\nexport default class CategoryView extends View {\n template({ pfx, label }) {\n return html`\n
\n \n ${label}\n
\n
\n `;\n }\n\n attributes() {\n return this.model.get('attributes');\n }\n\n initialize(o = {}, config = {}) {\n this.config = config;\n const pfx = config.pStylePrefix || '';\n this.em = config.em;\n this.pfx = pfx;\n this.caretR = 'fa fa-caret-right';\n this.caretD = 'fa fa-caret-down';\n this.iconClass = `${pfx}caret-icon`;\n this.activeClass = `${pfx}open`;\n this.className = `${pfx}block-category`;\n this.events = {};\n this.events[`click .${pfx}title`] = 'toggle';\n this.listenTo(this.model, 'change:open', this.updateVisibility);\n this.delegateEvents();\n this.model.view = this;\n }\n\n updateVisibility() {\n if (this.model.get('open')) this.open();\n else this.close();\n }\n\n open() {\n this.$el.addClass(this.activeClass);\n this.getIconEl().className = `${this.iconClass} ${this.caretD}`;\n this.getBlocksEl().style.display = '';\n }\n\n close() {\n this.$el.removeClass(this.activeClass);\n this.getIconEl().className = `${this.iconClass} ${this.caretR}`;\n this.getBlocksEl().style.display = 'none';\n }\n\n toggle() {\n var model = this.model;\n model.set('open', !model.get('open'));\n }\n\n getIconEl() {\n if (!this.iconEl) {\n this.iconEl = this.el.querySelector('.' + this.iconClass);\n }\n\n return this.iconEl;\n }\n\n getBlocksEl() {\n if (!this.blocksEl) {\n this.blocksEl = this.el.querySelector('.' + this.pfx + 'blocks-c');\n }\n\n return this.blocksEl;\n }\n\n append(el) {\n this.getBlocksEl().appendChild(el);\n }\n\n render() {\n const { em, el, $el, model, pfx } = this;\n const label = em.t(`blockManager.categories.${model.id}`) || model.get('label');\n el.innerHTML = this.template({ pfx, label });\n $el.addClass(this.className);\n $el.css({ order: model.get('order') });\n this.updateVisibility();\n\n return this;\n }\n}\n","import { isString, isObject, bindAll } from 'underscore';\nimport { View } from '../../common';\nimport BlockView from './BlockView';\nimport CategoryView from './CategoryView';\n\nexport default class BlocksView extends View {\n initialize(opts, config) {\n bindAll(this, 'getSorter', 'onDrag', 'onDrop', 'onMove');\n this.config = config || {};\n this.categories = opts.categories || '';\n this.renderedCategories = [];\n var ppfx = this.config.pStylePrefix || '';\n this.ppfx = ppfx;\n this.noCatClass = `${ppfx}blocks-no-cat`;\n this.blockContClass = `${ppfx}blocks-c`;\n this.catsClass = `${ppfx}block-categories`;\n const coll = this.collection;\n this.listenTo(coll, 'add', this.addTo);\n this.listenTo(coll, 'reset', this.render);\n this.em = this.config.em;\n this.tac = 'test-tac';\n this.grabbingCls = this.ppfx + 'grabbing';\n\n if (this.em) {\n this.config.getSorter = this.getSorter;\n this.canvas = this.em.get('Canvas');\n }\n }\n\n updateConfig(opts = {}) {\n this.config = {\n ...this.config,\n ...opts,\n };\n }\n\n /**\n * Get sorter\n * @private\n */\n getSorter() {\n if (!this.em) return;\n if (!this.sorter) {\n var utils = this.em.get('Utils');\n var canvas = this.canvas;\n this.sorter = new utils.Sorter({\n container: canvas.getBody(),\n placer: canvas.getPlacerEl(),\n containerSel: '*',\n itemSel: '*',\n pfx: this.ppfx,\n onStart: this.onDrag,\n onEndMove: this.onDrop,\n onMove: this.onMove,\n document: canvas.getFrameEl().contentDocument,\n direction: 'a',\n wmargin: 1,\n nested: 1,\n em: this.em,\n canvasRelative: 1,\n });\n }\n return this.sorter;\n }\n\n /**\n * Callback when block is on drag\n * @private\n */\n onDrag(e) {\n this.em.stopDefault();\n this.em.trigger('block:drag:start', e);\n }\n\n onMove(e) {\n this.em.trigger('block:drag:move', e);\n }\n\n /**\n * Callback when block is dropped\n * @private\n */\n onDrop(model) {\n const { em } = this;\n em.runDefault();\n\n if (model && model.get) {\n const oldActive = 'activeOnRender';\n\n if (model.get(oldActive)) {\n model.trigger('active');\n model.unset(oldActive);\n }\n\n em.trigger('block:drag:stop', model);\n }\n }\n\n /**\n * Add new model to the collection\n * @param {Model} model\n * @private\n * */\n addTo(model) {\n this.add(model);\n }\n\n /**\n * Render new model inside the view\n * @param {Model} model\n * @param {Object} fragment Fragment collection\n * @private\n * */\n add(model, fragment) {\n const { config } = this;\n var frag = fragment || null;\n var view = new BlockView(\n {\n model,\n attributes: model.get('attributes'),\n },\n config\n );\n var rendered = view.render().el;\n var category = model.get('category');\n\n // Check for categories\n if (category && this.categories && !config.ignoreCategories) {\n if (isString(category)) {\n category = {\n id: category,\n label: category,\n };\n } else if (isObject(category) && !category.id) {\n category.id = category.label;\n }\n\n var catModel = this.categories.add(category);\n var catId = catModel.get('id');\n var catView = this.renderedCategories[catId];\n var categories = this.getCategoriesEl();\n model.set('category', catModel, { silent: true });\n\n if (!catView && categories) {\n catView = new CategoryView(\n {\n model: catModel,\n },\n this.config\n ).render();\n this.renderedCategories[catId] = catView;\n categories.appendChild(catView.el);\n }\n\n catView && catView.append(rendered);\n return;\n }\n\n if (frag) frag.appendChild(rendered);\n else this.append(rendered);\n }\n\n getCategoriesEl() {\n if (!this.catsEl) {\n this.catsEl = this.el.querySelector(`.${this.catsClass}`);\n }\n\n return this.catsEl;\n }\n\n getBlocksEl() {\n if (!this.blocksEl) {\n this.blocksEl = this.el.querySelector(`.${this.noCatClass} .${this.blockContClass}`);\n }\n\n return this.blocksEl;\n }\n\n append(el) {\n let blocks = this.getBlocksEl();\n blocks && blocks.appendChild(el);\n }\n\n render() {\n const ppfx = this.ppfx;\n const frag = document.createDocumentFragment();\n this.catsEl = null;\n this.blocksEl = null;\n this.renderedCategories = [];\n this.el.innerHTML = `\n
\n
\n
\n
\n `;\n\n this.collection.each(model => this.add(model, frag));\n this.append(frag);\n const cls = `${this.blockContClass}s ${ppfx}one-bg ${ppfx}two-color`;\n this.$el.addClass(cls);\n this.rendered = true;\n return this;\n }\n}\n","/**\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/block_manager/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * blockManager: {\n * // options\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API and listen to its events. Before using these methods, you should get the module from the instance.\n *\n * ```js\n * // Listen to events\n * editor.on('block:add', (block) => { ... });\n *\n * // Use the API\n * const blockManager = editor.BlockManager;\n * blockManager.add(...);\n * ```\n *\n * ## Available Events\n * * `block:add` - Block added. The [Block] is passed as an argument to the callback.\n * * `block:remove` - Block removed. The [Block] is passed as an argument to the callback.\n * * `block:update` - Block updated. The [Block] and the object containing changes are passed as arguments to the callback.\n * * `block:drag:start` - Started dragging block, the [Block] is passed as an argument.\n * * `block:drag` - Dragging block, the [Block] is passed as an argument.\n * * `block:drag:stop` - Dragging of the block is stopped. The dropped [Component] (if dropped successfully) and the [Block] are passed as arguments.\n * * `block` - Catch-all event for all the events mentioned above. An object containing all the available data about the triggered event is passed as an argument to the callback.\n *\n * ## Methods\n * * [add](#add)\n * * [get](#get)\n * * [getAll](#getall)\n * * [getAllVisible](#getallvisible)\n * * [remove](#remove)\n * * [getConfig](#getconfig)\n * * [getCategories](#getcategories)\n * * [getContainer](#getcontainer)\n * * [render](#render)\n *\n * [Block]: block.html\n * [Component]: component.html\n *\n * @module BlockManager\n */\nimport { isElement, isArray } from 'underscore';\nimport Module from '../abstract/moduleLegacy';\nimport defaults from './config/config';\nimport Block from './model/Block';\nimport Blocks from './model/Blocks';\nimport Category from './model/Category';\nimport Categories from './model/Categories';\nimport BlocksView from './view/BlocksView';\n\nexport const evAll = 'block';\nexport const evPfx = `${evAll}:`;\nexport const evAdd = `${evPfx}add`;\nexport const evUpdate = `${evPfx}update`;\nexport const evRemove = `${evPfx}remove`;\nexport const evRemoveBefore = `${evRemove}:before`;\nexport const evDrag = `${evPfx}drag`;\nexport const evDragStart = `${evDrag}:start`;\nexport const evDragStop = `${evDrag}:stop`;\nexport const evCustom = `${evPfx}custom`;\n\nexport default () => {\n var c = {};\n var blocks, blocksVisible, blocksView;\n var categories = [];\n\n return {\n ...Module,\n\n name: 'BlockManager',\n\n Block,\n\n Blocks,\n\n Category,\n\n Categories,\n\n events: {\n all: evAll,\n update: evUpdate,\n add: evAdd,\n remove: evRemove,\n removeBefore: evRemoveBefore,\n drag: evDrag,\n dragStart: evDragStart,\n dragEnd: evDragStop,\n custom: evCustom,\n },\n\n init(config = {}) {\n c = { ...defaults, ...config };\n const { em } = c;\n this.em = em;\n\n // Global blocks collection\n blocks = new Blocks(c.blocks);\n blocksVisible = new Blocks(blocks.models);\n categories = new Categories();\n this.all = blocks;\n this.__initListen();\n\n // Setup the sync between the global and public collections\n blocks.on('add', model => blocksVisible.add(model));\n blocks.on('remove', model => blocksVisible.remove(model));\n blocks.on('reset', coll => blocksVisible.reset(coll.models));\n\n return this;\n },\n\n __trgCustom() {\n this.em.trigger(this.events.custom, this.__customData());\n },\n\n __customData() {\n const bhv = this.__getBehaviour();\n return {\n bm: this,\n blocks: this.getAll().models,\n container: bhv.container,\n dragStart: (block, ev) => this.startDrag(block, ev),\n drag: ev => this.__drag(ev),\n dragStop: cancel => this.endDrag(cancel),\n };\n },\n\n __startDrag(block, ev) {\n const { em, events } = this;\n const content = block.getContent ? block.getContent() : block;\n this._dragBlock = block;\n em.set({ dragResult: null, dragContent: content });\n [em, blocks].map(i => i.trigger(events.dragStart, block, ev));\n },\n\n __drag(ev) {\n const { em, events } = this;\n const block = this._dragBlock;\n [em, blocks].map(i => i.trigger(events.drag, block, ev));\n },\n\n __endDrag() {\n const { em, events } = this;\n const block = this._dragBlock;\n const cmp = em.get('dragResult');\n this._dragBlock = null;\n\n if (cmp) {\n const oldKey = 'activeOnRender';\n const oldActive = cmp.get && cmp.get(oldKey);\n const toActive = block.get('activate') || oldActive;\n const toSelect = block.get('select');\n const first = isArray(cmp) ? cmp[0] : cmp;\n\n if (toSelect || (toActive && toSelect !== false)) {\n em.setSelected(first);\n }\n\n if (toActive) {\n first.trigger('active');\n oldActive && first.unset(oldKey);\n }\n\n if (block.get('resetId')) {\n first.onAll(block => block.resetId());\n }\n }\n\n em.set({ dragResult: null, dragContent: null });\n [em, blocks].map(i => i.trigger(events.dragEnd, cmp, block));\n },\n\n __getFrameViews() {\n return this.em\n .get('Canvas')\n .getFrames()\n .map(frame => frame.view);\n },\n\n __behaviour(opts = {}) {\n return (this._bhv = {\n ...(this._bhv || {}),\n ...opts,\n });\n },\n\n __getBehaviour() {\n return this._bhv || {};\n },\n\n startDrag(block, ev) {\n this.__startDrag(block, ev);\n this.__getFrameViews().forEach(fv => fv.droppable.startCustom());\n },\n\n endDrag(cancel) {\n this.__getFrameViews().forEach(fv => fv.droppable.endCustom(cancel));\n this.__endDrag();\n },\n\n /**\n * Get configuration object\n * @return {Object}\n */\n getConfig() {\n return c;\n },\n\n postRender() {\n const collection = blocksVisible;\n blocksView = new BlocksView({ collection, categories }, c);\n const elTo = this.getConfig().appendTo;\n\n if (elTo) {\n const el = isElement(elTo) ? elTo : document.querySelector(elTo);\n if (!el) return this.__logWarn('\"appendTo\" element not found');\n el.appendChild(this.render(blocksVisible.models));\n }\n\n this.__trgCustom();\n },\n\n /**\n * Add new block.\n * @param {String} id Block ID\n * @param {[Block]} props Block properties\n * @returns {[Block]} Added block\n * @example\n * blockManager.add('h1-block', {\n * label: 'Heading',\n * content: '

Put your title here

',\n * category: 'Basic',\n * attributes: {\n * title: 'Insert h1 block'\n * }\n * });\n */\n add(id, props, opts = {}) {\n const prp = props || {};\n prp.id = id;\n return blocks.add(prp, opts);\n },\n\n /**\n * Get the block by id.\n * @param {String} id Block id\n * @returns {[Block]}\n * @example\n * const block = blockManager.get('h1-block');\n * console.log(JSON.stringify(block));\n * // {label: 'Heading', content: '

Put your ...', ...}\n */\n get(id) {\n return blocks.get(id);\n },\n\n /**\n * Return all blocks.\n * @returns {Collection<[Block]>}\n * @example\n * const blocks = blockManager.getAll();\n * console.log(JSON.stringify(blocks));\n * // [{label: 'Heading', content: '

Put your ...'}, ...]\n */\n getAll() {\n return blocks;\n },\n\n /**\n * Return the visible collection, which containes blocks actually rendered\n * @returns {Collection<[Block]>}\n */\n getAllVisible() {\n return blocksVisible;\n },\n\n /**\n * Remove block.\n * @param {String|[Block]} block Block or block ID\n * @returns {[Block]} Removed block\n * @example\n * const removed = blockManager.remove('BLOCK_ID');\n * // or by passing the Block\n * const block = blockManager.get('BLOCK_ID');\n * blockManager.remove(block);\n */\n remove(block, opts = {}) {\n return this.__remove(block, opts);\n },\n\n /**\n * Get all available categories.\n * It's possible to add categories only within blocks via 'add()' method\n * @return {Array|Collection}\n */\n getCategories() {\n return categories;\n },\n\n /**\n * Return the Blocks container element\n * @return {HTMLElement}\n */\n getContainer() {\n return blocksView.el;\n },\n\n /**\n * Render blocks\n * @param {Array} blocks Blocks to render, without the argument will render all global blocks\n * @param {Object} [opts={}] Options\n * @param {Boolean} [opts.external] Render blocks in a new container (HTMLElement will be returned)\n * @param {Boolean} [opts.ignoreCategories] Render blocks without categories\n * @return {HTMLElement} Rendered element\n * @example\n * // Render all blocks (inside the global collection)\n * blockManager.render();\n *\n * // Render new set of blocks\n * const blocks = blockManager.getAll();\n * const filtered = blocks.filter(block => block.get('category') == 'sections')\n *\n * blockManager.render(filtered);\n * // Or a new set from an array\n * blockManager.render([\n * {label: 'Label text', content: '
Content
'}\n * ]);\n *\n * // Back to blocks from the global collection\n * blockManager.render();\n *\n * // You can also render your blocks outside of the main block container\n * const newBlocksEl = blockManager.render(filtered, { external: true });\n * document.getElementById('some-id').appendChild(newBlocksEl);\n */\n render(blocks, opts = {}) {\n const toRender = blocks || this.getAll().models;\n\n if (opts.external) {\n const collection = new Blocks(toRender);\n return new BlocksView({ collection, categories }, { ...c, ...opts }).render().el;\n }\n\n if (blocksView) {\n blocksView.updateConfig(opts);\n blocksView.collection.reset(toRender);\n\n if (!blocksView.rendered) {\n blocksView.render();\n blocksView.rendered = 1;\n }\n }\n\n return this.getContainer();\n },\n\n destroy() {\n const colls = [blocks, blocksVisible, categories];\n colls.map(c => c.stopListening());\n colls.map(c => c.reset());\n blocksView && blocksView.remove();\n c = {};\n blocks = {};\n blocksVisible = {};\n blocksView = {};\n categories = [];\n this.all = {};\n },\n };\n};\n","export default {\n stylePrefix: 'cv-',\n\n /*\n * Append external scripts to the `` of the iframe.\n * Be aware that these scripts will not be printed in the export code\n * @example\n * scripts: [ 'https://...1.js', 'https://...2.js' ]\n * * // or passing objects as attributes\n * scripts: [ { src: '/file.js', someattr: 'value' }, ... ]\n */\n scripts: [],\n\n /*\n * Append external styles to the `` of the iframe\n * Be aware that these styles will not be printed in the export code\n * @example\n * styles: [ 'https://...1.css', 'https://...2.css' ]\n * // or passing objects as attributes\n * styles: [ { href: '/style.css', someattr: 'value' }, ... ]\n */\n styles: [],\n\n /**\n * Add custom badge naming strategy\n * @example\n * customBadgeLabel: function(component) {\n * return component.getName();\n * }\n */\n customBadgeLabel: '',\n\n /**\n * Indicate when to start the auto scroll of the canvas on component/block dragging (value in px )\n */\n autoscrollLimit: 50,\n\n // Experimental: external highlighter box\n extHl: 0,\n\n /**\n * When some textable component is selected and focused (eg. input or text component) the editor\n * stops some commands (eg. disables the copy/paste of components with CTRL+C/V to allow the copy/paste of the text).\n * This option allows to customize, by a selector, which element should not be considered textable\n */\n notTextable: ['button', 'a', 'input[type=checkbox]', 'input[type=radio]']\n};\n","import { Model } from '../../common';\nimport { evPageSelect } from '../../pages';\nimport Frames from './Frames';\n\nexport default class Canvas extends Model {\n defaults() {\n return {\n frame: '',\n frames: '',\n rulers: false,\n zoom: 100,\n x: 0,\n y: 0,\n // Scripts to apply on all frames\n scripts: [],\n // Styles to apply on all frames\n styles: [],\n };\n }\n\n initialize(props, config = {}) {\n const { em } = config;\n this.config = config;\n this.em = em;\n this.set('frames', new Frames());\n this.listenTo(this, 'change:zoom', this.onZoomChange);\n this.listenTo(em, 'change:device', this.updateDevice);\n this.listenTo(em, evPageSelect, this._pageUpdated);\n }\n\n init() {\n const { em } = this;\n const mainPage = em.get('PageManager').getMain();\n const frame = mainPage.getMainFrame();\n this.set('frames', mainPage.getFrames());\n this.updateDevice({ frame });\n }\n\n _pageUpdated(page, prev) {\n const { em } = this;\n em.setSelected();\n em.get('readyCanvas') && em.stopDefault(); // We have to stop before changing current frames\n prev && prev.getFrames().map(frame => frame.disable());\n this.set('frames', page.getFrames());\n }\n\n updateDevice(opts = {}) {\n const { em } = this;\n const device = em.getDeviceModel();\n const model = opts.frame || em.getCurrentFrameModel();\n\n if (model && device) {\n const { width, height } = device.attributes;\n model.set({ width, height }, { noUndo: 1 });\n }\n }\n\n onZoomChange() {\n const zoom = this.get('zoom');\n zoom < 1 && this.set('zoom', 1);\n }\n}\n","/*\n This class makes the canvas droppable\n */\n\nimport { bindAll, indexOf } from 'underscore';\nimport { on, off } from './mixins';\n\nexport default class Droppable {\n constructor(em, rootEl) {\n this.em = em;\n const el =\n rootEl ||\n em\n .get('Canvas')\n .getFrames()\n .map(frame => frame.getComponent().getEl());\n const els = Array.isArray(el) ? el : [el];\n this.el = el;\n this.counter = 0;\n bindAll(this, 'handleDragEnter', 'handleDragOver', 'handleDrop', 'handleDragLeave');\n els.forEach(el => this.toggleEffects(el, 1));\n\n return this;\n }\n\n toggleEffects(el, enable) {\n const methods = { on, off };\n const method = enable ? 'on' : 'off';\n methods[method](el, 'dragenter', this.handleDragEnter);\n methods[method](el, 'dragover', this.handleDragOver);\n methods[method](el, 'drop', this.handleDrop);\n methods[method](el, 'dragleave', this.handleDragLeave);\n }\n\n __customTglEff(enable) {\n const method = enable ? on : off;\n const doc = this.el.ownerDocument;\n const frameEl = doc.defaultView.frameElement;\n this.sortOpts = enable\n ? {\n onStart({ sorter }) {\n on(frameEl, 'pointermove', sorter.onMove);\n },\n onEnd({ sorter }) {\n off(frameEl, 'pointermove', sorter.onMove);\n },\n customTarget({ event }) {\n return doc.elementFromPoint(event.clientX, event.clientY);\n },\n }\n : null;\n method(frameEl, 'pointerenter', this.handleDragEnter);\n method(frameEl, 'pointermove', this.handleDragOver);\n method(document, 'pointerup', this.handleDrop);\n method(frameEl, 'pointerout', this.handleDragLeave);\n\n // Test with touch devices (seems like frameEl is not capturing pointer events).\n // on/off(document, 'pointermove', sorter.onMove); // for the sorter\n // enable && this.handleDragEnter({}); // no way to use pointerenter/pointerout\n }\n\n startCustom() {\n this.__customTglEff(true);\n }\n\n endCustom(cancel) {\n this.over ? this.endDrop(cancel) : this.__customTglEff(false);\n }\n\n endDrop(cancel, ev) {\n const { em, dragStop } = this;\n this.counter = 0;\n dragStop && dragStop(cancel);\n this.__customTglEff(false);\n em.trigger('canvas:dragend', ev);\n }\n\n handleDragLeave(ev) {\n this.updateCounter(-1, ev);\n }\n\n updateCounter(value, ev) {\n this.counter += value;\n this.counter === 0 && this.endDrop(1, ev);\n }\n\n handleDragEnter(ev) {\n const { em } = this;\n const dt = ev.dataTransfer;\n this.updateCounter(1, ev);\n if (this.over) return;\n this.over = 1;\n const utils = em.get('Utils');\n const canvas = em.get('Canvas');\n // For security reason I can't read the drag data on dragenter, but\n // as I need it for the Sorter context I will use `dragContent` or just\n // any not empty element\n let content = em.get('dragContent') || '
';\n let dragStop, dragContent;\n em.stopDefault();\n\n // Select the right drag provider\n if (em.inAbsoluteMode()) {\n const wrapper = em.get('DomComponents').getWrapper();\n const target = wrapper.append({})[0];\n const dragger = em.get('Commands').run('core:component-drag', {\n event: ev,\n guidesInfo: 1,\n center: 1,\n target,\n onEnd: (ev, dragger, { cancelled }) => {\n let comp;\n if (!cancelled) {\n comp = wrapper.append(content)[0];\n const { left, top, position } = target.getStyle();\n comp.addStyle({ left, top, position });\n }\n this.handleDragEnd(comp, dt);\n target.remove();\n },\n });\n dragStop = cancel => dragger.stop(ev, { cancel });\n dragContent = cnt => (content = cnt);\n } else {\n const sorter = new utils.Sorter({\n em,\n wmargin: 1,\n nested: 1,\n canvasRelative: 1,\n direction: 'a',\n container: this.el,\n placer: canvas.getPlacerEl(),\n containerSel: '*',\n itemSel: '*',\n pfx: 'gjs-',\n onEndMove: model => this.handleDragEnd(model, dt),\n document: this.el.ownerDocument,\n ...(this.sortOpts || {}),\n });\n sorter.setDropContent(content);\n sorter.startSort();\n this.sorter = sorter;\n dragStop = cancel => {\n cancel && (sorter.moved = 0);\n sorter.endMove();\n };\n dragContent = content => sorter.setDropContent(content);\n }\n\n this.dragStop = dragStop;\n this.dragContent = dragContent;\n em.trigger('canvas:dragenter', dt, content);\n }\n\n handleDragEnd(model, dt) {\n const { em } = this;\n this.over = 0;\n if (model) {\n em.set('dragResult', model);\n em.trigger('canvas:drop', dt, model);\n }\n em.runDefault({ preserveSelected: 1 });\n }\n\n /**\n * Always need to have this handler active for enabling the drop\n * @param {Event} ev\n */\n handleDragOver(ev) {\n ev.preventDefault();\n this.em.trigger('canvas:dragover', ev);\n }\n\n /**\n * WARNING: This function might fail to run on drop, for example, when the\n * drop, accidentally, happens on some external element (DOM not inside the iframe)\n */\n handleDrop(ev) {\n ev.preventDefault();\n const { dragContent } = this;\n const dt = ev.dataTransfer;\n const content = this.getContentByData(dt).content;\n ev.target.style.border = '';\n content && dragContent && dragContent(content);\n this.endDrop(!content, ev);\n }\n\n getContentByData(dt) {\n const em = this.em;\n const types = dt && dt.types;\n const files = (dt && dt.files) || [];\n const dragContent = em.get('dragContent');\n let content = dt && dt.getData('text');\n\n if (files.length) {\n content = [];\n for (let i = 0; i < files.length; i++) {\n const file = files[i];\n const type = file.type.split('/')[0];\n\n if (type == 'image') {\n content.push({\n type,\n file,\n attributes: { alt: file.name },\n });\n }\n }\n } else if (dragContent) {\n content = dragContent;\n } else if (indexOf(types, 'text/html') >= 0) {\n content = dt && dt.getData('text/html').replace(/<\\/?meta[^>]*>/g, '');\n } else if (indexOf(types, 'text/uri-list') >= 0) {\n content = {\n type: 'link',\n attributes: { href: content },\n content: content,\n };\n } else if (indexOf(types, 'text/json') >= 0) {\n const json = dt && dt.getData('text/json');\n json && (content = JSON.parse(json));\n } else if (types.length === 1 && types[0] === 'text/plain') {\n // Avoid dropping non-selectable and non-editable text nodes inside the editor\n content = `
${content}
`;\n }\n\n const result = { content };\n em.trigger('canvas:dragdata', dt, result);\n\n return result;\n }\n}\n","import { bindAll, isString, debounce, isUndefined } from 'underscore';\nimport { appendVNodes, append, createEl, createCustomEvent, motionsEv } from '../../utils/dom';\nimport { on, off, setViewEl, hasDnd, getPointerEvent } from '../../utils/mixins';\nimport { View } from '../../common';\nimport CssRulesView from '../../css_composer/view/CssRulesView';\nimport Droppable from '../../utils/Droppable';\n\nexport default class FrameView extends View {\n tagName() {\n return 'iframe';\n }\n\n attributes() {\n return {\n allowfullscreen: 'allowfullscreen',\n 'data-frame-el': true,\n };\n }\n\n initialize(o) {\n bindAll(this, 'updateClientY', 'stopAutoscroll', 'autoscroll', '_emitUpdate');\n const { model, el } = this;\n this.tools = {};\n this.config = {\n ...(o.config || {}),\n frameView: this,\n };\n this.ppfx = this.config.pStylePrefix || '';\n this.em = this.config.em;\n this.showGlobalTools = debounce(this.showGlobalTools.bind(this), 50);\n const cvModel = this.getCanvasModel();\n this.listenTo(model, 'change:head', this.updateHead);\n this.listenTo(cvModel, 'change:styles', this.renderStyles);\n model.view = this;\n setViewEl(el, this);\n }\n\n /**\n * Update `` content of the frame\n */\n updateHead() {\n const { model } = this;\n const headEl = this.getHead();\n const toRemove = [];\n const toAdd = [];\n const current = model.get('head');\n const prev = model.previous('head');\n const attrStr = (attr = {}) =>\n Object.keys(attr)\n .sort()\n .map(i => `[${i}=\"${attr[i]}\"]`)\n .join('');\n const find = (items, stack, res) => {\n items.forEach(item => {\n const { tag, attributes } = item;\n const has = stack.some(s => s.tag === tag && attrStr(s.attributes) === attrStr(attributes));\n !has && res.push(item);\n });\n };\n find(current, prev, toAdd);\n find(prev, current, toRemove);\n toRemove.forEach(stl => {\n const el = headEl.querySelector(`${stl.tag}${attrStr(stl.attributes)}`);\n el && el.parentNode.removeChild(el);\n });\n appendVNodes(headEl, toAdd);\n }\n\n getEl() {\n return this.el;\n }\n\n getCanvasModel() {\n return this.em.get('Canvas').getModel();\n }\n\n getWindow() {\n return this.getEl().contentWindow;\n }\n\n getDoc() {\n return this.getEl().contentDocument;\n }\n\n getHead() {\n return this.getDoc().querySelector('head');\n }\n\n getBody() {\n return this.getDoc().querySelector('body');\n }\n\n getWrapper() {\n return this.getBody().querySelector('[data-gjs-type=wrapper]');\n }\n\n getJsContainer() {\n if (!this.jsContainer) {\n this.jsContainer = createEl('div', { class: `${this.ppfx}js-cont` });\n }\n\n return this.jsContainer;\n }\n\n getToolsEl() {\n const { frameWrapView } = this.config;\n return frameWrapView && frameWrapView.elTools;\n }\n\n getGlobalToolsEl() {\n return this.em.get('Canvas').getGlobalToolsEl();\n }\n\n getHighlighter() {\n return this._getTool('[data-hl]');\n }\n\n getBadgeEl() {\n return this._getTool('[data-badge]');\n }\n\n getOffsetViewerEl() {\n return this._getTool('[data-offset]');\n }\n\n getRect() {\n if (!this.rect) {\n this.rect = this.el.getBoundingClientRect();\n }\n\n return this.rect;\n }\n\n /**\n * Get rect data, not affected by the canvas zoom\n */\n getOffsetRect() {\n const { el } = this;\n const { scrollTop, scrollLeft } = this.getBody();\n const height = el.offsetHeight;\n const width = el.offsetWidth;\n\n return {\n top: el.offsetTop,\n left: el.offsetLeft,\n height,\n width,\n scrollTop,\n scrollLeft,\n scrollBottom: scrollTop + height,\n scrollRight: scrollLeft + width,\n };\n }\n\n _getTool(name) {\n const { tools } = this;\n const toolsEl = this.getToolsEl();\n\n if (!tools[name]) {\n tools[name] = toolsEl.querySelector(name);\n }\n\n return tools[name];\n }\n\n remove() {\n const wrp = this.wrapper;\n this._toggleEffects();\n this.tools = {};\n wrp && wrp.remove();\n View.prototype.remove.apply(this, arguments);\n }\n\n startAutoscroll() {\n this.lastMaxHeight = this.getWrapper().offsetHeight - this.el.offsetHeight;\n\n // By detaching those from the stack avoid browsers lags\n // Noticeable with \"fast\" drag of blocks\n setTimeout(() => {\n this._toggleAutoscrollFx(1);\n requestAnimationFrame(this.autoscroll);\n }, 0);\n }\n\n autoscroll() {\n if (this.dragging) {\n const { lastClientY } = this;\n const canvas = this.em.get('Canvas');\n const win = this.getWindow();\n const body = this.getBody();\n const actualTop = body.scrollTop;\n const clientY = lastClientY || 0;\n const limitTop = canvas.getConfig().autoscrollLimit;\n const limitBottom = this.getRect().height - limitTop;\n let nextTop = actualTop;\n\n if (clientY < limitTop) {\n nextTop -= limitTop - clientY;\n }\n\n if (clientY > limitBottom) {\n nextTop += clientY - limitBottom;\n }\n\n if (\n !isUndefined(lastClientY) && // Fixes #3134\n nextTop !== actualTop &&\n nextTop > 0 &&\n nextTop < this.lastMaxHeight\n ) {\n const toolsEl = this.getGlobalToolsEl();\n toolsEl.style.opacity = 0;\n this.showGlobalTools();\n win.scrollTo(0, nextTop);\n }\n\n requestAnimationFrame(this.autoscroll);\n }\n }\n\n updateClientY(ev) {\n ev.preventDefault();\n this.lastClientY = getPointerEvent(ev).clientY * this.em.getZoomDecimal();\n }\n\n showGlobalTools() {\n this.getGlobalToolsEl().style.opacity = '';\n }\n\n stopAutoscroll() {\n this.dragging && this._toggleAutoscrollFx();\n }\n\n _toggleAutoscrollFx(enable) {\n this.dragging = enable;\n const win = this.getWindow();\n const method = enable ? 'on' : 'off';\n const mt = { on, off };\n mt[method](win, 'mousemove dragover', this.updateClientY);\n mt[method](win, 'mouseup', this.stopAutoscroll);\n }\n\n render() {\n const { $el, ppfx } = this;\n $el.attr({ class: `${ppfx}frame` });\n this.renderScripts();\n return this;\n }\n\n renderScripts() {\n const { el, model, em } = this;\n const evLoad = 'frame:load';\n const evOpts = { el, model, view: this };\n const canvas = this.getCanvasModel();\n const appendScript = scripts => {\n if (scripts.length > 0) {\n const src = scripts.shift();\n const scriptEl = createEl('script', {\n type: 'text/javascript',\n ...(isString(src) ? { src } : src),\n });\n scriptEl.onerror = scriptEl.onload = appendScript.bind(null, scripts);\n el.contentDocument.head.appendChild(scriptEl);\n } else {\n this.renderBody();\n em && em.trigger(evLoad, evOpts);\n }\n };\n\n el.onload = () => {\n em && em.trigger(`${evLoad}:before`, evOpts);\n appendScript([...canvas.get('scripts')]);\n };\n }\n\n renderStyles(opts = {}) {\n const head = this.getHead();\n const canvas = this.getCanvasModel();\n const normalize = stls =>\n stls.map(href => ({\n tag: 'link',\n attributes: {\n rel: 'stylesheet',\n ...(isString(href) ? { href } : href),\n },\n }));\n const prevStyles = normalize(opts.prev || canvas.previous('styles'));\n const styles = normalize(canvas.get('styles'));\n const toRemove = [];\n const toAdd = [];\n const find = (items, stack, res) => {\n items.forEach(item => {\n const { href } = item.attributes;\n const has = stack.some(s => s.attributes.href === href);\n !has && res.push(item);\n });\n };\n find(styles, prevStyles, toAdd);\n find(prevStyles, styles, toRemove);\n toRemove.forEach(stl => {\n const el = head.querySelector(`link[href=\"${stl.attributes.href}\"]`);\n el && el.parentNode.removeChild(el);\n });\n appendVNodes(head, toAdd);\n }\n\n renderBody() {\n const { config, model, ppfx } = this;\n const { em } = config;\n const doc = this.getDoc();\n const body = this.getBody();\n const win = this.getWindow();\n const conf = em.get('Config');\n win._isEditor = true;\n this.renderStyles({ prev: [] });\n\n const colorWarn = '#ffca6f';\n\n // I need all this styles to make the editor work properly\n // Remove `html { height: 100%;}` from the baseCss as it gives jumpings\n // effects (on ENTER) with RTE like CKEditor (maybe some bug there?!?)\n // With `body {height: auto;}` jumps in CKEditor are removed but in\n // Firefox is impossible to drag stuff in empty canvas, so bring back\n // `body {height: 100%;}`.\n // For the moment I give the priority to Firefox as it might be\n // CKEditor's issue\n append(\n body,\n ``\n );\n const component = model.getComponent();\n const { view } = em.get('DomComponents').getType('wrapper');\n this.wrapper = new view({\n model: component,\n config: {\n ...component.config,\n frameView: this,\n },\n }).render();\n append(body, this.wrapper.el);\n append(\n body,\n new CssRulesView({\n collection: model.getStyles(),\n config: {\n ...em.get('CssComposer').getConfig(),\n frameView: this,\n },\n }).render().el\n );\n append(body, this.getJsContainer());\n // em.trigger('loaded'); // I need to manage only the first one maybe\n //this.updateOffset(); // TOFIX (check if I need it)\n\n // Avoid some default behaviours\n on(body, 'click', ev => ev && ev.target.tagName == 'A' && ev.preventDefault());\n on(body, 'submit', ev => ev && ev.preventDefault());\n\n // When the iframe is focused the event dispatcher is not the same so\n // I need to delegate all events to the parent document\n [\n { event: 'keydown keyup keypress', class: 'KeyboardEvent' },\n { event: 'mousedown mousemove mouseup', class: 'MouseEvent' },\n { event: 'pointerdown pointermove pointerup', class: 'PointerEvent' },\n { event: 'wheel', class: 'WheelEvent' },\n ].forEach(obj =>\n obj.event.split(' ').forEach(event => {\n doc.addEventListener(event, ev => this.el.dispatchEvent(createCustomEvent(ev, obj.class)));\n })\n );\n\n this._toggleEffects(1);\n this.droppable = hasDnd(em) && new Droppable(em, this.wrapper.el);\n model.trigger('loaded');\n }\n\n _toggleEffects(enable) {\n const method = enable ? on : off;\n const win = this.getWindow();\n win && method(win, `${motionsEv} resize`, this._emitUpdate);\n }\n\n _emitUpdate() {\n this.model._emitUpdated();\n }\n}\n","import { bindAll, isNumber, isNull, debounce } from 'underscore';\nimport { View } from '../../common';\nimport FrameView from './FrameView';\nimport { createEl, removeEl } from '../../utils/dom';\nimport Dragger from '../../utils/Dragger';\n\nexport default class FrameWrapView extends View {\n events() {\n return {\n 'click [data-action-remove]': 'remove',\n 'mousedown [data-action-move]': 'startDrag',\n };\n }\n\n initialize(opts = {}, conf = {}) {\n bindAll(this, 'onScroll', 'frameLoaded', 'updateOffset', 'remove', 'startDrag');\n const { model } = this;\n const config = {\n ...(opts.config || conf),\n frameWrapView: this,\n };\n const { canvasView, em } = config;\n this.cv = canvasView;\n this.config = config;\n this.em = em;\n this.canvas = em && em.get('Canvas');\n this.ppfx = config.pStylePrefix || '';\n this.frame = new FrameView({ model, config });\n this.classAnim = `${this.ppfx}frame-wrapper--anim`;\n this.updateOffset = debounce(this.updateOffset.bind(this));\n this.updateSize = debounce(this.updateSize.bind(this));\n this.listenTo(model, 'loaded', this.frameLoaded);\n this.listenTo(model, 'change:x change:y', this.updatePos);\n this.listenTo(model, 'change:width change:height', this.updateSize);\n this.listenTo(model, 'destroy remove', this.remove);\n this.updatePos();\n this.setupDragger();\n }\n\n setupDragger() {\n const { canvas, model } = this;\n let dragX, dragY, zoom;\n const toggleEffects = on => {\n canvas.toggleFramesEvents(on);\n };\n\n this.dragger = new Dragger({\n onStart: () => {\n const { x, y } = model.attributes;\n zoom = this.em.getZoomMultiplier();\n dragX = x;\n dragY = y;\n toggleEffects();\n },\n onEnd: () => toggleEffects(1),\n setPosition: posOpts => {\n model.set({\n x: dragX + posOpts.x * zoom,\n y: dragY + posOpts.y * zoom,\n });\n },\n });\n }\n\n startDrag(ev) {\n ev && this.dragger.start(ev);\n }\n\n __clear(opts) {\n const { frame } = this;\n frame && frame.remove(opts);\n removeEl(this.elTools);\n }\n\n remove(opts) {\n this.__clear(opts);\n View.prototype.remove.apply(this, arguments);\n ['frame', 'dragger', 'cv', 'em', 'canvas', 'elTools'].forEach(i => (this[i] = 0));\n return this;\n }\n\n updateOffset() {\n const { em, $el, frame } = this;\n if (!em) return;\n em.runDefault({ preserveSelected: 1 });\n $el.removeClass(this.classAnim);\n frame.model._emitUpdated();\n }\n\n updatePos(md) {\n const { model, el } = this;\n const { x, y } = model.attributes;\n const { style } = el;\n this.frame.rect = 0;\n style.left = isNaN(x) ? x : `${x}px`;\n style.top = isNaN(y) ? y : `${y}px`;\n md && this.updateOffset();\n }\n\n updateSize() {\n this.updateDim();\n }\n\n /**\n * Update dimensions of the frame\n * @private\n */\n updateDim() {\n const { em, el, $el, model, classAnim, frame } = this;\n if (!frame) return;\n frame.rect = 0;\n $el.addClass(classAnim);\n const { noChanges, width, height } = this.__handleSize();\n\n // Set width and height from DOM (should be done only once)\n if (isNull(width) || isNull(height)) {\n model.set(\n {\n ...(!width ? { width: el.offsetWidth } : {}),\n ...(!height ? { height: el.offsetHeight } : {}),\n },\n { silent: 1 }\n );\n }\n\n // Prevent fixed highlighting box which appears when on\n // component hover during the animation\n em.stopDefault({ preserveSelected: 1 });\n noChanges ? this.updateOffset() : setTimeout(this.updateOffset, 350);\n }\n\n onScroll() {\n const { frame, em } = this;\n em.trigger('frame:scroll', {\n frame,\n body: frame.getBody(),\n target: frame.getWindow(),\n });\n }\n\n frameLoaded() {\n const { frame } = this;\n frame.getWindow().onscroll = this.onScroll;\n this.updateDim();\n }\n\n __handleSize() {\n const un = 'px';\n const { model, el } = this;\n const { style } = el;\n const { width, height } = model.attributes;\n const currW = style.width || '';\n const currH = style.height || '';\n const newW = width || '';\n const newH = height || '';\n const noChanges = currW == newW && currH == newH;\n style.width = isNumber(newW) ? `${newW}${un}` : newW;\n style.height = isNumber(newH) ? `${newH}${un}` : newH;\n return { noChanges, width, height, newW, newH };\n }\n\n render() {\n const { frame, $el, ppfx, cv, model, el } = this;\n const { onRender } = model.attributes;\n this.__clear();\n this.__handleSize();\n frame.render();\n $el\n .empty()\n .attr({ class: `${ppfx}frame-wrapper` })\n .append(\n `\n
\n
\n ${model.get('name') || ''}\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n `\n )\n .append(frame.el);\n const elTools = createEl(\n 'div',\n {\n class: `${ppfx}tools`,\n style: 'pointer-events:none; display: none',\n },\n `\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n `\n );\n this.elTools = elTools;\n const twrp = cv.toolsWrapper;\n twrp && twrp.appendChild(elTools); // TODO remove on frame remove\n onRender &&\n onRender({\n el,\n elTop: el.querySelector('[data-frame-top]'),\n elRight: el.querySelector('[data-frame-right]'),\n elBottom: el.querySelector('[data-frame-bottom]'),\n elLeft: el.querySelector('[data-frame-left]'),\n frame: model,\n frameWrapperView: this,\n remove: this.remove,\n startDrag: this.startDrag,\n });\n return this;\n }\n}\n","import { bindAll } from 'underscore';\nimport { View } from '../../common';\nimport { on, off, getElement, getKeyChar, isTextNode, getElRect, getUiClass } from '../../utils/mixins';\nimport { createEl } from '../../utils/dom';\nimport FramesView from './FramesView';\n\nlet timerZoom;\n\nexport default class CanvasView extends View {\n events() {\n return {\n wheel: 'onWheel',\n };\n }\n\n template() {\n const { pfx } = this;\n return `\n
\n
\n `;\n }\n\n initialize(o) {\n bindAll(this, 'clearOff', 'onKeyPress', 'onCanvasMove');\n const { model } = this;\n this.config = o.config || {};\n this.em = this.config.em || {};\n this.pfx = this.config.stylePrefix || '';\n this.ppfx = this.config.pStylePrefix || '';\n this.className = this.config.stylePrefix + 'canvas';\n const { em } = this;\n this._initFrames();\n this.listenTo(em, 'change:canvasOffset', this.clearOff);\n this.listenTo(em, 'component:selected', this.checkSelected);\n this.listenTo(model, 'change:zoom change:x change:y', this.updateFrames);\n this.listenTo(model, 'change:frames', this._onFramesUpdate);\n this.toggleListeners(1);\n }\n\n _onFramesUpdate() {\n this._initFrames();\n this._renderFrames();\n }\n\n _initFrames() {\n const { frames, model, config, em } = this;\n const collection = model.get('frames');\n em.set('readyCanvas', 0);\n collection.once('loaded:all', () => em.set('readyCanvas', 1));\n frames && frames.remove();\n this.frames = new FramesView({\n collection,\n config: {\n ...config,\n canvasView: this,\n },\n });\n }\n\n checkSelected(component, opts = {}) {\n const { scroll } = opts;\n const currFrame = this.em.get('currentFrame');\n\n scroll &&\n component.views.forEach(view => {\n view._getFrame() === currFrame && view.scrollIntoView(scroll);\n });\n }\n\n remove() {\n this.frames.remove();\n this.frames = {};\n View.prototype.remove.apply(this, arguments);\n this.toggleListeners();\n }\n\n preventDefault(ev) {\n if (ev) {\n ev.preventDefault();\n ev._parentEvent && ev._parentEvent.preventDefault();\n }\n }\n\n onCanvasMove(ev) {\n // const data = { x: ev.clientX, y: ev.clientY };\n // const data2 = this.em.get('Canvas').getMouseRelativeCanvas(ev);\n // const data3 = this.em.get('Canvas').getMouseRelativePos(ev);\n // this.em.trigger('canvas:over', data, data2, data3);\n }\n\n toggleListeners(enable) {\n const { el } = this;\n const fn = enable ? on : off;\n fn(document, 'keypress', this.onKeyPress);\n fn(window, 'scroll resize', this.clearOff);\n // fn(el, 'mousemove dragover', this.onCanvasMove);\n }\n\n onKeyPress(ev) {\n const { em } = this;\n const key = getKeyChar(ev);\n\n if (key === ' ' && em.getZoomDecimal() !== 1 && !em.get('Canvas').isInputFocused()) {\n this.preventDefault(ev);\n em.get('Editor').runCommand('core:canvas-move');\n }\n }\n\n onWheel(ev) {\n if ((ev.ctrlKey || ev.metaKey) && this.em.getConfig('multiFrames')) {\n this.preventDefault(ev);\n const { model } = this;\n const delta = Math.max(-1, Math.min(1, ev.wheelDelta || -ev.detail));\n const zoom = model.get('zoom');\n model.set('zoom', zoom + delta * 2);\n }\n }\n\n updateFrames(ev) {\n const { em, model } = this;\n const { x, y } = model.attributes;\n const zoom = this.getZoom();\n const defOpts = { preserveSelected: 1 };\n const mpl = zoom ? 1 / zoom : 1;\n this.framesArea.style.transform = `scale(${zoom}) translate(${x * mpl}px, ${y * mpl}px)`;\n this.clearOff();\n em.stopDefault(defOpts);\n em.trigger('canvas:update', ev);\n timerZoom && clearTimeout(timerZoom);\n timerZoom = setTimeout(() => em.runDefault(defOpts), 300);\n }\n\n getZoom() {\n return this.em.getZoomDecimal();\n }\n\n /**\n * Checks if the element is visible in the canvas's viewport\n * @param {HTMLElement} el\n * @return {Boolean}\n */\n isElInViewport(el) {\n const elem = getElement(el);\n const rect = getElRect(elem);\n const frameRect = this.getFrameOffset(elem);\n const rTop = rect.top;\n const rLeft = rect.left;\n return rTop >= 0 && rLeft >= 0 && rTop <= frameRect.height && rLeft <= frameRect.width;\n }\n\n /**\n * Get the offset of the element\n * @param {HTMLElement} el\n * @return {Object}\n */\n offset(el, opts = {}) {\n const rect = getElRect(el);\n const docBody = el.ownerDocument.body;\n const { noScroll } = opts;\n\n return {\n top: rect.top + (noScroll ? 0 : docBody.scrollTop),\n left: rect.left + (noScroll ? 0 : docBody.scrollLeft),\n width: rect.width,\n height: rect.height,\n };\n }\n\n /**\n * Cleare cached offsets\n * @private\n */\n clearOff() {\n this.frmOff = null;\n this.cvsOff = null;\n }\n\n /**\n * Return frame offset\n * @return {Object}\n * @private\n */\n getFrameOffset(el) {\n if (!this.frmOff || el) {\n const frame = this.frame.el;\n const winEl = el && el.ownerDocument.defaultView;\n const frEl = winEl ? winEl.frameElement : frame;\n this.frmOff = this.offset(frEl || frame);\n }\n return this.frmOff;\n }\n\n /**\n * Return canvas offset\n * @return {Object}\n * @private\n */\n getCanvasOffset() {\n if (!this.cvsOff) this.cvsOff = this.offset(this.el);\n return this.cvsOff;\n }\n\n /**\n * Returns element's rect info\n * @param {HTMLElement} el\n * @return {Object}\n * @private\n */\n getElementPos(el, opts) {\n const zoom = this.getZoom();\n var opt = opts || {};\n var frmOff = this.getFrameOffset(el);\n var cvsOff = this.getCanvasOffset();\n var eo = this.offset(el, opts);\n\n var frmTop = opt.avoidFrameOffset ? 0 : frmOff.top;\n var frmLeft = opt.avoidFrameOffset ? 0 : frmOff.left;\n\n const top = eo.top * zoom + frmTop - cvsOff.top;\n const left = eo.left * zoom + frmLeft - cvsOff.left;\n const height = eo.height * zoom;\n const width = eo.width * zoom;\n\n return { top, left, height, width, zoom, rect: eo };\n }\n\n /**\n * Returns element's offsets like margins and paddings\n * @param {HTMLElement} el\n * @return {Object}\n * @private\n */\n getElementOffsets(el) {\n if (!el || isTextNode(el)) return {};\n const result = {};\n const styles = window.getComputedStyle(el);\n [\n 'marginTop',\n 'marginRight',\n 'marginBottom',\n 'marginLeft',\n 'paddingTop',\n 'paddingRight',\n 'paddingBottom',\n 'paddingLeft',\n ].forEach(offset => {\n result[offset] = parseFloat(styles[offset]) * this.getZoom();\n });\n\n return result;\n }\n\n /**\n * Returns position data of the canvas element\n * @return {Object} obj Position object\n * @private\n */\n getPosition(opts = {}) {\n const doc = this.frame.el.contentDocument;\n if (!doc) return;\n const bEl = doc.body;\n const zoom = this.getZoom();\n const fo = this.getFrameOffset();\n const co = this.getCanvasOffset();\n const { noScroll } = opts;\n\n return {\n top: fo.top + (noScroll ? 0 : bEl.scrollTop) * zoom - co.top,\n left: fo.left + (noScroll ? 0 : bEl.scrollLeft) * zoom - co.left,\n width: co.width,\n height: co.height,\n };\n }\n\n /**\n * Update javascript of a specific component passed by its View\n * @param {View} view Component's View\n * @private\n */\n updateScript(view) {\n const model = view.model;\n const id = model.getId();\n\n if (!view.scriptContainer) {\n view.scriptContainer = createEl('div', { 'data-id': id });\n this.getJsContainer().appendChild(view.scriptContainer);\n }\n\n view.el.id = id;\n view.scriptContainer.innerHTML = '';\n // In editor, I make use of setTimeout as during the append process of elements\n // those will not be available immediately, therefore 'item' variable\n const script = document.createElement('script');\n const scriptFn = model.getScriptString();\n const scriptFnStr = model.get('script-props') ? scriptFn : `function(){\\n${scriptFn}\\n;}`;\n const scriptProps = JSON.stringify(model.__getScriptProps());\n script.innerHTML = `\n setTimeout(function() {\n var item = document.getElementById('${id}');\n if (!item) return;\n (${scriptFnStr}.bind(item))(${scriptProps})\n }, 1);`;\n // #873\n // Adding setTimeout will make js components work on init of the editor\n setTimeout(() => {\n const scr = view.scriptContainer;\n scr?.appendChild(script);\n }, 0);\n }\n\n /**\n * Get javascript container\n * @private\n */\n getJsContainer(view) {\n const frameView = this.getFrameView(view);\n return frameView && frameView.getJsContainer();\n }\n\n getFrameView(view) {\n return (view && view._getFrame()) || this.em.get('currentFrame');\n }\n\n _renderFrames() {\n if (!this.ready) return;\n const { model, frames, em, framesArea } = this;\n const frms = model.get('frames');\n frms.listenToLoad();\n frames.render();\n const mainFrame = frms.at(0);\n const currFrame = mainFrame && mainFrame.view;\n em.setCurrentFrame(currFrame);\n framesArea && framesArea.appendChild(frames.el);\n this.frame = currFrame;\n }\n\n render() {\n const { el, $el, ppfx, config, em } = this;\n $el.html(this.template());\n const $frames = $el.find('[data-frames]');\n this.framesArea = $frames.get(0);\n\n const toolsWrp = $el.find('[data-tools]');\n this.toolsWrapper = toolsWrp.get(0);\n toolsWrp.append(`\n
\n
\n
\n
\n
\n
\n ${config.extHl ? `
` : ''}\n
\n
\n
\n
\n
\n
\n
\n `);\n const toolsEl = el.querySelector(`#${ppfx}tools`);\n this.hlEl = el.querySelector(`.${ppfx}highlighter`);\n this.badgeEl = el.querySelector(`.${ppfx}badge`);\n this.placerEl = el.querySelector(`.${ppfx}placeholder`);\n this.ghostEl = el.querySelector(`.${ppfx}ghost`);\n this.toolbarEl = el.querySelector(`.${ppfx}toolbar`);\n this.resizerEl = el.querySelector(`.${ppfx}resizer`);\n this.offsetEl = el.querySelector(`.${ppfx}offset-v`);\n this.fixedOffsetEl = el.querySelector(`.${ppfx}offset-fixed-v`);\n this.toolsGlobEl = el.querySelector(`.${ppfx}tools-gl`);\n this.toolsEl = toolsEl;\n this.el.className = getUiClass(em, this.className);\n this.ready = 1;\n this._renderFrames();\n\n return this;\n }\n}\n","import DomainViews from '../../domain_abstract/view/DomainViews';\nimport FrameWrapView from './FrameWrapView';\n\nexport default class FramesView extends DomainViews {\n constructor(opts = {}, config) {\n super(opts, config, true);\n this.listenTo(this.collection, 'reset', this.render);\n }\n\n onRemoveBefore(items, opts) {\n items.forEach(item => item.remove(opts));\n }\n\n onRender() {\n const { config, $el } = this;\n const { em } = config;\n em && $el.attr({ class: `${em.getConfig('stylePrefix')}frames` });\n }\n}\n\nFramesView.prototype.itemView = FrameWrapView;\n","/**\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/canvas/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * canvas: {\n * // options\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API and listen to its events. Before using these methods, you should get the module from the instance.\n *\n * ```js\n * // Listen to events\n * editor.on('canvas:drop', () => { ... });\n *\n * // Use the API\n * const canvas = editor.Canvas;\n * canvas.setCoords(...);\n * ```\n * ## Available Events\n * * `canvas:dragenter` - When something is dragged inside the canvas, `DataTransfer` instance passed as an argument\n * * `canvas:dragover` - When something is dragging on canvas, `DataTransfer` instance passed as an argument\n * * `canvas:drop` - Something is dropped in canvas, `DataTransfer` instance and the dropped model are passed as arguments\n * * `canvas:dragend` - When a drag operation is ended, `DataTransfer` instance passed as an argument\n * * `canvas:dragdata` - On any dataTransfer parse, `DataTransfer` instance and the `result` are passed as arguments.\n * By changing `result.content` you're able to customize what is dropped\n *\n * ## Methods\n * * [getConfig](#getconfig)\n * * [getElement](#getelement)\n * * [getFrameEl](#getframeel)\n * * [getWindow](#getwindow)\n * * [getDocument](#getdocument)\n * * [getBody](#getbody)\n * * [setCustomBadgeLabel](#setcustombadgelabel)\n * * [hasFocus](#hasfocus)\n * * [scrollTo](#scrollto)\n * * [setZoom](#setzoom)\n * * [getZoom](#getzoom)\n * * [getCoords](#getcoords)\n * * [setCoords](#setcoords)\n *\n * [Component]: component.html\n * [Frame]: frame.html\n *\n * @module Canvas\n */\n\nimport { isUndefined } from 'underscore';\nimport { getElement, getViewEl } from '../utils/mixins';\nimport defaults from './config/config';\nimport Canvas from './model/Canvas';\nimport canvasView from './view/CanvasView';\n\nexport default () => {\n let c = {};\n let canvas;\n let CanvasView;\n\n return {\n /**\n * Used inside RTE\n * @private\n */\n getCanvasView() {\n return CanvasView;\n },\n\n name: 'Canvas',\n\n /**\n * Initialize module. Automatically called with a new instance of the editor\n * @param {Object} config Configurations\n * @private\n */\n init(config = {}) {\n c = {\n ...defaults,\n ...config,\n module: this,\n };\n\n this.em = c.em;\n const { scripts, styles } = c;\n const ppfx = c.pStylePrefix;\n if (ppfx) c.stylePrefix = ppfx + c.stylePrefix;\n canvas = new Canvas({ scripts, styles }, config);\n this.model = canvas;\n this.startAutoscroll = this.startAutoscroll.bind(this);\n this.stopAutoscroll = this.stopAutoscroll.bind(this);\n return this;\n },\n\n onLoad() {\n this.model.init();\n },\n\n getModel() {\n return canvas;\n },\n\n /**\n * Get the configuration object\n * @returns {Object} Configuration object\n * @example\n * console.log(canvas.getConfig())\n */\n getConfig() {\n return c;\n },\n\n /**\n * Get the canvas element\n * @returns {HTMLElement}\n */\n getElement() {\n return CanvasView.el;\n },\n\n getFrame(index) {\n return this.getFrames()[index || 0];\n },\n\n /**\n * Get the main frame element of the canvas\n * @returns {HTMLIFrameElement}\n */\n getFrameEl() {\n const { frame } = CanvasView || {};\n return frame && frame.el;\n },\n\n getFramesEl() {\n return CanvasView.framesArea;\n },\n\n /**\n * Get the main frame window instance\n * @returns {Window}\n */\n getWindow() {\n return this.getFrameEl().contentWindow;\n },\n\n /**\n * Get the main frame document element\n * @returns {HTMLDocument}\n */\n getDocument() {\n const frame = this.getFrameEl();\n return frame && frame.contentDocument;\n },\n\n /**\n * Get the main frame body element\n * @return {HTMLBodyElement}\n */\n getBody() {\n const doc = this.getDocument();\n return doc && doc.body;\n },\n\n _getCompFrame(compView) {\n return compView && compView._getFrame();\n },\n\n _getLocalEl(globalEl, compView, method) {\n let result = globalEl;\n const frameView = this._getCompFrame(compView);\n result = frameView ? frameView[method]() : result;\n\n return result;\n },\n\n /**\n * Returns element containing all global canvas tools\n * @returns {HTMLElement}\n * @private\n */\n getGlobalToolsEl() {\n return CanvasView.toolsGlobEl;\n },\n\n /**\n * Returns element containing all canvas tools\n * @returns {HTMLElement}\n * @private\n */\n getToolsEl(compView) {\n return this._getLocalEl(CanvasView.toolsEl, compView, 'getToolsEl');\n },\n\n /**\n * Returns highlighter element\n * @returns {HTMLElement}\n * @private\n */\n getHighlighter(compView) {\n return this._getLocalEl(CanvasView.hlEl, compView, 'getHighlighter');\n },\n\n /**\n * Returns badge element\n * @returns {HTMLElement}\n * @private\n */\n getBadgeEl(compView) {\n return this._getLocalEl(CanvasView.badgeEl, compView, 'getBadgeEl');\n },\n\n /**\n * Returns placer element\n * @returns {HTMLElement}\n * @private\n */\n getPlacerEl() {\n return CanvasView.placerEl;\n },\n\n /**\n * Returns ghost element\n * @returns {HTMLElement}\n * @private\n */\n getGhostEl() {\n return CanvasView.ghostEl;\n },\n\n /**\n * Returns toolbar element\n * @returns {HTMLElement}\n * @private\n */\n getToolbarEl() {\n return CanvasView.toolbarEl;\n },\n\n /**\n * Returns resizer element\n * @returns {HTMLElement}\n * @private\n */\n getResizerEl() {\n return CanvasView.resizerEl;\n },\n\n /**\n * Returns offset viewer element\n * @returns {HTMLElement}\n * @private\n */\n getOffsetViewerEl(compView) {\n return this._getLocalEl(CanvasView.offsetEl, compView, 'getOffsetViewerEl');\n },\n\n /**\n * Returns fixed offset viewer element\n * @returns {HTMLElement}\n * @private\n */\n getFixedOffsetViewerEl() {\n return CanvasView.fixedOffsetEl;\n },\n\n render() {\n CanvasView && CanvasView.remove();\n CanvasView = new canvasView({\n model: canvas,\n config: c,\n });\n return CanvasView.render().el;\n },\n\n /**\n * Get frame position\n * @returns {Object}\n * @private\n */\n getOffset() {\n var frameOff = this.offset(this.getFrameEl());\n var canvasOff = this.offset(this.getElement());\n return {\n top: frameOff.top - canvasOff.top,\n left: frameOff.left - canvasOff.left,\n };\n },\n\n /**\n * Get the offset of the passed component element\n * @param {HTMLElement} el\n * @returns {Object}\n * @private\n */\n offset(el) {\n return CanvasView.offset(el);\n },\n\n /**\n * Set custom badge naming strategy\n * @param {Function} f\n * @example\n * canvas.setCustomBadgeLabel(function(component){\n * return component.getName();\n * });\n */\n setCustomBadgeLabel(f) {\n c.customBadgeLabel = f;\n },\n\n /**\n * Get element position relative to the canvas\n * @param {HTMLElement} el\n * @returns {Object}\n * @private\n */\n getElementPos(el, opts) {\n return CanvasView.getElementPos(el, opts);\n },\n\n /**\n * Returns element's offsets like margins and paddings\n * @param {HTMLElement} el\n * @returns {Object}\n * @private\n */\n getElementOffsets(el) {\n return CanvasView.getElementOffsets(el);\n },\n\n /**\n * Get canvas rectangular data\n * @returns {Object}\n */\n getRect() {\n const { top, left } = CanvasView.getPosition();\n return {\n ...CanvasView.getCanvasOffset(),\n topScroll: top,\n leftScroll: left,\n };\n },\n\n /**\n * This method comes handy when you need to attach something like toolbars\n * to elements inside the canvas, dealing with all relative position,\n * offsets, etc. and returning as result the object with positions which are\n * viewable by the user (when the canvas is scrolled the top edge of the element\n * is not viewable by the user anymore so the new top edge is the one of the canvas)\n *\n * The target should be visible before being passed here as invisible elements\n * return empty string as width\n * @param {HTMLElement} target The target in this case could be the toolbar\n * @param {HTMLElement} element The element on which I'd attach the toolbar\n * @param {Object} options Custom options\n * @param {Boolean} options.toRight Set to true if you want the toolbar attached to the right\n * @return {Object}\n * @private\n */\n getTargetToElementDim(target, element, options = {}) {\n var opts = options || {};\n var canvasPos = CanvasView.getPosition();\n if (!canvasPos) return;\n var pos = opts.elPos || CanvasView.getElementPos(element);\n var toRight = options.toRight || 0;\n var targetHeight = opts.targetHeight || target.offsetHeight;\n var targetWidth = opts.targetWidth || target.offsetWidth;\n var eventToTrigger = opts.event || null;\n\n var elTop = pos.top - targetHeight;\n var elLeft = pos.left;\n elLeft += toRight ? pos.width : 0;\n elLeft = toRight ? elLeft - targetWidth : elLeft;\n\n var leftPos = elLeft < canvasPos.left ? canvasPos.left : elLeft;\n var topPos = elTop < canvasPos.top ? canvasPos.top : elTop;\n topPos = topPos > pos.top + pos.height ? pos.top + pos.height : topPos;\n\n var result = {\n top: topPos,\n left: leftPos,\n elementTop: pos.top,\n elementLeft: pos.left,\n elementWidth: pos.width,\n elementHeight: pos.height,\n targetWidth: target.offsetWidth,\n targetHeight: target.offsetHeight,\n canvasTop: canvasPos.top,\n canvasLeft: canvasPos.left,\n canvasWidth: canvasPos.width,\n canvasHeight: canvasPos.height,\n };\n\n // In this way I can catch data and also change the position strategy\n if (eventToTrigger && c.em) {\n c.em.trigger(eventToTrigger, result);\n }\n\n return result;\n },\n\n canvasRectOffset(el, pos, opts = {}) {\n const getFrameElFromDoc = doc => {\n const { defaultView } = doc;\n return defaultView && defaultView.frameElement;\n };\n\n const rectOff = (el, top = 1, pos) => {\n const zoom = this.em.getZoomDecimal();\n const side = top ? 'top' : 'left';\n const doc = el.ownerDocument;\n const { offsetTop = 0, offsetLeft = 0 } = opts.offset ? getFrameElFromDoc(doc) : {};\n const { scrollTop = 0, scrollLeft = 0 } = doc.body || {};\n const scroll = top ? scrollTop : scrollLeft;\n const offset = top ? offsetTop : offsetLeft;\n\n // if (!top) {\n // console.log('LEFT', { posLeft: pos[side], scroll, offset }, el);\n // }\n\n return pos[side] - (scroll - offset) * zoom;\n };\n\n return {\n top: rectOff(el, 1, pos),\n left: rectOff(el, 0, pos),\n };\n },\n\n getTargetToElementFixed(el, elToMove, opts = {}) {\n const pos = opts.pos || this.getElementPos(el);\n const cvOff = opts.canvasOff || this.canvasRectOffset(el, pos);\n const toolbarH = elToMove.offsetHeight || 0;\n const toolbarW = elToMove.offsetWidth || 0;\n const elRight = pos.left + pos.width;\n const cv = this.getCanvasView();\n const frCvOff = cv.getPosition();\n const frameOffset = cv.getFrameOffset(el);\n const { event } = opts;\n\n let top = -toolbarH;\n let left = !isUndefined(opts.left) ? opts.left : pos.width - toolbarW;\n left = pos.left < -left ? -pos.left : left;\n left = elRight > frCvOff.width ? left - (elRight - frCvOff.width) : left;\n\n // Scroll with the window if the top edge is reached and the\n // element is bigger than the canvas\n const fullHeight = pos.height + toolbarH;\n const elIsShort = fullHeight < frameOffset.height;\n\n if (cvOff.top < toolbarH) {\n if (elIsShort) {\n top = top + fullHeight;\n } else {\n top = -cvOff.top < pos.height ? -cvOff.top : pos.height;\n }\n }\n\n const result = {\n top,\n left,\n canvasOffsetTop: cvOff.top,\n canvasOffsetLeft: cvOff.left,\n };\n\n // In this way I can catch data and also change the position strategy\n event && this.em.trigger(event, result);\n\n return result;\n },\n\n /**\n * Instead of simply returning e.clientX and e.clientY this function\n * calculates also the offset based on the canvas. This is helpful when you\n * need to get X and Y position while moving between the editor area and\n * canvas area, which is in the iframe\n * @param {Event} e\n * @return {Object}\n * @private\n */\n getMouseRelativePos(e, options) {\n var opts = options || {};\n var addTop = 0;\n var addLeft = 0;\n var subWinOffset = opts.subWinOffset;\n var doc = e.target.ownerDocument;\n var win = doc.defaultView || doc.parentWindow;\n var frame = win.frameElement;\n var yOffset = subWinOffset ? win.pageYOffset : 0;\n var xOffset = subWinOffset ? win.pageXOffset : 0;\n\n if (frame) {\n var frameRect = frame.getBoundingClientRect();\n addTop = frameRect.top || 0;\n addLeft = frameRect.left || 0;\n }\n\n return {\n y: e.clientY + addTop - yOffset,\n x: e.clientX + addLeft - xOffset,\n };\n },\n\n /**\n * X and Y mouse position relative to the canvas\n * @param {Event} ev\n * @return {Object}\n * @private\n */\n getMouseRelativeCanvas(ev, opts) {\n const zoom = this.getZoomDecimal();\n const { top, left } = CanvasView.getPosition(opts);\n\n return {\n y: ev.clientY * zoom + top,\n x: ev.clientX * zoom + left,\n };\n },\n\n /**\n * Check if the canvas is focused\n * @returns {Boolean}\n */\n hasFocus() {\n return this.getDocument().hasFocus();\n },\n\n /**\n * Detects if some input is focused (input elements, text components, etc.)\n * @return {Boolean}\n * @private\n */\n isInputFocused() {\n const doc = this.getDocument();\n const frame = this.getFrameEl();\n const toIgnore = ['body', ...this.getConfig().notTextable];\n const docActive = frame && document.activeElement === frame;\n const focused = docActive ? doc && doc.activeElement : document.activeElement;\n\n return focused && !toIgnore.some(item => focused.matches(item));\n },\n\n /**\n * Scroll canvas to the element if it's not visible. The scrolling is\n * executed via `scrollIntoView` API and options of this method are\n * passed to it. For instance, you can scroll smoothly by using\n * `{ behavior: 'smooth' }`.\n * @param {HTMLElement|[Component]} el\n * @param {Object} [opts={}] Options, same as options for `scrollIntoView`\n * @param {Boolean} [opts.force=false] Force the scroll, even if the element is already visible\n * @example\n * const selected = editor.getSelected();\n * // Scroll smoothly (this behavior can be polyfilled)\n * canvas.scrollTo(selected, { behavior: 'smooth' });\n * // Force the scroll, even if the element is alredy visible\n * canvas.scrollTo(selected, { force: true });\n */\n scrollTo(el, opts = {}) {\n const elem = getElement(el);\n const view = elem && getViewEl(elem);\n view && view.scrollIntoView(opts);\n },\n\n /**\n * Start autoscroll\n * @private\n */\n startAutoscroll(frame) {\n const fr = (frame && frame.view) || this.em.getCurrentFrame();\n fr && fr.startAutoscroll();\n },\n\n /**\n * Stop autoscroll\n * @private\n */\n stopAutoscroll(frame) {\n const fr = (frame && frame.view) || this.em.getCurrentFrame();\n fr && fr.stopAutoscroll();\n },\n\n /**\n * Set canvas zoom value\n * @param {Number} value The zoom value, from 0 to 100\n * @returns {this}\n * @example\n * canvas.setZoom(50); // set zoom to 50%\n */\n setZoom(value) {\n canvas.set('zoom', parseFloat(value));\n return this;\n },\n\n /**\n * Get canvas zoom value\n * @returns {Number}\n * @example\n * canvas.setZoom(50); // set zoom to 50%\n * const zoom = canvas.getZoom(); // 50\n */\n getZoom() {\n return parseFloat(canvas.get('zoom'));\n },\n\n /**\n * Set canvas position coordinates\n * @param {Number} x Horizontal position\n * @param {Number} y Vertical position\n * @returns {this}\n * @example\n * canvas.setCoords(100, 100);\n */\n setCoords(x, y) {\n canvas.set({ x: parseFloat(x), y: parseFloat(y) });\n return this;\n },\n\n /**\n * Get canvas position coordinates\n * @returns {Object} Object containing coordinates\n * @example\n * canvas.setCoords(100, 100);\n * const coords = canvas.getCoords();\n * // { x: 100, y: 100 }\n */\n getCoords() {\n const { x, y } = canvas.attributes;\n return { x, y };\n },\n\n getZoomDecimal() {\n return this.getZoom() / 100;\n },\n\n getZoomMultiplier() {\n const zoom = this.getZoomDecimal();\n return zoom ? 1 / zoom : 1;\n },\n\n toggleFramesEvents(on) {\n const { style } = this.getFramesEl();\n style.pointerEvents = on ? '' : 'none';\n },\n\n getFrames() {\n return canvas.get('frames').map(item => item);\n },\n\n /**\n * Add new frame to the canvas\n * @param {Object} props Frame properties\n * @returns {[Frame]}\n * @example\n * canvas.addFrame({\n * name: 'Mobile home page',\n * x: 100, // Position in canvas\n * y: 100,\n * width: 500, // Frame dimensions\n * height: 600,\n * // device: 'DEVICE-ID',\n * components: [\n * '

Title frame

',\n * '

Paragraph frame

',\n * ],\n * styles: `\n * .testh { color: red; }\n * .testp { color: blue; }\n * `,\n * });\n */\n addFrame(props = {}, opts = {}) {\n return canvas.get('frames').add(\n {\n ...props,\n },\n {\n ...opts,\n em: this.em,\n }\n );\n },\n\n destroy() {\n canvas.stopListening();\n CanvasView && CanvasView.remove();\n [c, canvas, CanvasView].forEach(i => (i = {}));\n ['em', 'model', 'droppable'].forEach(i => (this[i] = {}));\n },\n };\n};\n","import { result, forEach, isEmpty, isString } from 'underscore';\nimport { Model } from '../../common';\nimport { isComponent, isObject } from '../../utils/mixins';\n\nconst keyAutoW = '__aw';\nconst keyAutoH = '__ah';\n\n/**\n * @property {Object|String} component Wrapper component definition. You can also pass an HTML string as components of the default wrapper component.\n * @property {String} [width=''] Width of the frame. By default, the canvas width will be taken.\n * @property {String} [height=''] Height of the frame. By default, the canvas height will be taken.\n * @property {Number} [x=0] Horizontal position of the frame in the canvas.\n * @property {Number} [y=0] Vertical position of the frame in the canvas.\n *\n */\nexport default class Frame extends Model {\n defaults() {\n return {\n x: 0,\n y: 0,\n changesCount: 0,\n attributes: {},\n width: null,\n height: null,\n head: [],\n component: '',\n styles: '',\n _undo: true,\n _undoexc: ['changesCount'],\n };\n }\n\n initialize(props, opts = {}) {\n const { config } = opts;\n const { em } = config;\n const { styles, component } = this.attributes;\n const domc = em.get('DomComponents');\n const conf = domc.getConfig();\n const allRules = em.get('CssComposer').getAll();\n const idMap = {};\n this.em = em;\n const modOpts = { em, config: conf, frame: this, idMap };\n\n if (!isComponent(component)) {\n const wrp = isObject(component) ? component : { components: component };\n !wrp.type && (wrp.type = 'wrapper');\n const Wrapper = domc.getType('wrapper').model;\n this.set('component', new Wrapper(wrp, modOpts));\n }\n\n if (!styles) {\n this.set('styles', allRules);\n } else if (!isObject(styles)) {\n // Avoid losing styles on remapped components\n const idMapKeys = Object.keys(idMap);\n if (idMapKeys.length && Array.isArray(styles)) {\n styles.forEach(style => {\n const sel = style.selectors;\n if (sel && sel.length == 1) {\n const sSel = sel[0];\n const idSel = sSel.name && sSel.type === 2 && sSel;\n if (idSel && idMap[idSel.name]) {\n idSel.name = idMap[idSel.name];\n } else if (isString(sSel) && sSel[0] === '#') {\n const prevId = sSel.substring(1);\n if (prevId && idMap[prevId]) {\n sel[0] = `#${idMap[prevId]}`;\n }\n }\n }\n });\n }\n\n allRules.add(styles);\n this.set('styles', allRules);\n }\n\n !props.width && this.set(keyAutoW, 1);\n !props.height && this.set(keyAutoH, 1);\n }\n\n onRemove() {\n this.getComponent().remove({ root: 1 });\n }\n\n changesUp(opt = {}) {\n if (opt.temporary || opt.noCount || opt.avoidStore) {\n return;\n }\n this.set('changesCount', this.get('changesCount') + 1);\n }\n\n getComponent() {\n return this.get('component');\n }\n\n getStyles() {\n return this.get('styles');\n }\n\n disable() {\n this.trigger('disable');\n }\n\n remove() {\n this.view = 0;\n const coll = this.collection;\n return coll && coll.remove(this);\n }\n\n getHead() {\n const head = this.get('head') || [];\n return [...head];\n }\n\n setHead(value) {\n return this.set('head', [...value]);\n }\n\n addHeadItem(item) {\n const head = this.getHead();\n head.push(item);\n this.setHead(head);\n }\n\n getHeadByAttr(attr, value, tag) {\n const head = this.getHead();\n return head.filter(item => item.attributes && item.attributes[attr] == value && (!tag || tag === item.tag))[0];\n }\n\n removeHeadByAttr(attr, value, tag) {\n const head = this.getHead();\n const item = this.getHeadByAttr(attr, value, tag);\n const index = head.indexOf(item);\n\n if (index >= 0) {\n head.splice(index, 1);\n this.setHead(head);\n }\n }\n\n addLink(href) {\n const tag = 'link';\n !this.getHeadByAttr('href', href, tag) &&\n this.addHeadItem({\n tag,\n attributes: {\n href,\n rel: 'stylesheet',\n },\n });\n }\n\n removeLink(href) {\n this.removeHeadByAttr('href', href, 'link');\n }\n\n addScript(src) {\n const tag = 'script';\n !this.getHeadByAttr('src', src, tag) &&\n this.addHeadItem({\n tag,\n attributes: { src },\n });\n }\n\n removeScript(src) {\n this.removeHeadByAttr('src', src, 'script');\n }\n\n getPage() {\n const coll = this.collection;\n return coll && coll.page;\n }\n\n _emitUpdated(data = {}) {\n this.em.trigger('frame:updated', { frame: this, ...data });\n }\n\n toJSON(opts = {}) {\n const obj = Model.prototype.toJSON.call(this, opts);\n const defaults = result(this, 'defaults');\n\n if (opts.fromUndo) delete obj.component;\n delete obj.styles;\n delete obj.changesCount;\n obj[keyAutoW] && delete obj.width;\n obj[keyAutoH] && delete obj.height;\n\n // Remove private keys\n forEach(obj, (value, key) => {\n key.indexOf('_') === 0 && delete obj[key];\n });\n\n forEach(defaults, (value, key) => {\n if (obj[key] === value) delete obj[key];\n });\n\n forEach(['attributes', 'head'], prop => {\n if (isEmpty(obj[prop])) delete obj[prop];\n });\n\n return obj;\n }\n}\n","import { bindAll } from 'underscore';\nimport { Collection } from '../../common';\nimport Frame from './Frame';\n\nexport default class Frames extends Collection {\n initialize(models, config = {}) {\n bindAll(this, 'itemLoaded');\n this.config = config;\n this.on('reset', this.onReset);\n this.on('remove', this.onRemove);\n }\n\n onReset(m, opts = {}) {\n const prev = opts.previousModels || [];\n prev.map(p => this.onRemove(p));\n }\n\n onRemove(removed) {\n removed && removed.onRemove();\n }\n\n itemLoaded() {\n this.loadedItems++;\n\n if (this.loadedItems >= this.itemsToLoad) {\n this.trigger('loaded:all');\n this.listenToLoadItems(0);\n }\n }\n\n listenToLoad() {\n this.loadedItems = 0;\n this.itemsToLoad = this.length;\n this.listenToLoadItems(1);\n }\n\n listenToLoadItems(on) {\n this.forEach(item => item[on ? 'on' : 'off']('loaded', this.itemLoaded));\n }\n\n add(m, o = {}) {\n const { config } = this;\n return Collection.prototype.add.call(this, m, { ...o, config });\n }\n}\n\nFrames.prototype.model = Frame;\n","export default {\n // Style prefix\n stylePrefix: 'cm-',\n\n inlineCss: false\n};\n","import { Model } from '../../common';\n\nexport default class HTMLGenerator extends Model {\n build(model, opts = {}) {\n const htmlOpts = {};\n const { em } = opts;\n\n // Remove unnecessary IDs\n if (opts.cleanId && em) {\n const rules = em.get('CssComposer').getAll();\n const idRules = rules\n .toJSON()\n .map(rule => {\n const sels = rule.selectors;\n const sel = sels && sels.length === 1 && sels.models[0];\n return sel && sel.isId() && sel.get('name');\n })\n .filter(i => i);\n\n htmlOpts.attributes = (mod, attrs) => {\n const { id } = attrs;\n if (\n id &&\n id[0] === 'i' && // all autogenerated IDs start with 'i'\n !mod.get('script') && // if the component has script, we have to leave the ID\n !mod.get('attributes').id && // id is not intentionally in attributes\n idRules.indexOf(id) < 0 // we shouldn't have any rule with this ID\n ) {\n delete attrs.id;\n }\n return attrs;\n };\n }\n\n return model.toHTML(htmlOpts);\n }\n}\n","import { each } from 'underscore';\nimport { Model, Collection } from '../../common';\n\nexport default class JsonGenerator extends Model {\n build(model) {\n var json = model.toJSON();\n this.beforeEach(json);\n\n each(\n json,\n function (v, attr) {\n var obj = json[attr];\n if (obj instanceof Model) {\n json[attr] = this.build(obj);\n } else if (obj instanceof Collection) {\n var coll = obj;\n json[attr] = [];\n if (coll.length) {\n coll.each(function (el, index) {\n json[attr][index] = this.build(el);\n }, this);\n }\n }\n },\n this\n );\n\n return json;\n }\n\n /**\n * Execute on each object\n * @param {Object} obj\n */\n beforeEach(obj) {\n delete obj.status;\n }\n}\n","import { bindAll } from 'underscore';\nimport { Model } from '../../common';\nimport { hasWin } from '../../utils/mixins';\n\nlet CodeMirror;\n\nif (hasWin()) {\n CodeMirror = require('codemirror/lib/codemirror');\n require('codemirror/mode/htmlmixed/htmlmixed');\n require('codemirror/mode/css/css');\n require('codemirror-formatting');\n}\n\nexport default class CodeMirrorEditor extends Model {\n defaults() {\n return {\n input: '',\n label: '',\n codeName: '',\n theme: 'hopscotch',\n readOnly: true,\n lineNumbers: true,\n };\n }\n\n init(el) {\n bindAll(this, 'onChange');\n this.editor = CodeMirror.fromTextArea(el, {\n dragDrop: false,\n lineWrapping: true,\n mode: this.get('codeName'),\n ...this.attributes,\n });\n this.element = el;\n this.editor.on('change', this.onChange);\n\n return this;\n }\n\n onChange() {\n this.trigger('update', this);\n }\n\n getEditor() {\n return this.editor;\n }\n\n /**\n * The element where the viewer is attached\n * @return {HTMLElement}\n */\n getElement() {\n return this.element;\n }\n\n /**\n * Set the element which contains the viewer attached.\n * Generally, it should be just a textarea, but some editor might require\n * a container for it some in that case this method can be used\n * @param {HTMLElement} el\n * @return {self}\n */\n setElement(el) {\n this.element = el;\n return this;\n }\n\n /**\n * Refresh the viewer\n * @return {self}\n */\n refresh() {\n this.getEditor().refresh();\n return this;\n }\n\n /**\n * Focus the viewer\n * @return {self}\n */\n focus() {\n this.getEditor().focus();\n return this;\n }\n\n getContent() {\n const ed = this.getEditor();\n return ed && ed.getValue();\n }\n\n /** @inheritdoc */\n setContent(v, opts = {}) {\n const { editor } = this;\n if (!editor) return;\n editor.setValue(v);\n\n if (editor.autoFormatRange) {\n CodeMirror.commands.selectAll(editor);\n editor.autoFormatRange(editor.getCursor(true), editor.getCursor(false));\n CodeMirror.commands.goDocStart(editor);\n }\n\n !opts.noRefresh && setTimeout(() => this.refresh());\n }\n}\n\nCodeMirrorEditor.prototype.CodeMirror = CodeMirror;\n","import { extend } from 'underscore';\nimport { Model } from '../../common';\n\nfunction isFunctionEmpty(fn) {\n const content = fn.toString().match(/\\{([\\s\\S]*)\\}/m)[1]; // content between first and last { }\n return content.replace(/^\\s*\\/\\/.*$/gm, '').trim().length === 0; // remove comments\n}\n\nexport default class JsGenerator extends Model {\n mapModel(model) {\n var code = '';\n var script = model.get('script-export') || model.get('script');\n var type = model.get('type');\n var comps = model.get('components');\n var id = model.getId();\n\n if (script) {\n // If the component has scripts we need to expose his ID\n var attr = model.get('attributes');\n attr = extend({}, attr, { id });\n model.set('attributes', attr, { silent: 1 });\n var scrStr = model.getScriptString(script);\n const scrProps = model.get('script-props');\n\n // If the script was updated, I'll put its code in a separate container\n if (model.get('scriptUpdated') && !scrProps) {\n this.mapJs[type + '-' + id] = { ids: [id], code: scrStr };\n } else {\n let props;\n const mapType = this.mapJs[type];\n\n if (scrProps) {\n props = model.__getScriptProps();\n }\n\n if (mapType) {\n mapType.ids.push(id);\n if (props) mapType.props[id] = props;\n } else {\n const res = { ids: [id], code: scrStr };\n if (props) res.props = { [id]: props };\n this.mapJs[type] = res;\n }\n }\n }\n\n comps.each(function (model) {\n code += this.mapModel(model);\n }, this);\n\n return code;\n }\n\n build(model) {\n this.mapJs = {};\n this.mapModel(model);\n let code = '';\n\n for (let type in this.mapJs) {\n const mapType = this.mapJs[type];\n\n if (!mapType.code) {\n continue;\n }\n\n if (mapType.props) {\n if (isFunctionEmpty(mapType.code)) {\n continue;\n }\n\n code += `\n var props = ${JSON.stringify(mapType.props)};\n var ids = Object.keys(props).map(function(id) { return '#'+id }).join(',');\n var els = document.querySelectorAll(ids);\n for (var i = 0, len = els.length; i < len; i++) {\n var el = els[i];\n (${mapType.code}.bind(el))(props[el.id]);\n }`;\n } else {\n // Deprecated\n const ids = '#' + mapType.ids.join(', #');\n code += `\n var items = document.querySelectorAll('${ids}');\n for (var i = 0, len = items.length; i < len; i++) {\n (function(){\\n${mapType.code}\\n}.bind(items[i]))();\n }`;\n }\n }\n\n return code;\n }\n}\n","import { View } from '../../common';\nimport html from '../../utils/html';\n\nexport default class EditorView extends View {\n template({ pfx, codeName, label }) {\n return html`\n
\n
${label}
\n
\n
\n `;\n }\n\n initialize(o) {\n this.config = o.config || {};\n this.pfx = this.config.stylePrefix;\n }\n\n render() {\n const { model, pfx, $el } = this;\n const obj = model.toJSON();\n obj.pfx = pfx;\n $el.html(this.template(obj));\n $el.attr('class', `${pfx}editor-c`);\n $el.find(`#${pfx}code`).append(model.get('input'));\n return this;\n }\n}\n","/**\n * - [addGenerator](#addgenerator)\n * - [getGenerator](#getgenerator)\n * - [getGenerators](#getgenerators)\n * - [addViewer](#addviewer)\n * - [getViewer](#getviewer)\n * - [getViewers](#getviewers)\n * - [updateViewer](#updateviewer)\n * - [getCode](#getcode)\n *\n *\n * Before using methods you should get first the module from the editor instance, in this way:\n *\n * ```js\n * var codeManager = editor.CodeManager;\n * ```\n *\n * @module CodeManager\n */\nimport { isUndefined } from 'underscore';\nimport defaults from './config/config';\nimport gHtml from './model/HtmlGenerator';\nimport gCss from './model/CssGenerator';\nimport gJson from './model/JsonGenerator';\nimport gJs from './model/JsGenerator';\nimport eCM from './model/CodeMirrorEditor';\nimport editorView from './view/EditorView';\n\nexport default () => {\n var c = {};\n var generators = {},\n defGenerators = {},\n viewers = {},\n defViewers = {};\n\n const defaultViewer = 'CodeMirror';\n\n return {\n getConfig() {\n return c;\n },\n\n config: c,\n\n EditorView: editorView,\n\n /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'CodeManager',\n\n /**\n * Initialize module. Automatically called with a new instance of the editor\n * @param {Object} config Configurations\n */\n init(config) {\n c = config || {};\n for (var name in defaults) {\n if (!(name in c)) c[name] = defaults[name];\n }\n\n var ppfx = c.pStylePrefix;\n if (ppfx) c.stylePrefix = ppfx + c.stylePrefix;\n\n defGenerators.html = new gHtml();\n defGenerators.css = new gCss();\n defGenerators.json = new gJson();\n defGenerators.js = new gJs();\n defViewers.CodeMirror = new eCM();\n this.loadDefaultGenerators().loadDefaultViewers();\n\n return this;\n },\n\n /**\n * Add new code generator to the collection\n * @param {string} id Code generator ID\n * @param {Object} generator Code generator wrapper\n * @param {Function} generator.build Function that builds the code\n * @return {this}\n * @example\n * codeManager.addGenerator('html7',{\n * build: function(model){\n * return 'myCode';\n * }\n * });\n * */\n addGenerator(id, generator) {\n generators[id] = generator;\n return this;\n },\n\n /**\n * Get code generator by id\n * @param {string} id Code generator ID\n * @return {Object|null}\n * @example\n * var generator = codeManager.getGenerator('html7');\n * generator.build = function(model){\n * //extend\n * };\n * */\n getGenerator(id) {\n return generators[id] || null;\n },\n\n /**\n * Returns all code generators\n * @return {Array}\n * */\n getGenerators() {\n return generators;\n },\n\n /**\n * Add new code viewer\n * @param {string} id Code viewer ID\n * @param {Object} viewer Code viewer wrapper\n * @param {Function} viewer.init Set element on which viewer will be displayed\n * @param {Function} viewer.setContent Set content to the viewer\n * @return {this}\n * @example\n * codeManager.addViewer('ace',{\n * init: function(el){\n * var ace = require('ace-editor');\n * this.editor = ace.edit(el.id);\n * },\n * setContent: function(code){\n * this.editor.setValue(code);\n * }\n * });\n * */\n addViewer(id, viewer) {\n viewers[id] = viewer;\n return this;\n },\n\n /**\n * Get code viewer by id\n * @param {string} id Code viewer ID\n * @return {Object|null}\n * @example\n * var viewer = codeManager.getViewer('ace');\n * */\n getViewer(id) {\n return viewers[id] || null;\n },\n\n /**\n * Returns all code viewers\n * @return {Array}\n * */\n getViewers() {\n return viewers;\n },\n\n createViewer(opts = {}) {\n const type = !isUndefined(opts.type) ? opts.type : defaultViewer;\n const viewer = this.getViewer(type) && this.getViewer(type).clone();\n const cont = document.createElement('div');\n const txtarea = document.createElement('textarea');\n cont.appendChild(txtarea);\n viewer.set(opts);\n viewer.init(txtarea);\n viewer.setElement(cont);\n\n return viewer;\n },\n\n /**\n * Update code viewer content\n * @param {Object} viewer Viewer instance\n * @param {string} code Code string\n * @example\n * var AceViewer = codeManager.getViewer('ace');\n * // ...\n * var viewer = AceViewer.init(el);\n * // ...\n * codeManager.updateViewer(AceViewer, 'code');\n * */\n updateViewer(viewer, code) {\n viewer.setContent(code);\n },\n\n /**\n * Get code from model\n * @param {Object} model Any kind of model that will be passed to the build method of generator\n * @param {string} genId Code generator id\n * @param {Object} [opt] Options\n * @return {string}\n * @example\n * var codeStr = codeManager.getCode(model, 'html');\n * */\n getCode(model, genId, opt = {}) {\n opt.em = c.em;\n var generator = this.getGenerator(genId);\n return generator ? generator.build(model, opt) : '';\n },\n\n /**\n * Load default code generators\n * @return {this}\n * @private\n * */\n loadDefaultGenerators() {\n for (var id in defGenerators) this.addGenerator(id, defGenerators[id]);\n\n return this;\n },\n\n /**\n * Load default code viewers\n * @return {this}\n * @private\n * */\n loadDefaultViewers() {\n for (var id in defViewers) this.addViewer(id, defViewers[id]);\n\n return this;\n },\n\n destroy() {\n [c, generators, defGenerators, viewers, defViewers].forEach(\n i => (i = {})\n );\n }\n };\n};\n","import { bindAll, isUndefined, each } from 'underscore';\nimport { Model } from '../../common';\nimport { hasWin } from '../../utils/mixins';\n\nconst maxValue = Number.MAX_VALUE;\n\nexport const getMediaLength = mediaQuery => {\n const length = /(-?\\d*\\.?\\d+)\\w{0,}/.exec(mediaQuery);\n return !length ? '' : length[0];\n};\n\nexport default class CssGenerator extends Model {\n initialize() {\n bindAll(this, 'sortRules');\n this.compCls = [];\n this.ids = [];\n }\n\n /**\n * Get CSS from a component\n * @param {Model} model\n * @return {String}\n */\n buildFromModel(model, opts = {}) {\n let code = '';\n const em = this.em;\n const avoidInline = em && em.getConfig('avoidInlineStyle');\n const style = model.styleToString();\n const classes = model.get('classes');\n this.ids.push(`#${model.getId()}`);\n\n // Let's know what classes I've found\n classes.each(model => this.compCls.push(model.getFullName()));\n\n if (!avoidInline && style) {\n code = `#${model.getId()}{${style}}`;\n }\n\n const components = model.components();\n components.each(model => (code += this.buildFromModel(model, opts)));\n return code;\n }\n\n build(model, opts = {}) {\n const { json } = opts;\n const em = opts.em || '';\n const cssc = opts.cssc || (em && em.get('CssComposer'));\n this.em = em;\n this.compCls = [];\n this.ids = [];\n this.model = model;\n const codeJson = [];\n let code = model ? this.buildFromModel(model, opts) : '';\n const clearStyles = isUndefined(opts.clearStyles) && em ? em.getConfig('clearStyles') : opts.clearStyles;\n\n if (cssc) {\n let rules = opts.rules || cssc.getAll();\n const atRules = {};\n const dump = [];\n\n if (opts.onlyMatched && model && hasWin()) {\n rules = this.matchedRules(model, rules);\n }\n\n rules.forEach(rule => {\n const atRule = rule.getAtRule();\n\n if (atRule) {\n const mRules = atRules[atRule];\n if (mRules) {\n mRules.push(rule);\n } else {\n atRules[atRule] = [rule];\n }\n return;\n }\n\n const res = this.buildFromRule(rule, dump, opts);\n\n if (json) {\n codeJson.push(res);\n } else {\n code += res;\n }\n });\n\n this.sortMediaObject(atRules).forEach(item => {\n let rulesStr = '';\n const atRule = item.key;\n const mRules = item.value;\n\n mRules.forEach(rule => {\n const ruleStr = this.buildFromRule(rule, dump, opts);\n\n if (rule.get('singleAtRule')) {\n code += `${atRule}{${ruleStr}}`;\n } else {\n rulesStr += ruleStr;\n }\n\n json && codeJson.push(ruleStr);\n });\n\n if (rulesStr) {\n code += `${atRule}{${rulesStr}}`;\n }\n });\n\n em && clearStyles && rules.remove && rules.remove(dump);\n }\n\n return json ? codeJson.filter(r => r) : code;\n }\n\n /**\n * Get CSS from the rule model\n * @param {Model} rule\n * @return {string} CSS string\n */\n buildFromRule(rule, dump, opts = {}) {\n let result = '';\n const { model } = this;\n const selectorStrNoAdd = rule.selectorsToString({ skipAdd: 1 });\n const selectorsAdd = rule.get('selectorsAdd');\n const singleAtRule = rule.get('singleAtRule');\n let found;\n\n // This will not render a rule if there is no its component\n rule.get('selectors').each(selector => {\n const name = selector.getFullName();\n if (this.compCls.indexOf(name) >= 0 || this.ids.indexOf(name) >= 0 || opts.keepUnusedStyles) {\n found = 1;\n }\n });\n\n if ((selectorStrNoAdd && found) || selectorsAdd || singleAtRule || !model) {\n const block = rule.getDeclaration({ body: 1 });\n block && (opts.json ? (result = rule) : (result += block));\n } else {\n dump.push(rule);\n }\n\n return result;\n }\n\n /**\n * Get matched rules of a component\n * @param {Component} component\n * @param {Array} rules\n * @returns {Array}\n */\n matchedRules(component, rules) {\n const el = component.getEl();\n let result = [];\n\n rules.forEach(rule => {\n try {\n if (\n rule\n .selectorsToString()\n .split(',')\n .some(selector => el.matches(this.__cleanSelector(selector)))\n ) {\n result.push(rule);\n }\n } catch (err) {}\n });\n\n component.components().forEach(component => {\n result = result.concat(this.matchedRules(component, rules));\n });\n\n // Remove duplicates\n result = result.filter((rule, i) => result.indexOf(rule) === i);\n\n return result;\n }\n\n /**\n * Get the numeric length of the media query string\n * @param {String} mediaQuery Media query string\n * @return {Number}\n */\n getQueryLength(mediaQuery) {\n const length = /(-?\\d*\\.?\\d+)\\w{0,}/.exec(mediaQuery);\n if (!length) return maxValue;\n\n return parseFloat(length[1]);\n }\n\n /**\n * Return a sorted array from media query object\n * @param {Object} items\n * @return {Array}\n */\n sortMediaObject(items = {}) {\n const itemsArr = [];\n each(items, (value, key) => itemsArr.push({ key, value }));\n return itemsArr.sort((a, b) => {\n const isMobFirst = [a.key, b.key].every(mquery => mquery.indexOf('min-width') !== -1);\n const left = isMobFirst ? a.key : b.key;\n const right = isMobFirst ? b.key : a.key;\n return this.getQueryLength(left) - this.getQueryLength(right);\n });\n }\n\n sortRules(a, b) {\n const getKey = rule => rule.get('mediaText');\n const isMobFirst = [getKey(a), getKey(b)].every(q => q.indexOf('min-width') !== -1);\n const left = isMobFirst ? getKey(a) : getKey(b);\n const right = isMobFirst ? getKey(b) : getKey(a);\n return this.getQueryLength(left) - this.getQueryLength(right);\n }\n\n /**\n * Return passed selector without states\n * @param {String} selector\n * @returns {String}\n * @private\n */\n __cleanSelector(selector) {\n return selector\n .split(' ')\n .map(item => item.split(':')[0])\n .join(' ');\n }\n}\n","export default {\n stylePrefix: 'com-',\n\n // Default array of commands\n defaults: [],\n\n // If true, stateful commands (with `run` and `stop` methods) can't be runned multiple times.\n // So, if the command is already active, running it again will not execute the `run` method\n strict: 1\n};\n","/**\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/commands/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * commands: {\n * // options\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API and listen to its events. Before using these methods, you should get the module from the instance.\n *\n * ```js\n * // Listen to events\n * editor.on('run', () => { ... });\n *\n * // Use the API\n * const commands = editor.Commands;\n * commands.add(...);\n * ```\n *\n ** ## Available Events\n * * `run:{commandName}` - Triggered when some command is called to run (eg. editor.runCommand('preview'))\n * * `stop:{commandName}` - Triggered when some command is called to stop (eg. editor.stopCommand('preview'))\n * * `run:{commandName}:before` - Triggered before the command is called\n * * `stop:{commandName}:before` - Triggered before the command is called to stop\n * * `abort:{commandName}` - Triggered when the command execution is aborted (`editor.on(`run:preview:before`, opts => opts.abort = 1);`)\n * * `run` - Triggered on run of any command. The id and the result are passed as arguments to the callback\n * * `stop` - Triggered on stop of any command. The id and the result are passed as arguments to the callback\n *\n * ## Methods\n * * [add](#add)\n * * [get](#get)\n * * [getAll](#getall)\n * * [extend](#extend)\n * * [has](#has)\n * * [run](#run)\n * * [stop](#stop)\n * * [isActive](#isactive)\n * * [getActive](#getactive)\n *\n * @module Commands\n */\n\nimport { isFunction, includes } from 'underscore';\nimport CommandAbstract from './view/CommandAbstract';\nimport defaults from './config/config';\nimport { eventDrag } from '../dom_components/model/Component';\n\nconst commandsDef = [\n ['preview', 'Preview', 'preview'],\n ['resize', 'Resize', 'resize'],\n ['fullscreen', 'Fullscreen', 'fullscreen'],\n ['copy', 'CopyComponent'],\n ['paste', 'PasteComponent'],\n ['canvas-move', 'CanvasMove'],\n ['canvas-clear', 'CanvasClear'],\n ['open-code', 'ExportTemplate', 'export-template'],\n ['open-layers', 'OpenLayers', 'open-layers'],\n ['open-styles', 'OpenStyleManager', 'open-sm'],\n ['open-traits', 'OpenTraitManager', 'open-tm'],\n ['open-blocks', 'OpenBlocks', 'open-blocks'],\n ['open-assets', 'OpenAssets', 'open-assets'],\n ['component-select', 'SelectComponent', 'select-comp'],\n ['component-outline', 'SwitchVisibility', 'sw-visibility'],\n ['component-offset', 'ShowOffset', 'show-offset'],\n ['component-move', 'MoveComponent', 'move-comp'],\n ['component-next', 'ComponentNext'],\n ['component-prev', 'ComponentPrev'],\n ['component-enter', 'ComponentEnter'],\n ['component-exit', 'ComponentExit', 'select-parent'],\n ['component-delete', 'ComponentDelete'],\n ['component-style-clear', 'ComponentStyleClear'],\n ['component-drag', 'ComponentDrag'],\n];\n\nexport default () => {\n let em;\n let c = {};\n const commands = {};\n const defaultCommands = {};\n const active = {};\n\n // Need it here as it would be used below\n const add = function (id, obj) {\n if (isFunction(obj)) obj = { run: obj };\n if (!obj.stop) obj.noStop = 1;\n delete obj.initialize;\n obj.id = id;\n commands[id] = CommandAbstract.extend(obj);\n return this;\n };\n\n return {\n CommandAbstract,\n\n /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'Commands',\n\n /**\n * Initialize module. Automatically called with a new instance of the editor\n * @param {Object} config Configurations\n * @private\n */\n init(config = {}) {\n c = {\n ...defaults,\n ...config,\n };\n em = c.em;\n const ppfx = c.pStylePrefix;\n if (ppfx) c.stylePrefix = ppfx + c.stylePrefix;\n\n // Load commands passed via configuration\n Object.keys(c.defaults).forEach(k => {\n const obj = c.defaults[k];\n if (obj.id) this.add(obj.id, obj);\n });\n\n defaultCommands['tlb-delete'] = {\n run(ed) {\n return ed.runCommand('core:component-delete');\n },\n };\n\n defaultCommands['tlb-clone'] = {\n run(ed) {\n ed.runCommand('core:copy');\n ed.runCommand('core:paste', { action: 'clone-component' });\n },\n };\n\n defaultCommands['tlb-move'] = {\n run(ed, sender, opts = {}) {\n let dragger;\n const em = ed.getModel();\n const event = opts && opts.event;\n const { target } = opts;\n const sel = target || ed.getSelected();\n const selAll = target ? [target] : [...ed.getSelectedAll()];\n const nativeDrag = event && event.type == 'dragstart';\n const defComOptions = { preserveSelected: 1 };\n const modes = ['absolute', 'translate'];\n\n if (!sel || !sel.get('draggable')) {\n return em.logWarning('The element is not draggable');\n }\n\n const mode = sel.get('dmode') || em.get('dmode');\n const hideTlb = () => em.stopDefault(defComOptions);\n const altMode = includes(modes, mode);\n selAll.forEach(sel => sel.trigger('disable'));\n\n // Without setTimeout the ghost image disappears\n nativeDrag ? setTimeout(hideTlb, 0) : hideTlb();\n\n const onStart = data => {\n em.trigger(`${eventDrag}:start`, data);\n };\n const onDrag = data => {\n em.trigger(eventDrag, data);\n };\n const onEnd = (e, opts, data) => {\n selAll.forEach(sel => sel.set('status', 'selected'));\n ed.select(selAll);\n sel.emitUpdate();\n em.trigger(`${eventDrag}:end`, data);\n\n // Defer selectComponent in order to prevent canvas \"freeze\" #2692\n setTimeout(() => em.runDefault(defComOptions));\n\n // Dirty patch to prevent parent selection on drop\n (altMode || data.cancelled) && em.set('_cmpDrag', 1);\n };\n\n if (altMode) {\n // TODO move grabbing func in editor/canvas from the Sorter\n dragger = ed.runCommand('core:component-drag', {\n guidesInfo: 1,\n mode,\n target: sel,\n onStart,\n onDrag,\n onEnd,\n event,\n });\n } else {\n if (nativeDrag) {\n event.dataTransfer.setDragImage(sel.view.el, 0, 0);\n //sel.set('status', 'freezed');\n }\n\n const cmdMove = ed.Commands.get('move-comp');\n cmdMove.onStart = onStart;\n cmdMove.onDrag = onDrag;\n cmdMove.onEndMoveFromModel = onEnd;\n cmdMove.initSorterFromModels(selAll);\n }\n\n selAll.forEach(sel => sel.set('status', 'freezed-selected'));\n },\n };\n\n // Core commands\n defaultCommands['core:undo'] = e => e.UndoManager.undo();\n defaultCommands['core:redo'] = e => e.UndoManager.redo();\n commandsDef.forEach(item => {\n const oldCmd = item[2];\n const cmd = require(`./view/${item[1]}`).default;\n const cmdName = `core:${item[0]}`;\n defaultCommands[cmdName] = cmd;\n if (oldCmd) {\n defaultCommands[oldCmd] = cmd;\n // Propogate old commands (can be removed once we stop to call old commands)\n ['run', 'stop'].forEach(name => {\n em.on(`${name}:${oldCmd}`, (...args) => em.trigger(`${name}:${cmdName}`, ...args));\n });\n }\n });\n\n if (c.em) c.model = c.em.get('Canvas');\n\n this.loadDefaultCommands();\n\n return this;\n },\n\n /**\n * Add new command to the collection\n * @param\t{string} id Command's ID\n * @param\t{Object|Function} command Object representing your command,\n * By passing just a function it's intended as a stateless command\n * (just like passing an object with only `run` method).\n * @return {this}\n * @example\n * commands.add('myCommand', {\n * \trun(editor, sender) {\n * \t\talert('Hello world!');\n * \t},\n * \tstop(editor, sender) {\n * \t},\n * });\n * // As a function\n * commands.add('myCommand2', editor => { ... });\n * */\n add,\n\n /**\n * Get command by ID\n * @param\t{string}\tid Command's ID\n * @return {Object} Object representing the command\n * @example\n * var myCommand = commands.get('myCommand');\n * myCommand.run();\n * */\n get(id) {\n let el = commands[id];\n\n if (isFunction(el)) {\n el = new el(c);\n commands[id] = el;\n } else if (!el) {\n em.logWarning(`'${id}' command not found`);\n }\n\n return el;\n },\n\n /**\n * Extend the command. The command to extend should be defined as an object\n * @param\t{string}\tid Command's ID\n * @param {Object} Object with the new command functions\n * @returns {this}\n * @example\n * commands.extend('old-command', {\n * someInnerFunction() {\n * // ...\n * }\n * });\n * */\n extend(id, cmd = {}) {\n const command = this.get(id);\n if (command) {\n const cmdObj = {\n ...command.constructor.prototype,\n ...cmd,\n };\n this.add(id, cmdObj);\n // Extend also old name commands if exist\n const oldCmd = commandsDef.filter(cmd => `core:${cmd[0]}` === id && cmd[2])[0];\n oldCmd && this.add(oldCmd[2], cmdObj);\n }\n return this;\n },\n\n /**\n * Check if command exists\n * @param\t{string}\tid Command's ID\n * @return {Boolean}\n * */\n has(id) {\n return !!commands[id];\n },\n\n /**\n * Get an object containing all the commands\n * @return {Object}\n */\n getAll() {\n return commands;\n },\n\n /**\n * Execute the command\n * @param {String} id Command ID\n * @param {Object} [options={}] Options\n * @return {*} The return is defined by the command\n * @example\n * commands.run('myCommand', { someOption: 1 });\n */\n run(id, options = {}) {\n return this.runCommand(this.get(id), options);\n },\n\n /**\n * Stop the command\n * @param {String} id Command ID\n * @param {Object} [options={}] Options\n * @return {*} The return is defined by the command\n * @example\n * commands.stop('myCommand', { someOption: 1 });\n */\n stop(id, options = {}) {\n return this.stopCommand(this.get(id), options);\n },\n\n /**\n * Check if the command is active. You activate commands with `run`\n * and disable them with `stop`. If the command was created without `stop`\n * method it can't be registered as active\n * @param {String} id Command id\n * @return {Boolean}\n * @example\n * const cId = 'some-command';\n * commands.run(cId);\n * commands.isActive(cId);\n * // -> true\n * commands.stop(cId);\n * commands.isActive(cId);\n * // -> false\n */\n isActive(id) {\n return this.getActive().hasOwnProperty(id);\n },\n\n /**\n * Get all active commands\n * @return {Object}\n * @example\n * console.log(commands.getActive());\n * // -> { someCommand: itsLastReturn, anotherOne: ... };\n */\n getActive() {\n return active;\n },\n\n /**\n * Load default commands\n * @return {this}\n * @private\n * */\n loadDefaultCommands() {\n for (var id in defaultCommands) {\n this.add(id, defaultCommands[id]);\n }\n\n return this;\n },\n\n /**\n * Run command via its object\n * @param {Object} command\n * @param {Object} options\n * @return {*} Result of the command\n * @private\n */\n runCommand(command, options = {}) {\n let result;\n\n if (command && command.run) {\n const id = command.id;\n const editor = em.get('Editor');\n\n if (!this.isActive(id) || options.force || !c.strict) {\n result = editor && command.callRun(editor, options);\n if (id && command.stop && !command.noStop && !options.abort) {\n active[id] = result;\n }\n }\n }\n\n return result;\n },\n\n /**\n * Stop the command\n * @param {Object} command\n * @param {Object} options\n * @return {*} Result of the command\n * @private\n */\n stopCommand(command, options = {}) {\n let result;\n\n if (command && command.run) {\n const id = command.id;\n const editor = em.get('Editor');\n\n if (this.isActive(id) || options.force || !c.strict) {\n if (id) delete active[id];\n result = command.callStop(editor, options);\n }\n }\n\n return result;\n },\n\n /**\n * Create anonymous Command instance\n * @param {Object} command Command object\n * @return {Command}\n * @private\n * */\n create(command) {\n if (!command.stop) command.noStop = 1;\n const cmd = CommandAbstract.extend(command);\n return new cmd(c);\n },\n\n destroy() {\n [em, c, commands, defaultCommands, active].forEach(i => (i = {}));\n },\n };\n};\n","export default {\n run(ed) {\n ed.DomComponents.clear();\n ed.CssComposer.clear();\n }\n};\n","import { bindAll } from 'underscore';\nimport { on, off, getKeyChar } from '../../utils/mixins';\nimport Dragger from '../../utils/Dragger';\n\nexport default {\n run(ed) {\n bindAll(this, 'onKeyUp', 'enableDragger', 'disableDragger');\n this.editor = ed;\n this.canvasModel = this.canvas.getCanvasView().model;\n this.toggleMove(1);\n },\n stop(ed) {\n this.toggleMove();\n this.disableDragger();\n },\n\n onKeyUp(ev) {\n if (getKeyChar(ev) === ' ') {\n this.editor.stopCommand(this.id);\n }\n },\n\n enableDragger(ev) {\n this.toggleDragger(1, ev);\n },\n\n disableDragger(ev) {\n this.toggleDragger(0, ev);\n },\n\n toggleDragger(enable, ev) {\n const { canvasModel, em } = this;\n let { dragger } = this;\n const methodCls = enable ? 'add' : 'remove';\n this.getCanvas().classList[methodCls](`${this.ppfx}is__grabbing`);\n\n if (!dragger) {\n dragger = new Dragger({\n getPosition() {\n return {\n x: canvasModel.get('x'),\n y: canvasModel.get('y'),\n };\n },\n setPosition({ x, y }) {\n canvasModel.set({ x, y });\n },\n onStart(ev, dragger) {\n em.trigger('canvas:move:start', dragger);\n },\n onDrag(ev, dragger) {\n em.trigger('canvas:move', dragger);\n },\n onEnd(ev, dragger) {\n em.trigger('canvas:move:end', dragger);\n },\n });\n this.dragger = dragger;\n }\n\n enable ? dragger.start(ev) : dragger.stop();\n },\n\n toggleMove(enable) {\n const { ppfx } = this;\n const methodCls = enable ? 'add' : 'remove';\n const methodEv = enable ? 'on' : 'off';\n const methodsEv = { on, off };\n const canvas = this.getCanvas();\n const classes = [`${ppfx}is__grab`];\n !enable && classes.push(`${ppfx}is__grabbing`);\n classes.forEach(cls => canvas.classList[methodCls](cls));\n methodsEv[methodEv](document, 'keyup', this.onKeyUp);\n methodsEv[methodEv](canvas, 'mousedown', this.enableDragger);\n methodsEv[methodEv](document, 'mouseup', this.disableDragger);\n },\n};\n","import { Model } from '../../common';\n\nexport default class CommandAbstract extends Model {\n /**\n * Initialize method that can't be removed\n * @param {Object} o Options\n * @private\n * */\n initialize(o) {\n this.config = o || {};\n this.editorModel = this.em = this.config.em || {};\n this.pfx = this.config.stylePrefix;\n this.ppfx = this.config.pStylePrefix;\n this.hoverClass = this.pfx + 'hover';\n this.badgeClass = this.pfx + 'badge';\n this.plhClass = this.pfx + 'placeholder';\n this.freezClass = this.ppfx + 'freezed';\n\n this.canvas = this.em.get && this.em.get('Canvas');\n this.init(this.config);\n }\n\n /**\n * On frame scroll callback\n * @param {[type]} e [description]\n * @return {[type]} [description]\n */\n onFrameScroll(e) {}\n\n /**\n * Returns canval element\n * @return {HTMLElement}\n */\n getCanvas() {\n return this.canvas.getElement();\n }\n\n /**\n * Get canvas body element\n * @return {HTMLElement}\n */\n getCanvasBody() {\n return this.canvas.getBody();\n }\n\n /**\n * Get canvas wrapper element\n * @return {HTMLElement}\n */\n getCanvasTools() {\n return this.canvas.getToolsEl();\n }\n\n /**\n * Get the offset of the element\n * @param {HTMLElement} el\n * @return {Object}\n */\n offset(el) {\n var rect = el.getBoundingClientRect();\n return {\n top: rect.top + el.ownerDocument.body.scrollTop,\n left: rect.left + el.ownerDocument.body.scrollLeft,\n };\n }\n\n /**\n * Callback triggered after initialize\n * @param {Object} o Options\n * @private\n * */\n init(o) {}\n\n /**\n * Method that run command\n * @param {Object} editor Editor instance\n * @param {Object} [options={}] Options\n * @private\n * */\n callRun(editor, options = {}) {\n const id = this.id;\n editor.trigger(`run:${id}:before`, options);\n\n if (options && options.abort) {\n editor.trigger(`abort:${id}`, options);\n return;\n }\n\n const sender = options.sender || editor;\n const result = this.run(editor, sender, options);\n editor.trigger(`run:${id}`, result, options);\n editor.trigger('run', id, result, options);\n return result;\n }\n\n /**\n * Method that run command\n * @param {Object} editor Editor instance\n * @param {Object} [options={}] Options\n * @private\n * */\n callStop(editor, options = {}) {\n const id = this.id;\n const sender = options.sender || editor;\n editor.trigger(`stop:${id}:before`, options);\n const result = this.stop(editor, sender, options);\n editor.trigger(`stop:${id}`, result, options);\n editor.trigger('stop', id, result, options);\n return result;\n }\n\n /**\n * Stop current command\n */\n stopCommand() {\n this.em.get('Commands').stop(this.id);\n }\n\n /**\n * Method that run command\n * @param {Object} em Editor model\n * @param {Object} sender Button sender\n * @private\n * */\n run(em, sender) {}\n\n /**\n * Method that stop command\n * @param {Object} em Editor model\n * @param {Object} sender Button sender\n * @private\n * */\n stop(em, sender) {}\n}\n","import { isArray } from 'underscore';\n\nexport default {\n run(ed, s, opts = {}) {\n const toSelect = [];\n let components = opts.component || ed.getSelectedAll();\n components = isArray(components) ? [...components] : [components];\n\n components.filter(Boolean).forEach(component => {\n if (!component.get('removable')) {\n toSelect.push(component);\n return this.em.logWarning('The element is not removable', {\n component,\n });\n }\n component.remove();\n });\n\n ed.select(toSelect);\n\n return components;\n },\n};\n","import { keys, bindAll, each, isUndefined, debounce } from 'underscore';\nimport Dragger from '../../utils/Dragger';\n\nconst evName = 'dmode';\n\nexport default {\n run(editor, sender, opts = {}) {\n bindAll(\n this,\n 'setPosition',\n 'onStart',\n 'onDrag',\n 'onEnd',\n 'getPosition',\n 'getGuidesStatic',\n 'renderGuide',\n 'getGuidesTarget'\n );\n const { target, event, mode, dragger = {} } = opts;\n const el = target.getEl();\n const config = {\n doc: el.ownerDocument,\n onStart: this.onStart,\n onEnd: this.onEnd,\n onDrag: this.onDrag,\n getPosition: this.getPosition,\n setPosition: this.setPosition,\n guidesStatic: () => this.guidesStatic,\n guidesTarget: () => this.guidesTarget,\n ...dragger,\n };\n this.setupGuides();\n this.opts = opts;\n this.editor = editor;\n this.em = editor.getModel();\n this.target = target;\n this.isTran = mode == 'translate';\n this.guidesContainer = this.getGuidesContainer();\n this.guidesTarget = this.getGuidesTarget();\n this.guidesStatic = this.getGuidesStatic();\n let drg = this.dragger;\n\n if (!drg) {\n drg = new Dragger(config);\n this.dragger = drg;\n } else {\n drg.setOptions(config);\n }\n\n event && drg.start(event);\n this.toggleDrag(1);\n this.em.trigger(`${evName}:start`, this.getEventOpts());\n\n return drg;\n },\n\n getEventOpts() {\n return {\n mode: this.opts.mode,\n target: this.target,\n guidesTarget: this.guidesTarget,\n guidesStatic: this.guidesStatic,\n };\n },\n\n stop() {\n this.toggleDrag();\n },\n\n setupGuides() {\n (this.guides || []).forEach(item => {\n const { guide } = item;\n guide && guide.parentNode.removeChild(guide);\n });\n this.guides = [];\n },\n\n getGuidesContainer() {\n let { guidesEl } = this;\n\n if (!guidesEl) {\n const { editor, em, opts } = this;\n const pfx = editor.getConfig('stylePrefix');\n const elInfoX = document.createElement('div');\n const elInfoY = document.createElement('div');\n const guideContent = `
\n
\n
`;\n guidesEl = document.createElement('div');\n guidesEl.className = `${pfx}guides`;\n elInfoX.className = `${pfx}guide-info ${pfx}guide-info__x`;\n elInfoY.className = `${pfx}guide-info ${pfx}guide-info__y`;\n elInfoX.innerHTML = guideContent;\n elInfoY.innerHTML = guideContent;\n guidesEl.appendChild(elInfoX);\n guidesEl.appendChild(elInfoY);\n editor.Canvas.getGlobalToolsEl().appendChild(guidesEl);\n this.guidesEl = guidesEl;\n this.elGuideInfoX = elInfoX;\n this.elGuideInfoY = elInfoY;\n this.elGuideInfoContentX = elInfoX.querySelector(`.${pfx}guide-info__content`);\n this.elGuideInfoContentY = elInfoY.querySelector(`.${pfx}guide-info__content`);\n\n em.on(\n 'canvas:update frame:scroll',\n debounce(() => {\n this.updateGuides();\n opts.debug && this.guides.forEach(item => this.renderGuide(item));\n }, 200)\n );\n }\n\n return guidesEl;\n },\n\n getGuidesStatic() {\n let result = [];\n const el = this.target.getEl();\n const { parentNode = {} } = el;\n each(parentNode.children, item => (result = result.concat(el !== item ? this.getElementGuides(item) : [])));\n\n return result.concat(this.getElementGuides(parentNode));\n },\n\n getGuidesTarget() {\n return this.getElementGuides(this.target.getEl());\n },\n\n updateGuides(guides) {\n let lastEl, lastPos;\n (guides || this.guides).forEach(item => {\n const { origin } = item;\n const pos = lastEl === origin ? lastPos : this.getElementPos(origin);\n lastEl = origin;\n lastPos = pos;\n each(this.getGuidePosUpdate(item, pos), (val, key) => (item[key] = val));\n item.originRect = pos;\n });\n },\n\n getGuidePosUpdate(item, rect) {\n const result = {};\n const { top, height, left, width } = rect;\n\n switch (item.type) {\n case 't':\n result.y = top;\n break;\n case 'b':\n result.y = top + height;\n break;\n case 'l':\n result.x = left;\n break;\n case 'r':\n result.x = left + width;\n break;\n case 'x':\n result.x = left + width / 2;\n break;\n case 'y':\n result.y = top + height / 2;\n break;\n }\n\n return result;\n },\n\n renderGuide(item = {}) {\n const el = item.guide || document.createElement('div');\n const un = 'px';\n const guideSize = item.active ? 2 : 1;\n let numEl = el.children[0];\n el.style = `position: absolute; background-color: ${item.active ? 'green' : 'red'};`;\n\n if (!el.children.length) {\n numEl = document.createElement('div');\n numEl.style = 'position: absolute; color: red; padding: 5px; top: 0; left: 0;';\n el.appendChild(numEl);\n }\n\n if (item.y) {\n el.style.width = '100%';\n el.style.height = `${guideSize}${un}`;\n el.style.top = `${item.y}${un}`;\n el.style.left = 0;\n } else {\n el.style.width = `${guideSize}${un}`;\n el.style.height = '100%';\n el.style.left = `${item.x}${un}`;\n el.style.top = `0${un}`;\n }\n\n !item.guide && this.guidesContainer.appendChild(el);\n return el;\n },\n\n getElementPos(el) {\n return this.editor.Canvas.getElementPos(el, { noScroll: 1 });\n },\n\n getElementGuides(el) {\n const { opts } = this;\n const originRect = this.getElementPos(el);\n const { top, height, left, width } = originRect;\n const guides = [\n { type: 't', y: top }, // Top\n { type: 'b', y: top + height }, // Bottom\n { type: 'l', x: left }, // Left\n { type: 'r', x: left + width }, // Right\n { type: 'x', x: left + width / 2 }, // Mid x\n { type: 'y', y: top + height / 2 }, // Mid y\n ].map(item => ({\n ...item,\n origin: el,\n originRect,\n guide: opts.debug && this.renderGuide(item),\n }));\n guides.forEach(item => this.guides.push(item));\n\n return guides;\n },\n\n getTranslate(transform, axis = 'x') {\n let result = 0;\n (transform || '').split(' ').forEach(item => {\n const itemStr = item.trim();\n const fn = `translate${axis.toUpperCase()}(`;\n if (itemStr.indexOf(fn) === 0) result = parseFloat(itemStr.replace(fn, ''));\n });\n return result;\n },\n\n setTranslate(transform, axis, value) {\n const fn = `translate${axis.toUpperCase()}(`;\n const val = `${fn}${value})`;\n let result = (transform || '')\n .split(' ')\n .map(item => {\n const itemStr = item.trim();\n if (itemStr.indexOf(fn) === 0) item = val;\n return item;\n })\n .join(' ');\n if (result.indexOf(fn) < 0) result += ` ${val}`;\n\n return result;\n },\n\n getPosition() {\n const { target, isTran } = this;\n const { left, top, transform } = target.getStyle();\n let x = 0;\n let y = 0;\n\n if (isTran) {\n x = this.getTranslate(transform);\n y = this.getTranslate(transform, 'y');\n } else {\n x = parseFloat(left || 0);\n y = parseFloat(top || 0);\n }\n\n return { x, y };\n },\n\n setPosition({ x, y, end, position, width, height }) {\n const { target, isTran, em } = this;\n const unit = 'px';\n const en = !end ? 1 : ''; // this will trigger the final change\n const left = `${x}${unit}`;\n const top = `${y}${unit}`;\n let styleUp = {};\n\n if (isTran) {\n let transform = target.getStyle()['transform'] || '';\n transform = this.setTranslate(transform, 'x', left);\n transform = this.setTranslate(transform, 'y', top);\n styleUp = { transform, en };\n target.addStyle(styleUp, { avoidStore: !end });\n } else {\n const adds = { position, width, height };\n const style = { left, top, en };\n keys(adds).forEach(add => {\n const prop = adds[add];\n if (prop) style[add] = prop;\n });\n styleUp = style;\n target.addStyle(styleUp, { avoidStore: !end });\n }\n\n // Update StyleManager properties\n em.getSelected() && keys(styleUp).forEach(i => em.trigger(`update:component:style:${i}`));\n },\n\n _getDragData() {\n const { target } = this;\n return {\n target,\n parent: target.parent(),\n index: target.index(),\n };\n },\n\n onStart(event) {\n const { target, editor, isTran, opts } = this;\n const { center, onStart } = opts;\n const { Canvas } = editor;\n const style = target.getStyle();\n const position = 'absolute';\n const relPos = [position, 'relative'];\n onStart && onStart(this._getDragData());\n if (isTran) return;\n\n if (style.position !== position) {\n let { left, top, width, height } = Canvas.offset(target.getEl());\n let parent = target.parent();\n let parentRel;\n\n // Check for the relative parent\n do {\n const pStyle = parent.getStyle();\n parentRel = relPos.indexOf(pStyle.position) >= 0 ? parent : null;\n parent = parent.parent();\n } while (parent && !parentRel);\n\n // Center the target to the pointer position (used in Droppable for Blocks)\n if (center) {\n const { x, y } = Canvas.getMouseRelativeCanvas(event);\n left = x;\n top = y;\n } else if (parentRel) {\n const offsetP = Canvas.offset(parentRel.getEl());\n left = left - offsetP.left;\n top = top - offsetP.top;\n }\n\n this.setPosition({\n x: left,\n y: top,\n width: `${width}px`,\n height: `${height}px`,\n position,\n });\n }\n },\n\n onDrag(...args) {\n const { guidesTarget, opts } = this;\n const { onDrag } = opts;\n this.updateGuides(guidesTarget);\n opts.debug && guidesTarget.forEach(item => this.renderGuide(item));\n opts.guidesInfo && this.renderGuideInfo(guidesTarget.filter(item => item.active));\n onDrag && onDrag(this._getDragData());\n },\n\n onEnd(ev, dragger, opt = {}) {\n const { editor, opts, id } = this;\n const { onEnd } = opts;\n onEnd && onEnd(ev, opt, { event: ev, ...opt, ...this._getDragData() });\n editor.stopCommand(id);\n this.hideGuidesInfo();\n this.em.trigger(`${evName}:end`, this.getEventOpts());\n },\n\n hideGuidesInfo() {\n ['X', 'Y'].forEach(item => {\n const guide = this[`elGuideInfo${item}`];\n if (guide) guide.style.display = 'none';\n });\n },\n\n /**\n * Render guides with spacing information\n */\n renderGuideInfo(guides = []) {\n const { guidesStatic } = this;\n this.hideGuidesInfo();\n guides.forEach(item => {\n const { origin, x } = item;\n const rectOrigin = this.getElementPos(origin);\n const axis = isUndefined(x) ? 'y' : 'x';\n const isY = axis === 'y';\n const origEdge1 = rectOrigin[isY ? 'left' : 'top'];\n const origEdge1Raw = rectOrigin.rect[isY ? 'left' : 'top'];\n const origEdge2 = isY ? origEdge1 + rectOrigin.width : origEdge1 + rectOrigin.height;\n const origEdge2Raw = isY ? origEdge1Raw + rectOrigin.rect.width : origEdge1Raw + rectOrigin.rect.height;\n const elGuideInfo = this[`elGuideInfo${axis.toUpperCase()}`];\n const elGuideInfoCnt = this[`elGuideInfoContent${axis.toUpperCase()}`];\n const guideInfoStyle = elGuideInfo.style;\n\n // Find the nearest element\n const res = guidesStatic\n .filter(stat => stat.type === item.type)\n .map(stat => {\n const { left, width, top, height } = stat.originRect;\n const statEdge1 = isY ? left : top;\n const statEdge2 = isY ? left + width : top + height;\n return {\n gap: statEdge2 < origEdge1 ? origEdge1 - statEdge2 : statEdge1 - origEdge2,\n guide: stat,\n };\n })\n .filter(item => item.gap > 0)\n .sort((a, b) => a.gap - b.gap)\n .map(item => item.guide)[0];\n\n if (res) {\n const { left, width, top, height, rect } = res.originRect;\n const isEdge1 = isY ? left < rectOrigin.left : top < rectOrigin.top;\n const statEdge1 = isY ? left : top;\n const statEdge1Raw = isY ? rect.left : rect.top;\n const statEdge2 = isY ? left + width : top + height;\n const statEdge2Raw = isY ? rect.left + rect.width : rect.top + rect.height;\n const posFirst = isY ? item.y : item.x;\n const posSecond = isEdge1 ? statEdge2 : origEdge2;\n const pos2 = `${posFirst}px`;\n const size = isEdge1 ? origEdge1 - statEdge2 : statEdge1 - origEdge2;\n const sizeRaw = isEdge1 ? origEdge1Raw - statEdge2Raw : statEdge1Raw - origEdge2Raw;\n guideInfoStyle.display = '';\n guideInfoStyle[isY ? 'top' : 'left'] = pos2;\n guideInfoStyle[isY ? 'left' : 'top'] = `${posSecond}px`;\n guideInfoStyle[isY ? 'width' : 'height'] = `${size}px`;\n elGuideInfoCnt.innerHTML = `${Math.round(sizeRaw)}px`;\n this.em.trigger(`${evName}:active`, {\n ...this.getEventOpts(),\n guide: item,\n guidesStatic,\n matched: res,\n posFirst,\n posSecond,\n size,\n sizeRaw,\n elGuideInfo,\n elGuideInfoCnt,\n });\n }\n });\n },\n\n toggleDrag(enable) {\n const { ppfx, editor } = this;\n const methodCls = enable ? 'add' : 'remove';\n const classes = [`${ppfx}is__grabbing`];\n const { Canvas } = editor;\n const body = Canvas.getBody();\n classes.forEach(cls => body.classList[methodCls](cls));\n Canvas[enable ? 'startAutoscroll' : 'stopAutoscroll']();\n },\n};\n","export default {\n run(ed) {\n if (!ed.Canvas.hasFocus()) return;\n const toSelect = [];\n\n ed.getSelectedAll().forEach(component => {\n const coll = component.components();\n const next = coll && coll.filter(c => c.get('selectable'))[0];\n next && toSelect.push(next);\n });\n\n toSelect.length && ed.select(toSelect);\n }\n};\n","export default {\n run(ed, snd, opts = {}) {\n if (!ed.Canvas.hasFocus() && !opts.force) return;\n const toSelect = [];\n\n ed.getSelectedAll().forEach(component => {\n let next = component.parent();\n\n // Recurse through the parent() chain until a selectable parent is found\n while (next && !next.get('selectable')) {\n next = next.parent();\n }\n\n next && toSelect.push(next);\n });\n\n toSelect.length && ed.select(toSelect);\n }\n};\n","export default {\n run(ed) {\n if (!ed.Canvas.hasFocus()) return;\n const toSelect = [];\n\n ed.getSelectedAll().forEach(cmp => {\n const parent = cmp.parent();\n if (!parent) return;\n\n const len = parent.components().length;\n let incr = 0;\n let at = 0;\n let next;\n\n // Get the next selectable component\n do {\n incr++;\n at = cmp.index() + incr;\n next = at <= len ? parent.getChildAt(at) : null;\n } while (next && !next.get('selectable'));\n\n toSelect.push(next || cmp);\n });\n\n toSelect.length && ed.select(toSelect);\n }\n};\n","export default {\n run(ed) {\n if (!ed.Canvas.hasFocus()) return;\n const toSelect = [];\n\n ed.getSelectedAll().forEach(cmp => {\n const parent = cmp.parent();\n if (!parent) return;\n\n let incr = 0;\n let at = 0;\n let next;\n\n // Get the first selectable component\n do {\n incr++;\n at = cmp.index() - incr;\n next = at >= 0 ? parent.getChildAt(at) : null;\n } while (next && !next.get('selectable'));\n\n toSelect.push(next || cmp);\n });\n\n toSelect.length && ed.select(toSelect);\n }\n};\n","import { flatten } from 'underscore';\n\nexport default {\n run(ed, s, opts = {}) {\n const { target } = opts;\n let toRemove = [];\n\n if (!target.get('styles')) return toRemove;\n\n // Find all components in the project, of the target component type\n const type = target.get('type');\n const wrappers = ed.Pages.getAllWrappers();\n const len = flatten(wrappers.map(wrp => wrp.findType(type))).length;\n\n // Remove component related styles only if there are no more components\n // of that type in the project\n if (!len) {\n const rules = ed.CssComposer.getAll();\n toRemove = rules.filter(rule => rule.get('group') === `cmp:${type}`);\n rules.remove(toRemove);\n }\n\n return toRemove;\n },\n};\n","export default {\n run(ed) {\n const em = ed.getModel();\n const models = [...ed.getSelectedAll()];\n models.length && em.set('clipboard', models);\n }\n};\n","import { extend, bindAll } from 'underscore';\nimport Backbone from 'backbone';\nimport SelectComponent from './SelectComponent';\n\nconst $ = Backbone.$;\n\nexport default extend({}, SelectComponent, {\n init(o) {\n bindAll(this, 'startDelete', 'stopDelete', 'onDelete');\n this.hoverClass = this.pfx + 'hover-delete';\n this.badgeClass = this.pfx + 'badge-red';\n },\n\n enable() {\n var that = this;\n this.$el\n .find('*')\n .mouseover(this.startDelete)\n .mouseout(this.stopDelete)\n .click(this.onDelete);\n },\n\n /**\n * Start command\n * @param {Object} e\n * @private\n */\n startDelete(e) {\n e.stopPropagation();\n var $this = $(e.target);\n\n // Show badge if possible\n if ($this.data('model').get('removable')) {\n $this.addClass(this.hoverClass);\n this.attachBadge($this.get(0));\n }\n },\n\n /**\n * Stop command\n * @param {Object} e\n * @private\n */\n stopDelete(e) {\n e.stopPropagation();\n var $this = $(e.target);\n $this.removeClass(this.hoverClass);\n\n // Hide badge if possible\n if (this.badge) this.badge.css({ left: -1000, top: -1000 });\n },\n\n /**\n * Delete command\n * @param {Object} e\n * @private\n */\n onDelete(e) {\n e.stopPropagation();\n var $this = $(e.target);\n\n // Do nothing in case can't remove\n if (!$this.data('model').get('removable')) return;\n\n $this.data('model').destroy();\n this.removeBadge();\n this.clean();\n },\n\n /**\n * Updates badge label\n * @param {Object} model\n * @private\n * */\n updateBadgeLabel(model) {\n this.badge.html('Remove ' + model.getName());\n }\n});\n","import Backbone from 'backbone';\nconst $ = Backbone.$;\n\nexport default {\n run(editor, sender, opts = {}) {\n sender && sender.set && sender.set('active', 0);\n const config = editor.getConfig();\n const modal = editor.Modal;\n const pfx = config.stylePrefix;\n this.cm = editor.CodeManager || null;\n\n if (!this.$editors) {\n const oHtmlEd = this.buildEditor('htmlmixed', 'hopscotch', 'HTML');\n const oCsslEd = this.buildEditor('css', 'hopscotch', 'CSS');\n this.htmlEditor = oHtmlEd.el;\n this.cssEditor = oCsslEd.el;\n const $editors = $(`
`);\n $editors.append(oHtmlEd.$el).append(oCsslEd.$el);\n this.$editors = $editors;\n }\n\n modal\n .open({\n title: config.textViewCode,\n content: this.$editors\n })\n .getModel()\n .once('change:open', () => editor.stopCommand(this.id));\n this.htmlEditor.setContent(editor.getHtml());\n this.cssEditor.setContent(editor.getCss());\n },\n\n stop(editor) {\n const modal = editor.Modal;\n modal && modal.close();\n },\n\n buildEditor(codeName, theme, label) {\n const input = document.createElement('textarea');\n !this.codeMirror && (this.codeMirror = this.cm.getViewer('CodeMirror'));\n\n const el = this.codeMirror.clone().set({\n label,\n codeName,\n theme,\n input\n });\n\n const $el = new this.cm.EditorView({\n model: el,\n config: this.cm.getConfig()\n }).render().$el;\n\n el.init(input);\n\n return { el, $el };\n }\n};\n","import { isElement } from 'underscore';\n\nexport default {\n /**\n * Check if fullscreen mode is enabled\n * @return {Boolean}\n */\n isEnabled() {\n var d = document;\n if (\n d.fullscreenElement ||\n d.webkitFullscreenElement ||\n d.mozFullScreenElement\n )\n return 1;\n else return 0;\n },\n\n /**\n * Enable fullscreen mode and return browser prefix\n * @param {HTMLElement} el\n * @return {string}\n */\n enable(el) {\n var pfx = '';\n if (el.requestFullscreen) el.requestFullscreen();\n else if (el.webkitRequestFullscreen) {\n pfx = 'webkit';\n el.webkitRequestFullscreen();\n } else if (el.mozRequestFullScreen) {\n pfx = 'moz';\n el.mozRequestFullScreen();\n } else if (el.msRequestFullscreen) el.msRequestFullscreen();\n else console.warn('Fullscreen not supported');\n return pfx;\n },\n\n /**\n * Disable fullscreen mode\n */\n disable() {\n const d = document;\n if (this.isEnabled()) {\n if (d.exitFullscreen) d.exitFullscreen();\n else if (d.webkitExitFullscreen) d.webkitExitFullscreen();\n else if (d.mozCancelFullScreen) d.mozCancelFullScreen();\n else if (d.msExitFullscreen) d.msExitFullscreen();\n }\n },\n\n /**\n * Triggered when the state of the fullscreen is changed. Inside detects if\n * it's enabled\n * @param {strinf} pfx Browser prefix\n * @param {Event} e\n */\n fsChanged(pfx, e) {\n var d = document;\n var ev = (pfx || '') + 'fullscreenchange';\n if (!this.isEnabled()) {\n this.stop(null, this.sender);\n document.removeEventListener(ev, this.fsChanged);\n }\n },\n\n run(editor, sender, opts = {}) {\n this.sender = sender;\n const { target } = opts;\n const targetEl = isElement(target)\n ? target\n : document.querySelector(target);\n const pfx = this.enable(targetEl || editor.getContainer());\n this.fsChanged = this.fsChanged.bind(this, pfx);\n document.addEventListener(pfx + 'fullscreenchange', this.fsChanged);\n editor.trigger('change:canvasOffset');\n },\n\n stop(editor, sender) {\n if (sender && sender.set) sender.set('active', false);\n this.disable();\n if (editor) editor.trigger('change:canvasOffset');\n }\n};\n","import { extend, bindAll } from 'underscore';\nimport Backbone from 'backbone';\nimport { on, off } from '../../utils/mixins';\nimport SelectComponent from './SelectComponent';\nimport SelectPosition from './SelectPosition';\n\nconst $ = Backbone.$;\n\nexport default extend({}, SelectPosition, SelectComponent, {\n init(o) {\n SelectComponent.init.apply(this, arguments);\n bindAll(this, 'initSorter', 'rollback', 'onEndMove');\n this.opt = o;\n this.hoverClass = this.ppfx + 'highlighter-warning';\n this.badgeClass = this.ppfx + 'badge-warning';\n this.noSelClass = this.ppfx + 'no-select';\n },\n\n enable(...args) {\n SelectComponent.enable.apply(this, args);\n this.getBadgeEl().addClass(this.badgeClass);\n this.getHighlighterEl().addClass(this.hoverClass);\n var wp = this.$wrapper;\n wp.css('cursor', 'move');\n wp.on('mousedown', this.initSorter);\n\n // Avoid strange moving behavior\n wp.addClass(this.noSelClass);\n },\n\n /**\n * Overwrite for doing nothing\n * @private\n */\n toggleClipboard() {},\n\n /**\n * Delegate sorting\n * @param {Event} e\n * @private\n * */\n initSorter(e) {\n var el = $(e.target).data('model');\n var drag = el.get('draggable');\n if (!drag) return;\n\n // Avoid badge showing on move\n this.cacheEl = null;\n this.startSelectPosition(e.target, this.frameEl.contentDocument);\n this.sorter.draggable = drag;\n this.sorter.onEndMove = this.onEndMove.bind(this);\n this.stopSelectComponent();\n this.$wrapper.off('mousedown', this.initSorter);\n on(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n /**\n * Init sorter from model\n * @param {Object} model\n * @private\n */\n initSorterFromModel(model) {\n var drag = model.get('draggable');\n if (!drag) return;\n // Avoid badge showing on move\n this.cacheEl = null;\n var el = model.view.el;\n this.startSelectPosition(el, this.frameEl.contentDocument);\n this.sorter.draggable = drag;\n this.sorter.onEndMove = this.onEndMoveFromModel.bind(this);\n\n /*\n this.sorter.setDragHelper(el);\n var dragHelper = this.sorter.dragHelper;\n dragHelper.className = this.ppfx + 'drag-helper';\n dragHelper.innerHTML = '';\n dragHelper.backgroundColor = 'white';\n */\n\n this.stopSelectComponent();\n on(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n /**\n * Init sorter from models\n * @param {Object} model\n * @private\n */\n initSorterFromModels(models) {\n // TODO: if one only check for `draggable`\n // Avoid badge showing on move\n this.cacheEl = null;\n const lastModel = models[models.length - 1];\n const frame = (this.em.get('currentFrame') || {}).model;\n const el = lastModel.getEl(frame);\n const doc = el.ownerDocument;\n this.startSelectPosition(el, doc, { onStart: this.onStart });\n this.sorter.draggable = lastModel.get('draggable');\n this.sorter.toMove = models;\n this.sorter.onMoveClb = this.onDrag;\n this.sorter.onEndMove = this.onEndMoveFromModel.bind(this);\n this.stopSelectComponent();\n on(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n onEndMoveFromModel() {\n off(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n /**\n * Callback after sorting\n * @private\n */\n onEndMove() {\n this.enable();\n off(this.getContentWindow(), 'keydown', this.rollback);\n },\n\n /**\n * Say what to do after the component was selected (selectComponent)\n * @param {Event} e\n * @param {Object} Selected element\n * @private\n * */\n onSelect(e, el) {},\n\n /**\n * Used to bring the previous situation before start moving the component\n * @param {Event} e\n * @param {Boolean} Indicates if rollback in anycase\n * @private\n * */\n rollback(e, force) {\n var key = e.which || e.keyCode;\n if (key == 27 || force) {\n this.sorter.moved = false;\n this.sorter.endMove();\n }\n return;\n },\n\n /**\n * Returns badge element\n * @return {HTMLElement}\n * @private\n */\n getBadgeEl() {\n if (!this.$badge) this.$badge = $(this.getBadge());\n return this.$badge;\n },\n\n /**\n * Returns highlighter element\n * @return {HTMLElement}\n * @private\n */\n getHighlighterEl() {\n if (!this.$hl) this.$hl = $(this.canvas.getHighlighter());\n return this.$hl;\n },\n\n stop(...args) {\n SelectComponent.stop.apply(this, args);\n this.getBadgeEl().removeClass(this.badgeClass);\n this.getHighlighterEl().removeClass(this.hoverClass);\n var wp = this.$wrapper;\n wp.css('cursor', '').unbind().removeClass(this.noSelClass);\n },\n});\n","import { isFunction } from 'underscore';\nimport { createEl } from '../../utils/dom';\n\nexport default {\n open(content) {\n const { editor, title, config, am } = this;\n const { custom } = config;\n if (isFunction(custom.open)) {\n return custom.open(am.__customData());\n }\n const { Modal } = editor;\n Modal.open({ title, content }).onceClose(() => editor.stopCommand(this.id));\n },\n\n close() {\n const { custom } = this.config;\n if (isFunction(custom.close)) {\n return custom.close(this.am.__customData());\n }\n const { Modal } = this.editor;\n Modal && Modal.close();\n },\n\n run(editor, sender, opts = {}) {\n const am = editor.AssetManager;\n const config = am.getConfig();\n const { types = [], accept, select } = opts;\n this.title = opts.modalTitle || editor.t('assetManager.modalTitle') || '';\n this.editor = editor;\n this.config = config;\n this.am = am;\n\n am.setTarget(opts.target);\n am.onClick(opts.onClick);\n am.onDblClick(opts.onDblClick);\n am.onSelect(opts.onSelect);\n am.__behaviour({\n select,\n types,\n options: opts\n });\n\n if (config.custom) {\n this.rendered = this.rendered || createEl('div');\n this.rendered.className = `${config.stylePrefix}custom-wrp`;\n am.__behaviour({ container: this.rendered });\n am.__trgCustom();\n } else {\n if (!this.rendered || types) {\n let assets = am.getAll().filter(i => i);\n\n if (types && types.length) {\n assets = assets.filter(a => types.indexOf(a.get('type')) !== -1);\n }\n\n am.render(assets);\n this.rendered = am.getContainer();\n }\n\n if (accept) {\n const uploadEl = this.rendered.querySelector(\n `input#${config.stylePrefix}uploadFile`\n );\n uploadEl && uploadEl.setAttribute('accept', accept);\n }\n }\n\n this.open(this.rendered);\n return this;\n },\n\n stop(editor) {\n this.editor = editor;\n this.close(this.rendered);\n }\n};\n","import { isFunction } from 'underscore';\nimport { createEl } from '../../utils/dom';\n\nexport default {\n open() {\n const { container, editor, bm, config } = this;\n const { custom, appendTo } = config;\n\n if (isFunction(custom.open)) {\n return custom.open(bm.__customData());\n }\n\n if (this.firstRender && !appendTo) {\n const id = 'views-container';\n const pn = editor.Panels;\n const panels = pn.getPanel(id) || pn.addPanel({ id });\n panels.set('appendContent', container).trigger('change:appendContent');\n if (!custom) container.appendChild(bm.render());\n }\n\n if (container) container.style.display = 'block';\n },\n\n close() {\n const { container, config } = this;\n const { custom } = config;\n\n if (isFunction(custom.close)) {\n return custom.close(this.bm.__customData());\n }\n\n if (container) container.style.display = 'none';\n },\n\n run(editor) {\n const bm = editor.Blocks;\n this.config = bm.getConfig();\n this.firstRender = !this.container;\n this.container = this.container || createEl('div');\n this.editor = editor;\n this.bm = bm;\n const { container } = this;\n bm.__behaviour({\n container\n });\n\n if (this.config.custom) {\n bm.__trgCustom();\n }\n\n this.open();\n },\n\n stop() {\n this.close();\n }\n};\n","export default {\n run(editor) {\n const lm = editor.LayerManager;\n const pn = editor.Panels;\n\n if (lm.getConfig().appendTo) return;\n\n if (!this.layers) {\n const id = 'views-container';\n const layers = document.createElement('div');\n const panels = pn.getPanel(id) || pn.addPanel({ id });\n layers.appendChild(lm.render());\n panels.set('appendContent', layers).trigger('change:appendContent');\n this.layers = layers;\n }\n\n this.layers.style.display = 'block';\n },\n\n stop() {\n const { layers } = this;\n layers && (layers.style.display = 'none');\n }\n};\n","import Backbone from 'backbone';\nconst $ = Backbone.$;\n\nexport default {\n run(editor, sender) {\n this.sender = sender;\n\n if (!this.$cn) {\n const config = editor.getConfig();\n const panels = editor.Panels;\n const trgEvCnt = 'change:appendContent';\n this.$cn = $('
');\n this.$cn2 = $('
');\n this.$cn.append(this.$cn2);\n\n // Device Manager\n const dvm = editor.DeviceManager;\n if (dvm && config.showDevices) {\n const devicePanel = panels.addPanel({ id: 'devices-c' });\n const dvEl = dvm.render();\n devicePanel.set('appendContent', dvEl).trigger(trgEvCnt);\n }\n\n // Selector Manager container\n const slm = editor.SelectorManager;\n this.slm = slm;\n const slmConfig = slm.getConfig();\n if (slmConfig.custom) {\n slm.__trgCustom({ container: this.$cn2.get(0) });\n } else if (!slmConfig.appendTo) {\n this.$cn2.append(slm.render([]));\n }\n\n // Style Manager\n const sm = editor.StyleManager;\n this.sm = sm;\n const smConfig = sm.getConfig();\n const pfx = smConfig.stylePrefix;\n this.$header = $(`
${editor.t('styleManager.empty')}
`);\n this.$cn.append(this.$header);\n\n if (smConfig.custom) {\n sm.__trgCustom({ container: this.$cn2.get(0) });\n } else if (!smConfig.appendTo) {\n this.$cn2.append(sm.render());\n }\n\n // Create panel if not exists\n const pnCnt = 'views-container';\n this.panel = panels.getPanel(pnCnt);\n if (!this.panel) this.panel = panels.addPanel({ id: pnCnt });\n\n // Add all containers to the panel\n this.panel.set('appendContent', this.$cn).trigger(trgEvCnt);\n\n // Toggle Style Manager on target selection\n this.em = editor.getModel();\n this.listenTo(this.em, sm.events.target, this.toggleSm);\n }\n\n this.toggleSm();\n },\n\n /**\n * Toggle Style Manager visibility\n * @private\n */\n toggleSm() {\n const { sender, sm } = this;\n if ((sender && sender.get && !sender.get('active')) || !sm) return;\n\n if (sm.getSelected()) {\n this.$cn2?.show();\n this.$header?.hide();\n } else {\n this.$cn2?.hide();\n this.$header?.show();\n }\n },\n\n stop() {\n this.$cn2?.hide();\n this.$header?.hide();\n },\n};\n","import Backbone from 'backbone';\n\nconst $ = Backbone.$;\n\nexport default {\n run(editor, sender) {\n this.sender = sender;\n const em = editor.getModel();\n\n const config = editor.Config;\n const pfx = config.stylePrefix;\n const tm = editor.TraitManager;\n const confTm = tm.getConfig();\n let panelC;\n\n if (confTm.appendTo) return;\n\n if (!this.$cn) {\n this.$cn = $('
');\n this.$cn2 = $('
');\n this.$cn.append(this.$cn2);\n this.$header = $('
').append(\n `
${em.t(\n 'traitManager.empty'\n )}
`\n );\n this.$cn.append(this.$header);\n this.$cn2.append(\n `
${em.t('traitManager.label')}
`\n );\n this.$cn2.append(tm.render());\n var panels = editor.Panels;\n\n if (!panels.getPanel('views-container'))\n panelC = panels.addPanel({ id: 'views-container' });\n else panelC = panels.getPanel('views-container');\n\n panelC\n .set('appendContent', this.$cn.get(0))\n .trigger('change:appendContent');\n\n this.target = editor.getModel();\n this.listenTo(this.target, 'component:toggled', this.toggleTm);\n }\n\n this.toggleTm();\n },\n\n /**\n * Toggle Trait Manager visibility\n * @private\n */\n toggleTm() {\n const sender = this.sender;\n if (sender && sender.get && !sender.get('active')) return;\n\n if (this.target.getSelectedAll().length === 1) {\n this.$cn2.show();\n this.$header.hide();\n } else {\n this.$cn2.hide();\n this.$header.show();\n }\n },\n\n stop() {\n this.$cn2 && this.$cn2.hide();\n this.$header && this.$header.hide();\n }\n};\n","import { isArray, contains } from 'underscore';\n\nexport default {\n run(ed, s, opts = {}) {\n const em = ed.getModel();\n const clp = em.get('clipboard');\n const selected = ed.getSelected();\n\n if (clp && selected) {\n ed.getSelectedAll().forEach(comp => {\n if (!comp) return;\n\n const coll = comp.collection;\n if (!coll) return;\n\n const at = coll.indexOf(comp) + 1;\n const addOpts = { at, action: opts.action || 'paste-component' };\n const copyable = clp.filter(cop => cop.get('copyable'));\n let added;\n\n if (contains(clp, comp) && comp.get('copyable')) {\n added = coll.add(comp.clone(), addOpts);\n } else {\n added = coll.add(\n copyable.map(cop => cop.clone()),\n addOpts\n );\n }\n\n added = isArray(added) ? added : [added];\n added.forEach(add => ed.trigger('component:paste', add));\n });\n\n selected.emitUpdate();\n }\n },\n};\n","import { each } from 'underscore';\n\nconst cmdVis = 'sw-visibility';\n\nexport default {\n getPanels(editor) {\n if (!this.panels) {\n this.panels = editor.Panels.getPanels();\n }\n\n return this.panels;\n },\n\n preventDrag(opts) {\n opts.abort = 1;\n },\n\n tglEffects(on) {\n const { em } = this;\n const mthEv = on ? 'on' : 'off';\n if (em) {\n const canvas = em.get('Canvas');\n const body = canvas.getBody();\n const tlb = canvas.getToolbarEl();\n tlb && (tlb.style.display = on ? 'none' : '');\n const elP = body.querySelectorAll(`.${this.ppfx}no-pointer`);\n each(elP, item => (item.style.pointerEvents = on ? 'all' : ''));\n em[mthEv]('run:tlb-move:before', this.preventDrag);\n }\n },\n\n run(editor, sender) {\n this.sender = sender;\n this.selected = [...editor.getSelectedAll()];\n editor.select();\n\n if (!this.shouldRunSwVisibility) {\n this.shouldRunSwVisibility = editor.Commands.isActive(cmdVis);\n }\n\n this.shouldRunSwVisibility && editor.stopCommand(cmdVis);\n editor.getModel().stopDefault();\n\n const panels = this.getPanels(editor);\n const canvas = editor.Canvas.getElement();\n const editorEl = editor.getEl();\n const pfx = editor.Config.stylePrefix;\n\n if (!this.helper) {\n const helper = document.createElement('span');\n helper.className = `${pfx}off-prv fa fa-eye-slash`;\n editorEl.appendChild(helper);\n helper.onclick = () => this.stopCommand();\n this.helper = helper;\n }\n\n this.helper.style.display = 'inline-block';\n\n panels.forEach(panel => panel.set('visible', false));\n\n const canvasS = canvas.style;\n canvasS.width = '100%';\n canvasS.height = '100%';\n canvasS.top = '0';\n canvasS.left = '0';\n canvasS.padding = '0';\n canvasS.margin = '0';\n editor.refresh();\n this.tglEffects(1);\n },\n\n stop(editor) {\n const { sender = {}, selected } = this;\n sender.set && sender.set('active', 0);\n const panels = this.getPanels(editor);\n\n if (this.shouldRunSwVisibility) {\n editor.runCommand(cmdVis);\n this.shouldRunSwVisibility = false;\n }\n\n editor.getModel().runDefault();\n panels.forEach(panel => panel.set('visible', true));\n\n const canvas = editor.Canvas.getElement();\n canvas.setAttribute('style', '');\n selected && editor.select(selected);\n delete this.selected;\n\n if (this.helper) {\n this.helper.style.display = 'none';\n }\n\n editor.refresh();\n this.tglEffects();\n }\n};\n","export default {\n run(editor, sender, opts) {\n const opt = opts || {};\n const canvas = editor.Canvas;\n const canvasView = canvas.getCanvasView();\n const options = {\n appendTo: canvas.getResizerEl(),\n prefix: editor.getConfig().stylePrefix,\n posFetcher: canvasView.getElementPos.bind(canvasView),\n mousePosFetcher: canvas.getMouseRelativePos,\n ...(opt.options || {}),\n };\n let { canvasResizer } = this;\n\n // Create the resizer for the canvas if not yet created\n if (!canvasResizer || opt.forceNew) {\n this.canvasResizer = editor.Utils.Resizer.init(options);\n canvasResizer = this.canvasResizer;\n }\n\n canvasResizer.setOptions(options);\n canvasResizer.blur();\n canvasResizer.focus(opt.el);\n return canvasResizer;\n },\n\n stop() {\n this.canvasResizer?.blur();\n },\n};\n","import Backbone from 'backbone';\n\nexport default Backbone.View.extend({\n events() {\n return (\n this.model.get('events') || {\n mousedown: 'handleClick'\n }\n );\n },\n\n attributes() {\n return this.model.get('attributes');\n },\n\n initialize(opts = {}) {\n const { config = {} } = opts;\n this.em = config.em;\n this.editor = config.editor;\n },\n\n handleClick(event) {\n event.preventDefault();\n event.stopPropagation();\n\n /*\n * Since the toolbar lives outside the canvas frame, the event's\n * generated on it have clientX and clientY relative to the page.\n *\n * This causes issues during events like dragging, where they depend\n * on the clientX and clientY.\n *\n * This makes sure the offsets are calculated.\n *\n * More information on\n * https://github.com/artf/grapesjs/issues/2372\n * https://github.com/artf/grapesjs/issues/2207\n */\n\n const { editor, em } = this;\n const { left, top } = editor.Canvas.getFrameEl().getBoundingClientRect();\n\n const calibrated = {\n ...event,\n clientX: event.clientX - left,\n clientY: event.clientY - top\n };\n\n em.trigger('toolbar:run:before');\n this.execCommand(calibrated);\n },\n\n execCommand(event) {\n const opts = { event };\n const command = this.model.get('command');\n const editor = this.editor;\n\n if (typeof command === 'function') {\n command(editor, null, opts);\n }\n\n if (typeof command === 'string') {\n editor.runCommand(command, opts);\n }\n },\n\n render() {\n const { editor, $el, model } = this;\n const id = model.get('id');\n const label = model.get('label');\n const pfx = editor.getConfig('stylePrefix');\n $el.addClass(`${pfx}toolbar-item`);\n id && $el.addClass(`${pfx}toolbar-item__${id}`);\n label && $el.append(label);\n return this;\n }\n});\n","import DomainViews from 'domain_abstract/view/DomainViews';\nimport ToolbarButtonView from './ToolbarButtonView';\n\nexport default class ToolbarView extends DomainViews {\n constructor(opts = {}, config) {\n super(opts, config);\n this.config = { editor: opts.editor || '', em: opts.em };\n this.listenTo(this.collection, 'reset', this.render);\n }\n}\n\nToolbarView.prototype.itemView = ToolbarButtonView;\n","import Backbone from 'backbone';\n\nexport default Backbone.Model.extend({\n defaults: {\n command: '',\n attributes: {}\n }\n});\n","import Backbone from 'backbone';\nimport ToolbarButton from './ToolbarButton';\n\nexport default Backbone.Collection.extend({ model: ToolbarButton });\n","import Backbone from 'backbone';\nimport { bindAll, isElement, debounce } from 'underscore';\nimport { on, off, getUnitFromValue, isTaggableNode, getViewEl, hasWin } from '../../utils/mixins';\nimport { isVisible, isDoc } from '../../utils/dom';\nimport ToolbarView from '../../dom_components/view/ToolbarView';\nimport Toolbar from '../../dom_components/model/Toolbar';\n\nconst $ = Backbone.$;\nlet showOffsets;\n/**\n * This command is responsible for show selecting components and displaying\n * all the necessary tools around (component toolbar, badge, highlight box, etc.)\n *\n * The command manages different boxes to display tools and when something in\n * the canvas is updated, the command triggers the appropriate method to update\n * their position (across multiple frames/components):\n * - Global Tools (updateToolsGlobal/updateGlobalPos)\n * This box contains tools intended to be displayed only on ONE component per time,\n * like Component Toolbar (updated by updateToolbar/updateToolbarPos), this means\n * you won't be able to see more than one Component Toolbar (even with multiple\n * frames or multiple selected components)\n * - Local Tools (updateToolsLocal/updateLocalPos)\n * Each frame in the canvas has its own local box, so we're able to see more than\n * one active container at the same time. When you put a mouse over an element\n * you can see stuff like the highlight box, badge, margins/paddings offsets, etc.\n * so those elements are inside the Local Tools box\n *\n *\n */\nexport default {\n init(o) {\n bindAll(this, 'onHover', 'onOut', 'onClick', 'onFrameScroll', 'onFrameUpdated', 'onContainerChange');\n },\n\n enable() {\n this.frameOff = this.canvasOff = this.adjScroll = null;\n this.startSelectComponent();\n showOffsets = 1;\n },\n\n /**\n * Start select component event\n * @private\n * */\n startSelectComponent() {\n this.toggleSelectComponent(1);\n this.em.getSelected() && this.onSelect();\n },\n\n /**\n * Stop select component event\n * @private\n * */\n stopSelectComponent() {\n this.toggleSelectComponent();\n },\n\n /**\n * Toggle select component event\n * @private\n * */\n toggleSelectComponent(enable) {\n const { em } = this;\n const listenToEl = em.getConfig('listenToEl');\n const { parentNode } = em.getContainer();\n const method = enable ? 'on' : 'off';\n const methods = { on, off };\n !listenToEl.length && parentNode && listenToEl.push(parentNode);\n const trigger = (win, body) => {\n methods[method](body, 'mouseover', this.onHover);\n methods[method](body, 'mouseleave', this.onOut);\n methods[method](body, 'click touchend', this.onClick);\n methods[method](win, 'scroll', this.onFrameScroll, true);\n };\n methods[method](window, 'resize', this.onFrameUpdated);\n methods[method](listenToEl, 'scroll', this.onContainerChange);\n em[method]('component:toggled component:update undo redo', this.onSelect, this);\n em[method]('change:componentHovered', this.onHovered, this);\n em[method](\n 'component:resize styleable:change component:input', // component:styleUpdate\n this.updateGlobalPos,\n this\n );\n em[method]('component:update:toolbar', this._upToolbar, this);\n em[method]('change:canvasOffset', this.updateAttached, this);\n em[method]('frame:updated', this.onFrameUpdated, this);\n em[method]('canvas:updateTools', this.onFrameUpdated, this);\n em.get('Canvas')\n .getFrames()\n .forEach(frame => {\n const { view } = frame;\n const win = view?.getWindow();\n win && trigger(win, view.getBody());\n });\n },\n\n /**\n * Hover command\n * @param {Object} e\n * @private\n */\n onHover(e) {\n e.stopPropagation();\n const { em } = this;\n const trg = e.target;\n const view = getViewEl(trg);\n const frameView = view && view._getFrame();\n const $el = $(trg);\n let model = $el.data('model');\n\n // Get first valid model\n if (!model) {\n let parent = $el.parent();\n while (!model && parent.length && !isDoc(parent[0])) {\n model = parent.data('model');\n parent = parent.parent();\n }\n }\n\n this.currentDoc = trg.ownerDocument;\n em.setHovered(model, { useValid: true });\n frameView && em.set('currentFrame', frameView);\n },\n\n onFrameUpdated() {\n this.updateLocalPos();\n this.updateGlobalPos();\n },\n\n onHovered(em, component) {\n let result = {};\n\n if (component) {\n component.views.forEach(view => {\n const el = view.el;\n const pos = this.getElementPos(el);\n result = { el, pos, component, view: getViewEl(el) };\n this.updateToolsLocal(result);\n\n if (el.ownerDocument === this.currentDoc) this.elHovered = result;\n });\n } else {\n this.currentDoc = null;\n this.elHovered = 0;\n this.updateToolsLocal();\n this.canvas.getFrames().forEach(frame => {\n const { view } = frame;\n const el = view && view.getToolsEl();\n el && this.toggleToolsEl(0, 0, { el });\n });\n }\n },\n\n /**\n * Say what to do after the component was selected\n * @param {Object} e\n * @param {Object} el\n * @private\n * */\n onSelect: debounce(function () {\n const { em } = this;\n const component = em.getSelected();\n const currentFrame = em.get('currentFrame') || {};\n const view = component && component.getView(currentFrame.model);\n let el = view && view.el;\n let result = {};\n\n if (el && isVisible(el)) {\n const pos = this.getElementPos(el);\n result = { el, pos, component, view: getViewEl(el) };\n }\n\n this.elSelected = result;\n this.updateToolsGlobal();\n // This will hide some elements from the select component\n this.updateLocalPos(result);\n this.initResize(component);\n }),\n\n updateGlobalPos() {\n const sel = this.getElSelected();\n if (!sel.el) return;\n sel.pos = this.getElementPos(sel.el);\n this.updateToolsGlobal();\n },\n\n updateLocalPos(data) {\n const sel = this.getElHovered();\n if (!sel.el) return;\n sel.pos = this.getElementPos(sel.el);\n this.updateToolsLocal(data);\n },\n\n getElHovered() {\n return this.elHovered || {};\n },\n\n getElSelected() {\n return this.elSelected || {};\n },\n\n onOut() {\n this.em.setHovered(0);\n },\n\n toggleToolsEl(on, view, opts = {}) {\n const el = opts.el || this.canvas.getToolsEl(view);\n el && (el.style.display = on ? '' : 'none');\n return el || {};\n },\n\n /**\n * Show element offset viewer\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n showElementOffset(el, pos, opts = {}) {\n if (!showOffsets) return;\n this.editor.runCommand('show-offset', {\n el,\n elPos: pos,\n view: opts.view,\n force: 1,\n top: 0,\n left: 0,\n });\n },\n\n /**\n * Hide element offset viewer\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n hideElementOffset(view) {\n this.editor.stopCommand('show-offset', {\n view,\n });\n },\n\n /**\n * Show fixed element offset viewer\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n showFixedElementOffset(el, pos) {\n this.editor.runCommand('show-offset', {\n el,\n elPos: pos,\n state: 'Fixed',\n });\n },\n\n /**\n * Hide fixed element offset viewer\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n hideFixedElementOffset(el, pos) {\n if (this.editor) this.editor.stopCommand('show-offset', { state: 'Fixed' });\n },\n\n /**\n * Hide Highlighter element\n */\n hideHighlighter(view) {\n this.canvas.getHighlighter(view).style.opacity = 0;\n },\n\n /**\n * On element click\n * @param {Event} e\n * @private\n */\n onClick(ev) {\n ev.stopPropagation();\n ev.preventDefault();\n const { em } = this;\n if (em.get('_cmpDrag')) return em.set('_cmpDrag');\n const $el = $(ev.target);\n let model = $el.data('model');\n\n if (!model) {\n let parent = $el.parent();\n while (!model && parent.length && !isDoc(parent[0])) {\n model = parent.data('model');\n parent = parent.parent();\n }\n }\n\n if (model) {\n // Avoid selection of inner text components during editing\n if (em.isEditing() && !model.get('textable') && model.isChildOf('text')) {\n return;\n }\n this.select(model, ev);\n }\n },\n\n /**\n * Select component\n * @param {Component} model\n * @param {Event} event\n */\n select(model, event = {}) {\n if (!model) return;\n this.editor.select(model, { event, useValid: true });\n this.initResize(model);\n },\n\n /**\n * Update badge for the component\n * @param {Object} Component\n * @param {Object} pos Position object\n * @private\n * */\n updateBadge(el, pos, opts = {}) {\n const { canvas } = this;\n const model = $(el).data('model');\n if (!model || !model.get('badgable')) return;\n const badge = this.getBadge(opts);\n\n if (!opts.posOnly) {\n const config = this.canvas.getConfig();\n const icon = model.getIcon();\n const ppfx = config.pStylePrefix || '';\n const clsBadge = `${ppfx}badge`;\n const customeLabel = config.customBadgeLabel;\n const badgeLabel = `${icon ? `
${icon}
` : ''}\n
${model.getName()}
`;\n badge.innerHTML = customeLabel ? customeLabel(model) : badgeLabel;\n }\n\n const un = 'px';\n const bStyle = badge.style;\n bStyle.display = 'block';\n\n const targetToElem = canvas.getTargetToElementFixed(el, badge, {\n pos: pos,\n });\n\n const top = targetToElem.top; //opts.topOff - badgeH < 0 ? -opts.topOff : posTop;\n const left = opts.leftOff < 0 ? -opts.leftOff : 0;\n\n bStyle.top = top + un;\n bStyle.left = left + un;\n },\n\n /**\n * Update highlighter element\n * @param {HTMLElement} el\n * @param {Object} pos Position object\n * @private\n */\n showHighlighter(view) {\n this.canvas.getHighlighter(view).style.opacity = '';\n },\n\n /**\n * Init resizer on the element if possible\n * @param {HTMLElement|Component} elem\n * @private\n */\n initResize(elem) {\n const { em, canvas } = this;\n const editor = em ? em.get('Editor') : '';\n const config = em ? em.get('Config') : '';\n const pfx = config.stylePrefix || '';\n const resizeClass = `${pfx}resizing`;\n const model = !isElement(elem) && isTaggableNode(elem) ? elem : em.getSelected();\n const resizable = model && model.get('resizable');\n let options = {};\n let modelToStyle;\n\n var toggleBodyClass = (method, e, opts) => {\n const docs = opts.docs;\n docs &&\n docs.forEach(doc => {\n const body = doc.body;\n const cls = body.className || '';\n body.className = (method == 'add' ? `${cls} ${resizeClass}` : cls.replace(resizeClass, '')).trim();\n });\n };\n\n if (editor && resizable) {\n const el = isElement(elem) ? elem : model.getEl();\n options = {\n // Here the resizer is updated with the current element height and width\n onStart(e, opts = {}) {\n const { el, config, resizer } = opts;\n const { keyHeight, keyWidth, currentUnit, keepAutoHeight, keepAutoWidth } = config;\n toggleBodyClass('add', e, opts);\n modelToStyle = em.get('StyleManager').getModelToStyle(model);\n canvas.toggleFramesEvents();\n const computedStyle = getComputedStyle(el);\n const modelStyle = modelToStyle.getStyle();\n\n let currentWidth = modelStyle[keyWidth];\n config.autoWidth = keepAutoWidth && currentWidth === 'auto';\n if (isNaN(parseFloat(currentWidth))) {\n currentWidth = computedStyle[keyWidth];\n }\n\n let currentHeight = modelStyle[keyHeight];\n config.autoHeight = keepAutoHeight && currentHeight === 'auto';\n if (isNaN(parseFloat(currentHeight))) {\n currentHeight = computedStyle[keyHeight];\n }\n\n resizer.startDim.w = parseFloat(currentWidth);\n resizer.startDim.h = parseFloat(currentHeight);\n showOffsets = 0;\n\n if (currentUnit) {\n config.unitHeight = getUnitFromValue(currentHeight);\n config.unitWidth = getUnitFromValue(currentWidth);\n }\n },\n\n // Update all positioned elements (eg. component toolbar)\n onMove() {\n editor.trigger('component:resize');\n },\n\n onEnd(e, opts) {\n toggleBodyClass('remove', e, opts);\n editor.trigger('component:resize');\n canvas.toggleFramesEvents(1);\n showOffsets = 1;\n },\n\n updateTarget(el, rect, options = {}) {\n if (!modelToStyle) {\n return;\n }\n\n const { store, selectedHandler, config } = options;\n const { keyHeight, keyWidth, autoHeight, autoWidth, unitWidth, unitHeight } = config;\n const onlyHeight = ['tc', 'bc'].indexOf(selectedHandler) >= 0;\n const onlyWidth = ['cl', 'cr'].indexOf(selectedHandler) >= 0;\n const style = {};\n const en = !store ? 1 : ''; // this will trigger the final change\n\n if (!onlyHeight) {\n const bodyw = canvas.getBody().offsetWidth;\n const width = rect.w < bodyw ? rect.w : bodyw;\n style[keyWidth] = autoWidth ? 'auto' : `${width}${unitWidth}`;\n }\n\n if (!onlyWidth) {\n style[keyHeight] = autoHeight ? 'auto' : `${rect.h}${unitHeight}`;\n }\n\n modelToStyle.addStyle({ ...style, en }, { avoidStore: !store });\n const updateEvent = `update:component:style`;\n const eventToListen = `${updateEvent}:${keyHeight} ${updateEvent}:${keyWidth}`;\n em && em.trigger(eventToListen, null, null, { noEmit: 1 });\n },\n };\n\n if (typeof resizable == 'object') {\n options = { ...options, ...resizable, parent: options };\n }\n\n this.resizer = editor.runCommand('resize', { el, options, force: 1 });\n } else {\n editor.stopCommand('resize');\n this.resizer = null;\n }\n },\n\n /**\n * Update toolbar if the component has one\n * @param {Object} mod\n */\n updateToolbar(mod) {\n const { em } = this.config;\n const model = mod == em ? em.getSelected() : mod;\n const toolbarEl = this.canvas.getToolbarEl();\n const toolbarStyle = toolbarEl.style;\n const toolbar = model.get('toolbar');\n const showToolbar = em.get('Config').showToolbar;\n\n if (model && showToolbar && toolbar && toolbar.length) {\n toolbarStyle.display = '';\n if (!this.toolbar) {\n toolbarEl.innerHTML = '';\n this.toolbar = new Toolbar(toolbar);\n const toolbarView = new ToolbarView({\n collection: this.toolbar,\n editor: this.editor,\n em,\n });\n toolbarEl.appendChild(toolbarView.render().el);\n }\n\n this.toolbar.reset(toolbar);\n toolbarStyle.top = '-100px';\n toolbarStyle.left = 0;\n } else {\n toolbarStyle.display = 'none';\n }\n },\n\n /**\n * Update toolbar positions\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n updateToolbarPos(pos) {\n const unit = 'px';\n const { style } = this.canvas.getToolbarEl();\n style.top = `${pos.top}${unit}`;\n style.left = `${pos.left}${unit}`;\n style.opacity = '';\n },\n\n /**\n * Return canvas dimensions and positions\n * @return {Object}\n */\n getCanvasPosition() {\n return this.canvas.getCanvasView().getPosition();\n },\n\n /**\n * Returns badge element\n * @return {HTMLElement}\n * @private\n */\n getBadge(opts = {}) {\n return this.canvas.getBadgeEl(opts.view);\n },\n\n /**\n * On frame scroll callback\n * @private\n */\n onFrameScroll() {\n this.updateTools();\n },\n\n updateTools() {\n this.updateLocalPos();\n this.updateGlobalPos();\n },\n\n isCompSelected(comp) {\n return comp && comp.get('status') === 'selected';\n },\n\n /**\n * Update tools visible on hover\n * @param {HTMLElement} el\n * @param {Object} pos\n */\n updateToolsLocal(data) {\n const { el, pos, view, component } = data || this.getElHovered();\n\n if (!el) {\n this.lastHovered = 0;\n return;\n }\n\n const isHoverEn = component.get('hoverable');\n const isNewEl = this.lastHovered !== el;\n const badgeOpts = isNewEl ? {} : { posOnly: 1 };\n\n if (isNewEl && isHoverEn) {\n this.lastHovered = el;\n this.showHighlighter(view);\n this.showElementOffset(el, pos, { view });\n }\n\n if (this.isCompSelected(component)) {\n this.hideHighlighter(view);\n this.hideElementOffset(view);\n }\n\n const unit = 'px';\n const toolsEl = this.toggleToolsEl(1, view);\n const { style } = toolsEl;\n const frameOff = this.canvas.canvasRectOffset(el, pos);\n const topOff = frameOff.top;\n const leftOff = frameOff.left;\n\n this.updateBadge(el, pos, {\n ...badgeOpts,\n view,\n topOff,\n leftOff,\n });\n\n style.top = topOff + unit;\n style.left = leftOff + unit;\n style.width = pos.width + unit;\n style.height = pos.height + unit;\n\n this._trgToolUp('local', {\n component,\n el: toolsEl,\n top: topOff,\n left: leftOff,\n width: pos.width,\n height: pos.height,\n });\n },\n\n _upToolbar: debounce(function () {\n this.updateToolsGlobal({ force: 1 });\n }),\n\n _trgToolUp(type, opts = {}) {\n this.em.trigger('canvas:tools:update', {\n type,\n ...opts,\n });\n },\n\n updateToolsGlobal(opts = {}) {\n const { el, pos, component } = this.getElSelected();\n\n if (!el) {\n this.toggleToolsEl(); // Hides toolbar\n this.lastSelected = 0;\n return;\n }\n\n const { canvas } = this;\n const isNewEl = this.lastSelected !== el;\n\n if (isNewEl || opts.force) {\n this.lastSelected = el;\n this.updateToolbar(component);\n }\n\n const unit = 'px';\n const toolsEl = this.toggleToolsEl(1);\n const { style } = toolsEl;\n const targetToElem = canvas.getTargetToElementFixed(el, canvas.getToolbarEl(), { pos });\n const topOff = targetToElem.canvasOffsetTop;\n const leftOff = targetToElem.canvasOffsetLeft;\n style.top = topOff + unit;\n style.left = leftOff + unit;\n style.width = pos.width + unit;\n style.height = pos.height + unit;\n\n this.updateToolbarPos({ top: targetToElem.top, left: targetToElem.left });\n this._trgToolUp('global', {\n component,\n el: toolsEl,\n top: topOff,\n left: leftOff,\n width: pos.width,\n height: pos.height,\n });\n },\n\n /**\n * Update attached elements, eg. component toolbar\n */\n updateAttached: debounce(function () {\n this.updateGlobalPos();\n }),\n\n onContainerChange: debounce(function () {\n this.em.refreshCanvas();\n }, 150),\n\n /**\n * Returns element's data info\n * @param {HTMLElement} el\n * @return {Object}\n * @private\n */\n getElementPos(el) {\n return this.canvas.getCanvasView().getElementPos(el);\n },\n\n /**\n * Hide badge\n * @private\n * */\n hideBadge() {\n this.getBadge().style.display = 'none';\n },\n\n /**\n * Clean previous model from different states\n * @param {Component} model\n * @private\n */\n cleanPrevious(model) {\n model &&\n model.set({\n status: '',\n state: '',\n });\n },\n\n /**\n * Returns content window\n * @private\n */\n getContentWindow() {\n return this.canvas.getWindow();\n },\n\n run(editor) {\n if (!hasWin()) return;\n this.editor = editor && editor.get('Editor');\n this.enable();\n },\n\n stop(ed, sender, opts = {}) {\n if (!hasWin()) return;\n const { em, editor } = this;\n this.onHovered(); // force to hide toolbar\n this.stopSelectComponent();\n !opts.preserveSelected && em.setSelected(null);\n this.toggleToolsEl();\n editor && editor.stopCommand('resize');\n },\n};\n","import Backbone from 'backbone';\nconst $ = Backbone.$;\n\nexport default {\n /**\n * Start select position event\n * @param {HTMLElement} trg\n * @private\n * */\n startSelectPosition(trg, doc, opts = {}) {\n this.isPointed = false;\n var utils = this.editorModel.get('Utils');\n const container = trg.ownerDocument.body;\n\n if (utils && !this.sorter)\n this.sorter = new utils.Sorter({\n container,\n placer: this.canvas.getPlacerEl(),\n containerSel: '*',\n itemSel: '*',\n pfx: this.ppfx,\n direction: 'a',\n document: doc,\n wmargin: 1,\n nested: 1,\n em: this.editorModel,\n canvasRelative: 1,\n scale: () => this.em.getZoomDecimal()\n });\n\n if (opts.onStart) this.sorter.onStart = opts.onStart;\n trg && this.sorter.startSort(trg, { container });\n },\n\n /**\n * Get frame position\n * @return {Object}\n * @private\n */\n getOffsetDim() {\n var frameOff = this.offset(this.canvas.getFrameEl());\n var canvasOff = this.offset(this.canvas.getElement());\n var top = frameOff.top - canvasOff.top;\n var left = frameOff.left - canvasOff.left;\n return { top, left };\n },\n\n /**\n * Stop select position event\n * @private\n * */\n stopSelectPosition() {\n this.posTargetCollection = null;\n this.posIndex =\n this.posMethod == 'after' && this.cDim.length !== 0\n ? this.posIndex + 1\n : this.posIndex; //Normalize\n if (this.sorter) {\n this.sorter.moved = 0;\n this.sorter.endMove();\n }\n if (this.cDim) {\n this.posIsLastEl =\n this.cDim.length !== 0 &&\n this.posMethod == 'after' &&\n this.posIndex == this.cDim.length;\n this.posTargetEl =\n this.cDim.length === 0\n ? $(this.outsideElem)\n : !this.posIsLastEl && this.cDim[this.posIndex]\n ? $(this.cDim[this.posIndex][5]).parent()\n : $(this.outsideElem);\n this.posTargetModel = this.posTargetEl.data('model');\n this.posTargetCollection = this.posTargetEl.data('model-comp');\n }\n },\n\n /**\n * Enabel select position\n * @private\n */\n enable() {\n this.startSelectPosition();\n },\n\n /**\n * Check if the pointer is near to the float component\n * @param {number} index\n * @param {string} method\n * @param {Array} dims\n * @return {Boolean}\n * @private\n * */\n nearFloat(index, method, dims) {\n var i = index || 0;\n var m = method || 'before';\n var len = dims.length;\n var isLast = len !== 0 && m == 'after' && i == len;\n if (\n len !== 0 &&\n ((!isLast && !dims[i][4]) ||\n (dims[i - 1] && !dims[i - 1][4]) ||\n (isLast && !dims[i - 1][4]))\n )\n return 1;\n return 0;\n },\n\n run() {\n this.enable();\n },\n\n stop() {\n this.stopSelectPosition();\n this.$wrapper.css('cursor', '');\n this.$wrapper.unbind();\n }\n};\n","import Backbone from 'backbone';\nimport { isUndefined } from 'underscore';\nimport { isTextNode } from '../../utils/mixins';\nconst $ = Backbone.$;\n\nexport default {\n getOffsetMethod(state) {\n var method = state || '';\n return 'get' + method + 'OffsetViewerEl';\n },\n\n run(editor, sender, opts) {\n var opt = opts || {};\n var state = opt.state || '';\n var config = editor.getConfig();\n const zoom = this.em.getZoomDecimal();\n const el = opt.el || '';\n\n if (!config.showOffsets || isTextNode(el) || (!config.showOffsetsSelected && state == 'Fixed')) {\n editor.stopCommand(this.id, opts);\n return;\n }\n\n var canvas = editor.Canvas;\n var pos = { ...(opt.elPos || canvas.getElementPos(el)) };\n\n if (!isUndefined(opt.top)) {\n pos.top = opt.top;\n }\n if (!isUndefined(opt.left)) {\n pos.left = opt.left;\n }\n\n var style = window.getComputedStyle(el);\n var ppfx = this.ppfx;\n var stateVar = state + 'State';\n var method = this.getOffsetMethod(state);\n var offsetViewer = canvas[method](opts.view);\n offsetViewer.style.opacity = '';\n\n let marginT = this['marginT' + state];\n let marginB = this['marginB' + state];\n let marginL = this['marginL' + state];\n let marginR = this['marginR' + state];\n let padT = this['padT' + state];\n let padB = this['padB' + state];\n let padL = this['padL' + state];\n let padR = this['padR' + state];\n\n if (offsetViewer.childNodes.length) {\n this[stateVar] = '1';\n marginT = offsetViewer.querySelector('[data-offset-m-t]');\n marginB = offsetViewer.querySelector('[data-offset-m-b]');\n marginL = offsetViewer.querySelector('[data-offset-m-l]');\n marginR = offsetViewer.querySelector('[data-offset-m-r]');\n padT = offsetViewer.querySelector('[data-offset-p-t]');\n padB = offsetViewer.querySelector('[data-offset-p-b]');\n padL = offsetViewer.querySelector('[data-offset-p-l]');\n padR = offsetViewer.querySelector('[data-offset-p-r]');\n }\n\n if (!this[stateVar]) {\n var stateLow = state.toLowerCase();\n var marginName = stateLow + 'margin-v';\n var paddingName = stateLow + 'padding-v';\n var marginV = $(`
`).get(0);\n var paddingV = $(`
`).get(0);\n var marginEls = ppfx + marginName + '-el';\n var paddingEls = ppfx + paddingName + '-el';\n const fullMargName = `${marginEls} ${ppfx + marginName}`;\n const fullPadName = `${paddingEls} ${ppfx + paddingName}`;\n marginT = $(`
`).get(0);\n marginB = $(`
`).get(0);\n marginL = $(`
`).get(0);\n marginR = $(`
`).get(0);\n padT = $(`
`).get(0);\n padB = $(`
`).get(0);\n padL = $(`
`).get(0);\n padR = $(`
`).get(0);\n this['marginT' + state] = marginT;\n this['marginB' + state] = marginB;\n this['marginL' + state] = marginL;\n this['marginR' + state] = marginR;\n this['padT' + state] = padT;\n this['padB' + state] = padB;\n this['padL' + state] = padL;\n this['padR' + state] = padR;\n marginV.appendChild(marginT);\n marginV.appendChild(marginB);\n marginV.appendChild(marginL);\n marginV.appendChild(marginR);\n paddingV.appendChild(padT);\n paddingV.appendChild(padB);\n paddingV.appendChild(padL);\n paddingV.appendChild(padR);\n offsetViewer.appendChild(marginV);\n offsetViewer.appendChild(paddingV);\n this[stateVar] = '1';\n }\n\n var unit = 'px';\n var marginLeftSt = parseFloat(style.marginLeft.replace(unit, '')) * zoom;\n var marginRightSt = parseFloat(style.marginRight.replace(unit, '')) * zoom;\n var marginTopSt = parseFloat(style.marginTop.replace(unit, '')) * zoom;\n var marginBottomSt = parseFloat(style.marginBottom.replace(unit, '')) * zoom;\n var mtStyle = marginT.style;\n var mbStyle = marginB.style;\n var mlStyle = marginL.style;\n var mrStyle = marginR.style;\n var ptStyle = padT.style;\n var pbStyle = padB.style;\n var plStyle = padL.style;\n var prStyle = padR.style;\n var posLeft = parseFloat(pos.left);\n var widthEl = parseFloat(style.width) * zoom + unit;\n\n // Margin style\n mtStyle.height = marginTopSt + unit;\n mtStyle.width = widthEl;\n mtStyle.top = pos.top - marginTopSt + unit;\n mtStyle.left = posLeft + unit;\n\n mbStyle.height = marginBottomSt + unit;\n mbStyle.width = widthEl;\n mbStyle.top = pos.top + pos.height + unit;\n mbStyle.left = posLeft + unit;\n\n var marginSideH = pos.height + marginTopSt + marginBottomSt + unit;\n var marginSideT = pos.top - marginTopSt + unit;\n mlStyle.height = marginSideH;\n mlStyle.width = marginLeftSt + unit;\n mlStyle.top = marginSideT;\n mlStyle.left = posLeft - marginLeftSt + unit;\n\n mrStyle.height = marginSideH;\n mrStyle.width = marginRightSt + unit;\n mrStyle.top = marginSideT;\n mrStyle.left = posLeft + pos.width + unit;\n\n // Padding style\n var padTop = parseFloat(style.paddingTop) * zoom;\n ptStyle.height = padTop + unit;\n // ptStyle.width = widthEl;\n // ptStyle.top = pos.top + unit;\n // ptStyle.left = posLeft + unit;\n\n var padBot = parseFloat(style.paddingBottom) * zoom;\n pbStyle.height = padBot + unit;\n // pbStyle.width = widthEl;\n // pbStyle.top = pos.top + pos.height - padBot + unit;\n // pbStyle.left = posLeft + unit;\n\n var padSideH = pos.height - padBot - padTop + unit;\n var padSideT = pos.top + padTop + unit;\n plStyle.height = padSideH;\n plStyle.width = parseFloat(style.paddingLeft) * zoom + unit;\n plStyle.top = padSideT;\n // plStyle.left = pos.left + unit;\n // plStyle.right = 0;\n\n var padRight = parseFloat(style.paddingRight) * zoom;\n prStyle.height = padSideH;\n prStyle.width = padRight + unit;\n prStyle.top = padSideT;\n // prStyle.left = pos.left + pos.width - padRight + unit;\n // prStyle.left = 0;\n },\n\n stop(editor, sender, opts = {}) {\n var opt = opts || {};\n var state = opt.state || '';\n var method = this.getOffsetMethod(state);\n var canvas = editor.Canvas;\n var offsetViewer = canvas[method](opts.view);\n offsetViewer.style.opacity = 0;\n },\n};\n","import { bindAll } from 'underscore';\n\nexport default {\n init() {\n bindAll(this, '_onFramesChange');\n },\n\n run(ed) {\n this.toggleVis(ed);\n },\n\n stop(ed) {\n this.toggleVis(ed, 0);\n },\n\n toggleVis(ed, active = 1) {\n if (!ed.Commands.isActive('preview')) {\n const cv = ed.Canvas;\n const mth = active ? 'on' : 'off';\n cv.getFrames().forEach(frame => this._upFrame(frame, active));\n cv.getModel()[mth]('change:frames', this._onFramesChange);\n }\n },\n\n _onFramesChange(m, frames) {\n frames.forEach(frame => this._upFrame(frame, 1));\n },\n\n _upFrame(frame, active) {\n const method = active ? 'add' : 'remove';\n frame.view.getBody().classList[method](`${this.ppfx}dashed`);\n }\n};\n","import { isString, isElement } from 'underscore';\nimport { createId, deepMerge, isDef } from 'utils/mixins';\n\nexport default {\n getConfig(name) {\n return this.__getConfig(name);\n },\n\n getProjectData(data) {\n const obj = {};\n const key = this.storageKey;\n if (key) {\n obj[key] = data || this.getAll();\n }\n return obj;\n },\n\n loadProjectData(data = {}, { all, onResult, reset } = {}) {\n const key = this.storageKey;\n const opts = { action: 'load' };\n const coll = all || this.getAll();\n let result = data[key];\n\n if (typeof result == 'string') {\n try {\n result = JSON.parse(result);\n } catch (err) {\n this.__logWarn('Data parsing failed', { input: result });\n }\n }\n\n reset && result && coll.reset(null, opts);\n\n if (onResult) {\n result && onResult(result, opts);\n } else if (result && isDef(result.length)) {\n coll.reset(result, opts);\n }\n\n return result;\n },\n\n clear(opts = {}) {\n const { all } = this;\n all && all.reset(null, opts);\n return this;\n },\n\n __getConfig(name) {\n const res = this.config || {};\n return name ? res[name] : res;\n },\n\n getAll(opts = {}) {\n return this.all ? (opts.array ? [...this.all.models] : this.all) : [];\n },\n\n getAllMap() {\n return this.getAll().reduce((acc, i) => {\n acc[i.get(i.idAttribute)] = i;\n return acc;\n }, {});\n },\n\n __initConfig(def = {}, conf = {}) {\n this.config = deepMerge(def, conf);\n this.em = this.config.em;\n this.cls = [];\n },\n\n __initListen(opts = {}) {\n const { all, em, events } = this;\n all &&\n em &&\n all\n .on('add', (m, c, o) => em.trigger(events.add, m, o))\n .on('remove', (m, c, o) => em.trigger(events.remove, m, o))\n .on('change', (p, c) => em.trigger(events.update, p, p.changedAttributes(), c))\n .on('all', this.__catchAllEvent, this);\n // Register collections\n this.cls = [all].concat(opts.collections || []);\n // Propagate events\n (opts.propagate || []).forEach(({ entity, event }) => {\n entity.on('all', (ev, model, coll, opts) => {\n const options = opts || coll;\n const opt = { event: ev, ...options };\n [em, all].map(md => md.trigger(event, model, opt));\n });\n });\n },\n\n __remove(model, opts = {}) {\n const { em } = this;\n const md = isString(model) ? this.get(model) : model;\n const rm = () => {\n md && this.all.remove(md, opts);\n return md;\n };\n !opts.silent && em && em.trigger(this.events.removeBefore, md, rm, opts);\n return !opts.abort && rm();\n },\n\n __catchAllEvent(event, model, coll, opts) {\n const { em, events } = this;\n const options = opts || coll;\n em && events.all && em.trigger(events.all, { event, model, options });\n this.__onAllEvent();\n },\n\n __appendTo() {\n const elTo = this.getConfig().appendTo;\n\n if (elTo) {\n const el = isElement(elTo) ? elTo : document.querySelector(elTo);\n if (!el) return this.__logWarn('\"appendTo\" element not found');\n el.appendChild(this.render());\n }\n },\n\n __onAllEvent() {},\n\n __logWarn(str, opts) {\n this.em.logWarning(`[${this.name}]: ${str}`, opts);\n },\n\n _createId(len = 16) {\n const all = this.getAll();\n const ln = all.length + len;\n const allMap = this.getAllMap();\n let id;\n\n do {\n id = createId(ln);\n } while (allMap[id]);\n\n return id;\n },\n\n __listenAdd(model, event) {\n model.on('add', (m, c, o) => this.em.trigger(event, m, o));\n },\n\n __listenRemove(model, event) {\n model.on('remove', (m, c, o) => this.em.trigger(event, m, o));\n },\n\n __listenUpdate(model, event) {\n model.on('change', (p, c) => this.em.trigger(event, p, p.changedAttributes(), c));\n },\n\n __destroy() {\n this.cls.forEach(coll => {\n coll.stopListening();\n coll.reset();\n });\n this.em = 0;\n this.config = 0;\n this.view?.remove();\n this.view = 0;\n },\n};\n","export default {\n // Style prefix\n stylePrefix: 'css-',\n\n // Default CSS style\n rules: [],\n\n /**\n * Adjust style object before creation/update.\n * @example\n * onBeforeStyle(style) {\n * const padValue = style.padding;\n * if (padValue === '10px') {\n * delete style.padding;\n * style['padding-top'] = padValue;\n * // ...\n * }\n * return style;\n * }\n */\n onBeforeStyle: null\n};\n","import { isEmpty, forEach, isString, isArray } from 'underscore';\nimport { Model } from '../../common';\nimport Styleable from '../../domain_abstract/model/Styleable';\nimport Selectors from '../../selector_manager/model/Selectors';\nimport { getMediaLength } from '../../code_manager/model/CssGenerator';\nimport { isEmptyObj, hasWin } from '../../utils/mixins';\n\nconst { CSS } = hasWin() ? window : {};\n\n/**\n * @typedef CssRule\n * @property {Array} selectors Array of selectors\n * @property {Object} style Object containing style definitions\n * @property {String} [selectorsAdd=''] Additional string css selectors\n * @property {String} [atRuleType=''] Type of at-rule, eg. `media`, 'font-face'\n * @property {String} [mediaText=''] At-rule value, eg. `(max-width: 1000px)`\n * @property {Boolean} [singleAtRule=false] This property is used only on at-rules, like 'page' or 'font-face', where the block containes only style declarations\n * @property {String} [state=''] State of the rule, eg: `hover`, `focused`\n * @property {Boolean|Array} [important=false] If true, sets `!important` on all properties. You can also pass an array to specify properties on which use important\n * @property {Boolean} [stylable=true] Indicates if the rule is stylable from the editor\n *\n * [Device]: device.html\n * [State]: state.html\n * [Component]: component.html\n */\nexport default class CssRule extends Model.extend(Styleable) {\n defaults() {\n return {\n selectors: [],\n selectorsAdd: '',\n style: {},\n mediaText: '',\n state: '',\n stylable: true,\n atRuleType: '',\n singleAtRule: false,\n important: false,\n group: '',\n // If true, won't be stored in JSON or showed in CSS\n shallow: false,\n _undo: true,\n };\n }\n\n initialize(c, opt = {}) {\n this.config = c || {};\n this.opt = opt;\n this.em = opt.em;\n this.ensureSelectors();\n this.on('change', this.__onChange);\n }\n\n __onChange(m, opts) {\n const { em } = this;\n const changed = this.changedAttributes();\n !isEmptyObj(changed) && em && em.changesUp(opts);\n }\n\n clone() {\n const opts = { ...this.opt };\n const attr = { ...this.attributes };\n attr.selectors = this.get('selectors').map(s => s.clone());\n return new this.constructor(attr, opts);\n }\n\n ensureSelectors(m, c, opts) {\n const { em } = this;\n const sm = em && em.get('SelectorManager');\n const toListen = [this, 'change:selectors', this.ensureSelectors];\n let sels = this.getSelectors();\n this.stopListening(...toListen);\n\n if (sels.models) {\n sels = [...sels.models];\n }\n\n sels = isString(sels) ? [sels] : sels;\n\n if (Array.isArray(sels)) {\n const res = sels.filter(i => i).map(i => (sm ? sm.add(i) : i));\n sels = new Selectors(res);\n }\n\n this.set('selectors', sels, opts);\n this.listenTo(...toListen);\n }\n\n /**\n * Returns the at-rule statement when exists, eg. `@media (...)`, `@keyframes`\n * @returns {String}\n * @example\n * const cssRule = editor.Css.setRule('.class1', { color: 'red' }, {\n * atRuleType: 'media',\n * atRuleParams: '(min-width: 500px)'\n * });\n * cssRule.getAtRule(); // \"@media (min-width: 500px)\"\n */\n getAtRule() {\n const type = this.get('atRuleType');\n const condition = this.get('mediaText');\n // Avoid breaks with the last condition\n const typeStr = type ? `@${type}` : condition ? '@media' : '';\n\n return typeStr + (condition && typeStr ? ` ${condition}` : '');\n }\n\n /**\n * Return selectors of the rule as a string\n * @param {Object} [opts] Options\n * @param {Boolean} [opts.skipState] Skip state from the result\n * @returns {String}\n * @example\n * const cssRule = editor.Css.setRule('.class1:hover', { color: 'red' });\n * cssRule.selectorsToString(); // \".class1:hover\"\n * cssRule.selectorsToString({ skipState: true }); // \".class1\"\n */\n selectorsToString(opts = {}) {\n const result = [];\n const state = this.get('state');\n const addSelector = this.get('selectorsAdd');\n const selOpts = {\n escape: str => (CSS && CSS.escape ? CSS.escape(str) : str),\n };\n const selectors = this.get('selectors').getFullString(0, selOpts);\n const stateStr = state && !opts.skipState ? `:${state}` : '';\n selectors && result.push(`${selectors}${stateStr}`);\n addSelector && !opts.skipAdd && result.push(addSelector);\n return result.join(', ');\n }\n\n /**\n * Get declaration block (without the at-rule statement)\n * @param {Object} [opts={}] Options (same as in `selectorsToString`)\n * @returns {String}\n * @example\n * const cssRule = editor.Css.setRule('.class1', { color: 'red' }, {\n * atRuleType: 'media',\n * atRuleParams: '(min-width: 500px)'\n * });\n * cssRule.getDeclaration() // \".class1{color:red;}\"\n */\n getDeclaration(opts = {}) {\n let result = '';\n const selectors = this.selectorsToString(opts);\n const style = this.styleToString(opts);\n const singleAtRule = this.get('singleAtRule');\n\n if ((selectors || singleAtRule) && (style || opts.allowEmpty)) {\n result = singleAtRule ? style : `${selectors}{${style}}`;\n }\n\n return result;\n }\n\n /**\n * Get the Device the rule is related to.\n * @returns {[Device]|null}\n * @example\n * const device = rule.getDevice();\n * console.log(device?.getName());\n */\n getDevice() {\n const { em } = this;\n const { atRuleType, mediaText } = this.attributes;\n const devices = em?.get('DeviceManager').getDevices() || [];\n const deviceDefault = devices.filter(d => d.getWidthMedia() === '')[0];\n if (atRuleType !== 'media' || !mediaText) {\n return deviceDefault || null;\n }\n return devices.filter(d => d.getWidthMedia() === getMediaLength(mediaText))[0] || null;\n }\n\n /**\n * Get the State the rule is related to.\n * @returns {[State]|null}\n * @example\n * const state = rule.getState();\n * console.log(state?.getLabel());\n */\n getState() {\n const { em } = this;\n const stateValue = this.get('state');\n const states = em.get('SelectorManager').getStates() || [];\n return states.filter(s => s.getName() === stateValue)[0] || null;\n }\n\n /**\n * Returns the related Component (valid only for component-specific rules).\n * @returns {[Component]|null}\n * @example\n * const cmp = rule.getComponent();\n * console.log(cmp?.toHTML());\n */\n getComponent() {\n const sel = this.getSelectors();\n const sngl = sel.length == 1 && sel.at(0);\n const cmpId = sngl && sngl.isId() && sngl.get('name');\n return (cmpId && this.em?.get('DomComponents').getById(cmpId)) || null;\n }\n\n /**\n * Return the CSS string of the rule\n * @param {Object} [opts={}] Options (same as in `getDeclaration`)\n * @return {String} CSS string\n * @example\n * const cssRule = editor.Css.setRule('.class1', { color: 'red' }, {\n * atRuleType: 'media',\n * atRuleParams: '(min-width: 500px)'\n * });\n * cssRule.toCSS() // \"@media (min-width: 500px){.class1{color:red;}}\"\n */\n toCSS(opts = {}) {\n let result = '';\n const atRule = this.getAtRule();\n const block = this.getDeclaration(opts);\n if (block || opts.allowEmpty) {\n result = block;\n }\n\n if (atRule && result) {\n result = `${atRule}{${result}}`;\n }\n\n return result;\n }\n\n toJSON(...args) {\n const obj = Model.prototype.toJSON.apply(this, args);\n\n if (this.em.getConfig('avoidDefaults')) {\n const defaults = this.defaults();\n\n forEach(defaults, (value, key) => {\n if (obj[key] === value) {\n delete obj[key];\n }\n });\n\n // Delete the property used for partial updates\n delete obj.style.__p;\n\n if (isEmpty(obj.selectors)) delete obj.selectors;\n if (isEmpty(obj.style)) delete obj.style;\n }\n\n return obj;\n }\n\n /**\n * Compare the actual model with parameters\n * @param {Object} selectors Collection of selectors\n * @param {String} state Css rule state\n * @param {String} width For which device this style is oriented\n * @param {Object} ruleProps Other rule props\n * @returns {Boolean}\n * @private\n */\n compare(selectors, state, width, ruleProps = {}) {\n const st = state || '';\n const wd = width || '';\n const selAdd = ruleProps.selectorsAdd || '';\n let atRule = ruleProps.atRuleType || '';\n const sel = !isArray(selectors) && !selectors.models ? [selectors] : selectors.models || selectors;\n\n // Fix atRuleType in case is not specified with width\n if (wd && !atRule) atRule = 'media';\n\n const a1 = sel.map(model => model.getFullName());\n const a2 = this.get('selectors').map(model => model.getFullName());\n\n // Check selectors\n const a1S = a1.slice().sort();\n const a2S = a2.slice().sort();\n if (a1.length !== a2.length || !a1S.every((v, i) => v === a2S[i])) {\n return false;\n }\n\n // Check other properties\n if (\n this.get('state') !== st ||\n this.get('mediaText') !== wd ||\n this.get('selectorsAdd') !== selAdd ||\n this.get('atRuleType') !== atRule\n ) {\n return false;\n }\n\n return true;\n }\n}\n","import { Collection } from '../../common';\nimport CssRule from './CssRule';\n\nexport default class CssRules extends Collection {\n initialize(models, opt) {\n // Inject editor\n if (opt && opt.em) this.editor = opt.em;\n\n // This will put the listener post CssComposer.postLoad\n setTimeout(() => {\n this.on('remove', this.onRemove);\n this.on('add', this.onAdd);\n });\n }\n\n toJSON(opts) {\n const result = Collection.prototype.toJSON.call(this, opts);\n return result.filter(rule => rule.style && !rule.shallow);\n }\n\n onAdd(model, c, o) {\n model.ensureSelectors(model, c, o); // required for undo\n }\n\n onRemove(removed) {\n const em = this.editor;\n em.stopListening(removed);\n em.get('UndoManager').remove(removed);\n }\n\n add(models, opt = {}) {\n if (typeof models === 'string') {\n models = this.editor.get('Parser').parseCss(models);\n }\n opt.em = this.editor;\n return Collection.prototype.add.apply(this, [models, opt]);\n }\n}\n\nCssRules.prototype.model = CssRule;\n","/**\n * This module manages CSS rules in the canvas.\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/css_composer/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * cssComposer: {\n * // options\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\n *\n * ```js\n * const css = editor.Css;\n * ```\n *\n * * [addRules](#addrules)\n * * [setRule](#setrule)\n * * [getRule](#getrule)\n * * [getRules](#getrules)\n * * [remove](#remove)\n * * [clear](#clear)\n *\n * [CssRule]: css_rule.html\n *\n * @module CssComposer\n */\n\nimport { isArray, isString, isUndefined } from 'underscore';\nimport { isObject } from '../utils/mixins';\nimport Module from '../abstract/moduleLegacy';\nimport Selectors from '../selector_manager/model/Selectors';\nimport Selector from '../selector_manager/model/Selector';\nimport defaults from './config/config';\nimport CssRule from './model/CssRule';\nimport CssRules from './model/CssRules';\nimport CssRulesView from './view/CssRulesView';\n\nexport default () => {\n let em;\n var c = {};\n var rules, rulesView;\n\n return {\n ...Module,\n\n Selectors,\n\n /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'CssComposer',\n\n storageKey: 'styles',\n\n getConfig() {\n return c;\n },\n\n /**\n * Initializes module. Automatically called with a new instance of the editor\n * @param {Object} config Configurations\n * @private\n */\n init(config) {\n c = config || {};\n for (var name in defaults) {\n if (!(name in c)) c[name] = defaults[name];\n }\n\n var ppfx = c.pStylePrefix;\n if (ppfx) c.stylePrefix = ppfx + c.stylePrefix;\n\n var elStyle = (c.em && c.em.config.style) || '';\n c.rules = elStyle || c.rules;\n\n em = c.em;\n rules = new CssRules([], c);\n return this;\n },\n\n /**\n * On load callback\n * @private\n */\n onLoad() {\n rules.add(c.rules, { silent: 1 });\n },\n\n /**\n * Do stuff after load\n * @param {Editor} em\n * @private\n */\n postLoad() {\n const um = em && em.get('UndoManager');\n um && um.add(this.getAll());\n },\n\n store() {\n return this.getProjectData();\n },\n\n load(data) {\n return this.loadProjectData(data);\n },\n\n /**\n * Add new rule to the collection, if not yet exists with the same selectors\n * @param {Array} selectors Array of selectors\n * @param {String} state Css rule state\n * @param {String} width For which device this style is oriented\n * @param {Object} props Other props for the rule\n * @param {Object} opts Options for the add of new rule\n * @return {Model}\n * @private\n * @example\n * var sm = editor.SelectorManager;\n * var sel1 = sm.add('myClass1');\n * var sel2 = sm.add('myClass2');\n * var rule = cssComposer.add([sel1, sel2], 'hover');\n * rule.set('style', {\n * width: '100px',\n * color: '#fff',\n * });\n * */\n add(selectors, state, width, opts = {}, addOpts = {}) {\n var s = state || '';\n var w = width || '';\n var opt = { ...opts };\n var rule = this.get(selectors, s, w, opt);\n\n // do not create rules that were found before\n // unless this is a single at-rule, for which multiple declarations\n // make sense (e.g. multiple `@font-type`s)\n if (rule && rule.config && !rule.config.singleAtRule) {\n return rule;\n } else {\n opt.state = s;\n opt.mediaText = w;\n opt.selectors = [];\n w && (opt.atRuleType = 'media');\n rule = new CssRule(opt, c);\n rule.get('selectors').add(selectors, addOpts);\n rules.add(rule, addOpts);\n return rule;\n }\n },\n\n /**\n * Get the rule\n * @param {String|Array} selectors Array of selectors or selector string, eg `.myClass1.myClass2`\n * @param {String} state Css rule state, eg. 'hover'\n * @param {String} width Media rule value, eg. '(max-width: 992px)'\n * @param {Object} ruleProps Other rule props\n * @return {Model|null}\n * @private\n * @example\n * const sm = editor.SelectorManager;\n * const sel1 = sm.add('myClass1');\n * const sel2 = sm.add('myClass2');\n * const rule = cssComposer.get([sel1, sel2], 'hover', '(max-width: 992px)');\n * // Update the style\n * rule.set('style', {\n * width: '300px',\n * color: '#000',\n * });\n * */\n get(selectors, state, width, ruleProps) {\n let slc = selectors;\n if (isString(selectors)) {\n const sm = em.get('SelectorManager');\n const singleSel = selectors.split(',')[0].trim();\n const node = em.get('Parser').parserCss.checkNode({ selectors: singleSel })[0];\n slc = sm.get(node.selectors);\n }\n return rules.find(rule => rule.compare(slc, state, width, ruleProps)) || null;\n },\n\n getAll() {\n return rules;\n },\n\n /**\n * Add a raw collection of rule objects\n * This method overrides styles, in case, of already defined rule\n * @param {String|Array} data CSS string or an array of rule objects, eg. [{selectors: ['class1'], style: {....}}, ..]\n * @param {Object} opts Options\n * @param {Object} props Additional properties to add on rules\n * @return {Array}\n * @private\n */\n addCollection(data, opts = {}, props = {}) {\n const result = [];\n\n if (isString(data)) {\n data = em.get('Parser').parseCss(data);\n }\n\n const d = data instanceof Array ? data : [data];\n\n for (var i = 0, l = d.length; i < l; i++) {\n var rule = d[i] || {};\n if (!rule.selectors) continue;\n var sm = c.em && c.em.get('SelectorManager');\n if (!sm) console.warn('Selector Manager not found');\n var sl = rule.selectors;\n var sels = sl instanceof Array ? sl : [sl];\n var newSels = [];\n\n for (var j = 0, le = sels.length; j < le; j++) {\n var selec = sm.add(sels[j]);\n newSels.push(selec);\n }\n\n var modelExists = this.get(newSels, rule.state, rule.mediaText, rule);\n var model = this.add(newSels, rule.state, rule.mediaText, rule, opts);\n var updateStyle = !modelExists || !opts.avoidUpdateStyle;\n const style = rule.style || {};\n\n isObject(props) && model.set(props, opts);\n\n if (updateStyle) {\n let styleUpdate = opts.extend ? { ...model.get('style'), ...style } : style;\n model.set('style', styleUpdate, opts);\n }\n\n result.push(model);\n }\n\n return result;\n },\n\n /**\n * Add CssRules via CSS string.\n * @param {String} css CSS string of rules to add.\n * @returns {Array<[CssRule]>} Array of rules\n * @example\n * const addedRules = css.addRules('.my-cls{ color: red } @media (max-width: 992px) { .my-cls{ color: darkred } }');\n * // Check rules\n * console.log(addedRules.map(rule => rule.toCSS()));\n */\n addRules(css) {\n return this.addCollection(css);\n },\n\n /**\n * Add/update the CssRule.\n * @param {String} selectors Selector string, eg. `.myclass`\n * @param {Object} style Style properties and values\n * @param {Object} [opts={}] Additional properties\n * @param {String} [opts.atRuleType=''] At-rule type, eg. `media`\n * @param {String} [opts.atRuleParams=''] At-rule parameters, eg. `(min-width: 500px)`\n * @returns {[CssRule]} The new/updated CssRule\n * @example\n * // Simple class-based rule\n * const rule = css.setRule('.class1.class2', { color: 'red' });\n * console.log(rule.toCSS()) // output: .class1.class2 { color: red }\n * // With state and other mixed selector\n * const rule = css.setRule('.class1.class2:hover, div#myid', { color: 'red' });\n * // output: .class1.class2:hover, div#myid { color: red }\n * // With media\n * const rule = css.setRule('.class1:hover', { color: 'red' }, {\n * atRuleType: 'media',\n * atRuleParams: '(min-width: 500px)',\n * });\n * // output: @media (min-width: 500px) { .class1:hover { color: red } }\n */\n setRule(selectors, style, opts = {}) {\n const { atRuleType, atRuleParams } = opts;\n const node = em.get('Parser').parserCss.checkNode({\n selectors,\n style,\n })[0];\n const { state, selectorsAdd } = node;\n const sm = em.get('SelectorManager');\n const selector = sm.add(node.selectors);\n const rule = this.add(selector, state, atRuleParams, {\n selectorsAdd,\n atRule: atRuleType,\n });\n rule.setStyle(style, opts);\n return rule;\n },\n\n /**\n * Get the CssRule.\n * @param {String} selectors Selector string, eg. `.myclass:hover`\n * @param {Object} [opts={}] Additional properties\n * @param {String} [opts.atRuleType=''] At-rule type, eg. `media`\n * @param {String} [opts.atRuleParams=''] At-rule parameters, eg. '(min-width: 500px)'\n * @returns {[CssRule]}\n * @example\n * const rule = css.getRule('.myclass1:hover');\n * const rule2 = css.getRule('.myclass1:hover, div#myid');\n * const rule3 = css.getRule('.myclass1', {\n * atRuleType: 'media',\n * atRuleParams: '(min-width: 500px)',\n * });\n */\n getRule(selectors, opts = {}) {\n const sm = em.get('SelectorManager');\n const node = em.get('Parser').parserCss.checkNode({ selectors })[0];\n const selector = sm.get(node.selectors);\n const { state, selectorsAdd } = node;\n const { atRuleType, atRuleParams } = opts;\n return (\n selector &&\n this.get(selector, state, atRuleParams, {\n selectorsAdd,\n atRule: atRuleType,\n })\n );\n },\n\n /**\n * Get all rules or filtered by a matching selector.\n * @param {String} [selector=''] Selector, eg. `.myclass`\n * @returns {Array<[CssRule]>}\n * @example\n * // Take all the component specific rules\n * const id = someComponent.getId();\n * const rules = css.getRules(`#${id}`);\n * console.log(rules.map(rule => rule.toCSS()))\n * // All rules in the project\n * console.log(css.getRules())\n */\n getRules(selector) {\n const rules = this.getAll();\n if (!selector) return [...rules.models];\n const sels = isString(selector) ? selector.split(',').map(s => s.trim()) : selector;\n const result = rules.filter(r => sels.indexOf(r.getSelectors().getFullString()) >= 0);\n return result;\n },\n\n /**\n * Add/update the CSS rule with id selector\n * @param {string} name Id selector name, eg. 'my-id'\n * @param {Object} style Style properties and values\n * @param {Object} [opts={}] Custom options, like `state` and `mediaText`\n * @return {CssRule} The new/updated rule\n * @private\n * @example\n * const rule = css.setIdRule('myid', { color: 'red' });\n * const ruleHover = css.setIdRule('myid', { color: 'blue' }, { state: 'hover' });\n * // This will add current CSS:\n * // #myid { color: red }\n * // #myid:hover { color: blue }\n */\n setIdRule(name, style = {}, opts = {}) {\n const { addOpts = {}, mediaText } = opts;\n const state = opts.state || '';\n const media = !isUndefined(mediaText) ? mediaText : em.getCurrentMedia();\n const sm = em.get('SelectorManager');\n const selector = sm.add({ name, type: Selector.TYPE_ID }, addOpts);\n const rule = this.add(selector, state, media, {}, addOpts);\n rule.setStyle(style, { ...opts, ...addOpts });\n return rule;\n },\n\n /**\n * Get the CSS rule by id selector\n * @param {string} name Id selector name, eg. 'my-id'\n * @param {Object} [opts={}] Custom options, like `state` and `mediaText`\n * @return {CssRule}\n * @private\n * @example\n * const rule = css.getIdRule('myid');\n * const ruleHover = css.setIdRule('myid', { state: 'hover' });\n */\n getIdRule(name, opts = {}) {\n const { mediaText } = opts;\n const state = opts.state || '';\n const media = !isUndefined(mediaText) ? mediaText : em.getCurrentMedia();\n const selector = em.get('SelectorManager').get(name, Selector.TYPE_ID);\n return selector && this.get(selector, state, media);\n },\n\n /**\n * Add/update the CSS rule with class selector\n * @param {string} name Class selector name, eg. 'my-class'\n * @param {Object} style Style properties and values\n * @param {Object} [opts={}] Custom options, like `state` and `mediaText`\n * @return {CssRule} The new/updated rule\n * @private\n * @example\n * const rule = css.setClassRule('myclass', { color: 'red' });\n * const ruleHover = css.setClassRule('myclass', { color: 'blue' }, { state: 'hover' });\n * // This will add current CSS:\n * // .myclass { color: red }\n * // .myclass:hover { color: blue }\n */\n setClassRule(name, style = {}, opts = {}) {\n const state = opts.state || '';\n const media = opts.mediaText || em.getCurrentMedia();\n const sm = em.get('SelectorManager');\n const selector = sm.add({ name, type: Selector.TYPE_CLASS });\n const rule = this.add(selector, state, media);\n rule.setStyle(style, opts);\n return rule;\n },\n\n /**\n * Get the CSS rule by class selector\n * @param {string} name Class selector name, eg. 'my-class'\n * @param {Object} [opts={}] Custom options, like `state` and `mediaText`\n * @return {CssRule}\n * @private\n * @example\n * const rule = css.getClassRule('myclass');\n * const ruleHover = css.getClassRule('myclass', { state: 'hover' });\n */\n getClassRule(name, opts = {}) {\n const state = opts.state || '';\n const media = opts.mediaText || em.getCurrentMedia();\n const selector = em.get('SelectorManager').get(name, Selector.TYPE_CLASS);\n return selector && this.get(selector, state, media);\n },\n\n /**\n * Remove rule, by CssRule or matching selector (eg. the selector will match also at-rules like `@media`)\n * @param {String|[CssRule]|Array<[CssRule]>} rule CssRule or matching selector.\n * @return {Array<[CssRule]>} Removed rules\n * @example\n * // Remove by CssRule\n * const toRemove = css.getRules('.my-cls');\n * css.remove(toRemove);\n * // Remove by selector\n * css.remove('.my-cls-2');\n */\n remove(rule, opts) {\n const toRemove = isString(rule) ? this.getRules(rule) : rule;\n const result = this.getAll().remove(toRemove, opts);\n return isArray(result) ? result : [result];\n },\n\n /**\n * Remove all rules\n * @return {this}\n */\n clear(opts = {}) {\n this.getAll().reset(null, opts);\n return this;\n },\n\n getComponentRules(cmp, opts = {}) {\n let { state, mediaText, current } = opts;\n if (current) {\n state = em.get('state') || '';\n mediaText = em.getCurrentMedia();\n }\n const id = cmp.getId();\n const rules = this.getAll().filter(r => {\n if (!isUndefined(state) && r.get('state') !== state) return;\n if (!isUndefined(mediaText) && r.get('mediaText') !== mediaText) return;\n return r.getSelectorsString() === `#${id}`;\n });\n return rules;\n },\n\n /**\n * Render the block of CSS rules\n * @return {HTMLElement}\n * @private\n */\n render() {\n rulesView && rulesView.remove();\n rulesView = new CssRulesView({\n collection: rules,\n config: c,\n });\n return rulesView.render().el;\n },\n\n destroy() {\n rules.reset();\n rules.stopListening();\n rulesView && rulesView.remove();\n [em, rules, rulesView].forEach(i => (i = null));\n c = {};\n },\n };\n};\n","import { View } from '../../common';\n\nexport default class CssRuleView extends View {\n tagName() {\n return 'style';\n }\n\n initialize(o = {}) {\n this.config = o.config || {};\n const { model } = this;\n this.listenTo(model, 'change', this.render);\n this.listenTo(model, 'destroy remove', this.remove);\n this.listenTo(model.get('selectors'), 'change', this.render);\n }\n\n render() {\n const { model, el } = this;\n const important = model.get('important');\n el.innerHTML = model.toCSS({ important });\n return this;\n }\n}\n","import CssRuleView from './CssRuleView';\n\nexport default class CssGroupRuleView extends CssRuleView {\n _createElement() {\n return document.createTextNode('');\n }\n\n render() {\n const model = this.model;\n const important = model.get('important');\n this.el.textContent = model.getDeclaration({ important });\n return this;\n }\n}\n","import { View } from '../../common';\nimport { createEl } from '../../utils/dom';\nimport CssRuleView from './CssRuleView';\nimport CssGroupRuleView from './CssGroupRuleView';\n\nconst getBlockId = (pfx, order) => `${pfx}${order ? `-${parseFloat(order)}` : ''}`;\n\nexport default class CssRulesView extends View {\n initialize(o) {\n const config = o.config || {};\n this.atRules = {};\n this.config = config;\n this.em = config.em;\n this.pfx = config.stylePrefix || '';\n this.className = this.pfx + 'rules';\n const coll = this.collection;\n this.listenTo(coll, 'add', this.addTo);\n this.listenTo(coll, 'reset', this.render);\n }\n\n /**\n * Add to collection\n * @param {Object} model\n * @private\n * */\n addTo(model) {\n this.addToCollection(model);\n }\n\n /**\n * Add new object to collection\n * @param {Object} model\n * @param {Object} fragmentEl\n * @return {Object}\n * @private\n * */\n addToCollection(model, fragmentEl) {\n // If the render is not yet started\n if (!this.renderStarted) {\n return;\n }\n\n const fragment = fragmentEl || null;\n const { config } = this;\n const opts = { model, config };\n let rendered, view;\n\n // I have to render keyframes of the same name together\n // Unfortunately at the moment I didn't find the way of appending them\n // if not staticly, via appendData\n if (model.get('atRuleType') === 'keyframes') {\n const atRule = model.getAtRule();\n let atRuleEl = this.atRules[atRule];\n\n if (!atRuleEl) {\n const styleEl = document.createElement('style');\n atRuleEl = document.createTextNode('');\n styleEl.appendChild(document.createTextNode(`${atRule}{`));\n styleEl.appendChild(atRuleEl);\n styleEl.appendChild(document.createTextNode(`}`));\n this.atRules[atRule] = atRuleEl;\n rendered = styleEl;\n }\n\n view = new CssGroupRuleView(opts);\n atRuleEl.appendData(view.render().el.textContent);\n } else {\n view = new CssRuleView(opts);\n rendered = view.render().el;\n }\n\n const clsName = this.className;\n const mediaText = model.get('mediaText');\n const defaultBlockId = getBlockId(clsName);\n let blockId = defaultBlockId;\n\n // If the rule contains a media query it might have a different container\n // for it (eg. rules created with Device Manager)\n if (mediaText) {\n blockId = getBlockId(clsName, this.getMediaWidth(mediaText));\n }\n\n if (rendered) {\n const container = fragment || this.el;\n let contRules;\n\n // Try to find a specific container for the rule (if it\n // containes a media query), otherwise get the default one\n try {\n contRules = container.querySelector(`#${blockId}`);\n } catch (e) {}\n\n if (!contRules) {\n contRules = container.querySelector(`#${defaultBlockId}`);\n }\n\n contRules.appendChild(rendered);\n }\n\n return rendered;\n }\n\n getMediaWidth(mediaText) {\n return mediaText && mediaText.replace(`(${this.em.getConfig('mediaCondition')}: `, '').replace(')', '');\n }\n\n render() {\n this.renderStarted = 1;\n this.atRules = {};\n const { em, $el, className, collection } = this;\n const frag = document.createDocumentFragment();\n $el.empty();\n\n // Create devices related DOM structure, ensure also to have a default container\n const prs = em.get('DeviceManager').getAll().pluck('priority');\n prs.every(pr => pr) && prs.unshift(0);\n prs.forEach(pr => frag.appendChild(createEl('div', { id: getBlockId(className, pr) })));\n\n collection.each(model => this.addToCollection(model, frag));\n $el.append(frag);\n $el.attr('class', className);\n return this;\n }\n}\n","export default {\n // The device `id` to select on start, if not indicated, the first available from `devices` will be used.\n default: null,\n\n // Default devices\n devices: [\n {\n id: 'desktop',\n name: 'Desktop',\n width: '',\n },\n {\n id: 'tablet',\n name: 'Tablet',\n width: '770px',\n widthMedia: '992px',\n },\n {\n id: 'mobileLandscape',\n name: 'Mobile landscape',\n width: '568px',\n widthMedia: '768px',\n },\n {\n id: 'mobilePortrait',\n name: 'Mobile portrait',\n width: '320px',\n widthMedia: '480px',\n },\n ],\n};\n","import { Model } from '../../common';\n\n/**\n * @typedef Device\n * @property {String} [name=''] Device type, eg. `Mobile`\n * @property {String} [width] Width to set for the editor iframe, eg. '900px'\n * @property {String} [height=''] Height to set for the editor iframe, eg. '600px'\n * @property {String} [widthMedia=''] The width which will be used in media queries, If empty the width will be used\n * @property {Number} [priority=null] Setup the order of media queries\n */\nexport default class Device extends Model {\n defaults() {\n return {\n name: '',\n width: null,\n height: '',\n widthMedia: null,\n priority: null,\n };\n }\n\n initialize() {\n this.get('widthMedia') === null && this.set('widthMedia', this.get('width'));\n this.get('width') === null && this.set('width', this.get('widthMedia'));\n !this.get('priority') && this.set('priority', parseFloat(this.get('widthMedia')) || 0);\n const toCheck = ['width', 'height', 'widthMedia'];\n toCheck.forEach(prop => this.checkUnit(prop));\n }\n\n checkUnit(prop) {\n const pr = this.get(prop) || '';\n const noUnit = (parseFloat(pr) || 0).toString() === pr.toString();\n noUnit && this.set(prop, `${pr}px`);\n }\n\n getName() {\n return this.get('name') || this.get('id');\n }\n\n getWidthMedia() {\n return this.get('widthMedia') || '';\n }\n}\n","import { Collection } from '../../common';\nimport Device from './Device';\n\nexport default class Devices extends Collection {\n comparator(left, right) {\n const max = Number.MAX_VALUE;\n return (right.get('priority') || max) - (left.get('priority') || max);\n }\n\n getSorted() {\n return this.sort();\n }\n}\n\nDevices.prototype.model = Device;\n","import { View } from '../../common';\nimport html from '../../utils/html';\n\nexport default class DevicesView extends View {\n template({ ppfx, label }) {\n return html`\n
${label}
\n
\n \n \n \n
\n
\n
\n
\n \n `;\n }\n\n events() {\n return {\n change: 'updateDevice',\n };\n }\n\n initialize(o) {\n this.config = o.config || {};\n this.em = this.config.em;\n this.ppfx = this.config.pStylePrefix || '';\n this.events['click .' + this.ppfx + 'add-trasp'] = this.startAdd;\n this.listenTo(this.em, 'change:device', this.updateSelect);\n this.delegateEvents();\n }\n\n /**\n * Start adding new device\n * @return {[type]} [description]\n * @private\n */\n startAdd() {}\n\n /**\n * Update device of the editor\n * @private\n */\n updateDevice() {\n var em = this.em;\n if (em) {\n var devEl = this.devicesEl;\n var val = devEl ? devEl.val() : '';\n em.set('device', val);\n }\n }\n\n /**\n * Update select value on device update\n * @private\n */\n updateSelect() {\n var em = this.em;\n var devEl = this.devicesEl;\n if (em && em.getDeviceModel && devEl) {\n var device = em.getDeviceModel();\n var name = device ? device.get('id') : '';\n devEl.val(name);\n }\n }\n\n /**\n * Return devices options\n * @return {string} String of options\n * @private\n */\n getOptions() {\n const { collection, em } = this;\n let result = '';\n\n collection.each(device => {\n const { name, id } = device.attributes;\n const label = (em && em.t && em.t(`deviceManager.devices.${id}`)) || name;\n result += ``;\n });\n\n return result;\n }\n\n render() {\n const { em, ppfx, $el, el } = this;\n const label = em && em.t && em.t('deviceManager.device');\n $el.html(this.template({ ppfx, label }));\n this.devicesEl = $el.find(`.${ppfx}devices`);\n this.devicesEl.append(this.getOptions());\n this.devicesEl.val(em.get('device'));\n el.className = `${ppfx}devices-c`;\n return this;\n }\n}\n","/**\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/device_manager/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * deviceManager: {\n * // options\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\n *\n * ```js\n * const deviceManager = editor.Devices;\n * ```\n * ## Available Events\n * * `device:add` - Added new device. The [Device] is passed as an argument to the callback\n * * `device:remove` - Device removed. The [Device] is passed as an argument to the callback\n * * `device:select` - New device selected. The newly selected [Device] and the previous one, are passed as arguments to the callback\n * * `device:update` - Device updated. The updated [Device] and the object containing changes are passed as arguments to the callback\n * * `device` - Catch-all event for all the events mentioned above. An object containing all the available data about the triggered event is passed as an argument to the callback\n *\n * ## Methods\n * * [add](#add)\n * * [get](#get)\n * * [getDevices](#getdevices)\n * * [remove](#remove)\n * * [select](#select)\n * * [getSelected](#getselected)\n *\n * [Device]: device.html\n *\n * @module Devices\n */\nimport { isString } from 'underscore';\nimport Module from '../abstract/moduleLegacy';\nimport defaults from './config/config';\nimport Device from './model/Device';\nimport Devices from './model/Devices';\nimport DevicesView from './view/DevicesView';\n\nexport const evAll = 'device';\nexport const evPfx = `${evAll}:`;\nexport const evSelect = `${evPfx}select`;\nexport const evSelectBefore = `${evSelect}:before`;\nexport const evUpdate = `${evPfx}update`;\nexport const evAdd = `${evPfx}add`;\nexport const evAddBefore = `${evAdd}:before`;\nexport const evRemove = `${evPfx}remove`;\nexport const evRemoveBefore = `${evRemove}:before`;\nconst chnSel = 'change:device';\n\nexport default () => {\n let c = {};\n let devices;\n let view;\n\n return {\n ...Module,\n\n name: 'DeviceManager',\n\n Device,\n\n Devices,\n\n events: {\n all: evAll,\n select: evSelect,\n // selectBefore: evSelectBefore,\n update: evUpdate,\n add: evAdd,\n // addBefore: evAddBefore,\n remove: evRemove,\n removeBefore: evRemoveBefore,\n },\n\n init(config = {}) {\n c = { ...defaults, ...config };\n const { em } = c;\n\n devices = new Devices();\n c.devices.forEach(dv => this.add(dv));\n this.em = em;\n this.all = devices;\n this.select(c.default || devices.at(0));\n this.__initListen();\n em.on(chnSel, this._onSelect, this);\n\n return this;\n },\n\n _onSelect(m, deviceId, opts) {\n const { em, events } = this;\n const prevId = m.previous('device');\n const newDevice = this.get(deviceId);\n const ev = events.select;\n em.trigger(ev, newDevice, this.get(prevId));\n this.__catchAllEvent(ev, newDevice, opts);\n },\n\n /**\n * Add new device\n * @param {Object} props Device properties\n * @returns {[Device]} Added device\n * @example\n * const device1 = deviceManager.add({\n * // Without an explicit ID, the `name` will be taken. In case of missing `name`, a random ID will be created.\n * id: 'tablet',\n * name: 'Tablet',\n * width: '900px', // This width will be applied on the canvas frame and for the CSS media\n * });\n * const device2 = deviceManager.add({\n * id: 'tablet2',\n * name: 'Tablet 2',\n * width: '800px', // This width will be applied on the canvas frame\n * widthMedia: '810px', // This width that will be used for the CSS media\n * height: '600px', // Height will be applied on the canvas frame\n * });\n */\n add(props, options = {}) {\n let result;\n let opts = options;\n\n // Support old API\n if (isString(props)) {\n const width = options;\n opts = arguments[2] || {};\n result = {\n ...opts,\n id: props,\n name: opts.name || props,\n width,\n };\n } else {\n result = props;\n }\n\n if (!result.id) {\n result.id = result.name || this._createId();\n }\n\n return devices.add(result, opts);\n },\n\n /**\n * Return device by ID\n * @param {String} id ID of the device\n * @returns {[Device]|null}\n * @example\n * const device = deviceManager.get('Tablet');\n * console.log(JSON.stringify(device));\n * // {name: 'Tablet', width: '900px'}\n */\n get(id) {\n // Support old API\n const byName = this.getAll().filter(d => d.get('name') === id)[0];\n return byName || devices.get(id) || null;\n },\n\n /**\n * Remove device\n * @param {String|[Device]} device Device or device id\n * @returns {[Device]} Removed device\n * @example\n * const removed = deviceManager.remove('device-id');\n * // or by passing the Device\n * const device = deviceManager.get('device-id');\n * deviceManager.remove(device);\n */\n remove(device, opts = {}) {\n return this.__remove(device, opts);\n },\n\n /**\n * Return all devices\n * @returns {Array<[Device]>}\n * @example\n * const devices = deviceManager.getDevices();\n * console.log(JSON.stringify(devices));\n * // [{name: 'Desktop', width: ''}, ...]\n */\n getDevices() {\n return devices.models;\n },\n\n /**\n * Change the selected device. This will update the frame in the canvas\n * @param {String|[Device]} device Device or device id\n * @example\n * deviceManager.select('some-id');\n * // or by passing the page\n * const device = deviceManager.get('some-id');\n * deviceManager.select(device);\n */\n select(device, opts = {}) {\n const md = isString(device) ? this.get(device) : device;\n md && this.em.set('device', md.get('id'), opts);\n return this;\n },\n\n /**\n * Get the selected device\n * @returns {[Device]}\n * @example\n * const selected = deviceManager.getSelected();\n */\n getSelected() {\n return this.get(this.em.get('device'));\n },\n\n getAll() {\n return devices;\n },\n\n render() {\n view && view.remove();\n view = new DevicesView({\n collection: devices,\n config: c,\n });\n return view.render().el;\n },\n\n destroy() {\n devices.stopListening();\n devices.reset();\n view && view.remove();\n [devices, view].forEach(i => (i = null));\n c = {};\n },\n };\n};\n","export default {\n stylePrefix: 'comp-',\n\n // Could be used for default components\n components: [],\n\n // If the component is draggable you can drag the component itself (not only from the toolbar)\n draggableComponents: 1,\n\n /**\n * You can setup a custom component definition processor before adding it into the editor.\n * It might be useful to transform custom objects (es. some framework specific JSX) to GrapesJS component one.\n * This custom function will be executed on ANY new added component to the editor so make smart checks/conditions\n * to avoid doing useless executions\n * By default, GrapesJS supports already elements generated from React JSX preset\n * @example\n * processor: (obj) => {\n * if (obj.$$typeof) { // eg. this is a React Element\n * const gjsComponent = {\n * type: obj.type,\n * components: obj.props.children,\n * ...\n * };\n * ...\n * return gjsComponent;\n * }\n * }\n */\n processor: 0,\n\n // List of HTML void elements\n // https://www.w3.org/TR/2011/WD-html-markup-20110113/syntax.html#void-elements\n voidElements: [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'menuitem',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n ],\n};\n","import ComponentView from './ComponentView';\n\nexport default class ComponentWrapperView extends ComponentView {\n tagName() {\n return 'div';\n }\n}\n","import Component from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type: 'cell',\n tagName: 'td',\n draggable: ['tr']\n }\n },\n {\n isComponent: el => ['td', 'th'].indexOf(toLowerCase(el.tagName)) >= 0\n }\n);\n","import ComponentView from './ComponentView';\n\nexport default ComponentView.extend({});\n","import Component from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nconst tagName = 'tr';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n tagName,\n draggable: ['thead', 'tbody', 'tfoot'],\n droppable: ['th', 'td']\n }\n },\n {\n isComponent: el => toLowerCase(el.tagName) === tagName\n }\n);\n","import ComponentView from './ComponentView';\n\nexport default ComponentView.extend({});\n","import Component from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'table';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type,\n tagName: type,\n droppable: ['tbody', 'thead', 'tfoot']\n },\n\n initialize(o, opt) {\n Component.prototype.initialize.apply(this, arguments);\n const components = this.get('components');\n !components.length && components.add({ type: 'tbody' });\n }\n },\n {\n isComponent: el => toLowerCase(el.tagName) === type\n }\n);\n","import ComponentView from './ComponentView';\n\nexport default ComponentView.extend({\n events: {}\n});\n","import Component from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'tbody';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type,\n tagName: type,\n draggable: ['table'],\n droppable: ['tr'],\n columns: 1,\n rows: 1\n },\n\n initialize(o, opt) {\n Component.prototype.initialize.apply(this, arguments);\n const components = this.get('components');\n let columns = this.get('columns');\n let rows = this.get('rows');\n\n // Init components if empty\n if (!components.length) {\n const rowsToAdd = [];\n\n while (rows--) {\n const columnsToAdd = [];\n let clm = columns;\n\n while (clm--) {\n columnsToAdd.push({\n type: 'cell',\n classes: ['cell']\n });\n }\n\n rowsToAdd.push({\n type: 'row',\n classes: ['row'],\n components: columnsToAdd\n });\n }\n\n components.add(rowsToAdd);\n }\n }\n },\n {\n isComponent: el => toLowerCase(el.tagName) === type\n }\n);\n","import ComponentTableBody from './ComponentTableBody';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'thead';\n\nexport default ComponentTableBody.extend(\n {\n defaults: {\n ...ComponentTableBody.prototype.defaults,\n type,\n tagName: type\n }\n },\n {\n isComponent: el => toLowerCase(el.tagName) === type\n }\n);\n","import ComponentView from './ComponentView';\n\nexport default ComponentView.extend({});\n","import ComponentView from './ComponentView';\n\nexport default ComponentView.extend({});\n","import ComponentTableBody from './ComponentTableBody';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'tfoot';\n\nexport default ComponentTableBody.extend(\n {\n defaults: {\n ...ComponentTableBody.prototype.defaults,\n type,\n tagName: type\n }\n },\n {\n isComponent: el => toLowerCase(el.tagName) === type\n }\n);\n","import ComponentView from './ComponentView';\n\nexport default ComponentView.extend({});\n","import { result } from 'underscore';\nimport Component from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nconst svgAttrs =\n 'xmlns=\"http://www.w3.org/2000/svg\" width=\"100\" viewBox=\"0 0 24 24\" style=\"fill: rgba(0,0,0,0.15); transform: scale(0.75)\"';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type: 'image',\n tagName: 'img',\n void: true,\n droppable: 0,\n editable: 1,\n highlightable: 0,\n resizable: { ratioDefault: 1 },\n traits: ['alt'],\n\n src: `\n \n `,\n\n // Fallback image in case the src can't be loaded\n // If you use SVG, xmlns=\"http://www.w3.org/2000/svg\" is required\n fallback: `\n \n `,\n\n // File to load asynchronously once the model is rendered\n file: ''\n },\n\n initialize(o, opt) {\n Component.prototype.initialize.apply(this, arguments);\n const { src } = this.get('attributes');\n if (src) this.set('src', src, { silent: 1 });\n },\n\n initToolbar(...args) {\n Component.prototype.initToolbar.apply(this, args);\n const em = this.em;\n\n if (em) {\n var cmd = em.get('Commands');\n var cmdName = 'image-editor';\n\n // Add Image Editor button only if the default command exists\n if (cmd.has(cmdName)) {\n let hasButtonBool = false;\n var tb = this.get('toolbar');\n\n for (let i = 0; i < tb.length; i++) {\n if (tb[i].command === 'image-editor') {\n hasButtonBool = true;\n break;\n }\n }\n\n if (!hasButtonBool) {\n tb.push({\n attributes: { class: 'fa fa-pencil' },\n command: cmdName\n });\n this.set('toolbar', tb);\n }\n }\n }\n },\n\n /**\n * Returns object of attributes for HTML\n * @return {Object}\n * @private\n */\n getAttrToHTML(...args) {\n const attr = Component.prototype.getAttrToHTML.apply(this, args);\n const src = this.getSrcResult();\n if (src) attr.src = src;\n return attr;\n },\n\n getSrcResult(opt = {}) {\n const src = this.get(opt.fallback ? 'fallback' : 'src') || '';\n let result = src;\n\n if (src && src.substr(0, 4) === ' toLowerCase(el.tagName) === 'img'\n }\n);\n","import Component from './ComponentImage';\nimport OComponent from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type: 'map',\n src: '',\n void: 0,\n mapUrl: 'https://maps.google.com/maps',\n tagName: 'iframe',\n mapType: 'q',\n address: '',\n zoom: '1',\n attributes: { frameborder: 0 },\n toolbar: OComponent.prototype.defaults.toolbar,\n traits: [\n {\n label: 'Address',\n name: 'address',\n placeholder: 'eg. London, UK',\n changeProp: 1\n },\n {\n type: 'select',\n label: 'Map type',\n name: 'mapType',\n changeProp: 1,\n options: [\n { value: 'q', name: 'Roadmap' },\n { value: 'w', name: 'Satellite' }\n ]\n },\n {\n label: 'Zoom',\n name: 'zoom',\n type: 'range',\n min: '1',\n max: '20',\n changeProp: 1\n }\n ]\n },\n\n initialize(o, opt) {\n if (this.get('src')) this.parseFromSrc();\n else this.updateSrc();\n Component.prototype.initialize.apply(this, arguments);\n this.listenTo(\n this,\n 'change:address change:zoom change:mapType',\n this.updateSrc\n );\n },\n\n updateSrc() {\n this.set('src', this.getMapUrl());\n },\n\n /**\n * Returns url of the map\n * @return {string}\n * @private\n */\n getMapUrl() {\n var md = this;\n var addr = md.get('address');\n var zoom = md.get('zoom');\n var type = md.get('mapType');\n var size = '';\n addr = addr ? '&q=' + addr : '';\n zoom = zoom ? '&z=' + zoom : '';\n type = type ? '&t=' + type : '';\n var result = md.get('mapUrl') + '?' + addr + zoom + type;\n result += '&output=embed';\n return result;\n },\n\n /**\n * Set attributes by src string\n * @private\n */\n parseFromSrc() {\n var uri = this.parseUri(this.get('src'));\n var qr = uri.query;\n if (qr.q) this.set('address', qr.q);\n if (qr.z) this.set('zoom', qr.z);\n if (qr.t) this.set('mapType', qr.t);\n }\n },\n {\n /**\n * Detect if the passed element is a valid component.\n * In case the element is valid an object abstracted\n * from the element will be returned\n * @param {HTMLElement}\n * @return {Object}\n * @private\n */\n isComponent(el) {\n var result = '';\n if (\n toLowerCase(el.tagName) == 'iframe' &&\n /maps\\.google\\.com/.test(el.src)\n ) {\n result = { type: 'map', src: el.src };\n }\n return result;\n }\n }\n);\n","import { isString } from 'underscore';\nimport ComponentView from './ComponentView';\n\nexport default ComponentView.extend({\n tagName: 'img',\n\n events: {\n dblclick: 'onActive',\n click: 'initResize',\n error: 'onError',\n load: 'onLoad',\n dragstart: 'noDrag',\n },\n\n initialize(o) {\n ComponentView.prototype.initialize.apply(this, arguments);\n this.listenTo(this.model, 'change:src', this.updateSrc);\n this.classEmpty = `${this.ppfx}plh-image`;\n this.fetchFile();\n },\n\n /**\n * Fetch file if exists\n */\n fetchFile() {\n if (this.modelOpt.temporary) return;\n const { model, em } = this;\n const file = model.get('file');\n\n if (file && em) {\n const fu = em.get('AssetManager').FileUploader();\n fu?.uploadFile({ dataTransfer: { files: [file] } }, res => {\n const obj = res && res.data && res.data[0];\n const src = obj && (isString(obj) ? obj : obj.src);\n src && model.set({ src });\n });\n model.set('file', '');\n }\n },\n\n /**\n * Update src attribute\n * @private\n * */\n updateSrc() {\n const { model, classEmpty, $el } = this;\n const src = model.getSrcResult();\n const srcExists = src && !model.isDefaultSrc();\n model.addAttributes({ src });\n $el[srcExists ? 'removeClass' : 'addClass'](classEmpty);\n },\n\n /**\n * Open dialog for image changing\n * @param {Object} e Event\n * @private\n * */\n onActive(ev) {\n ev && ev.stopPropagation();\n const { em, model } = this;\n const am = em && em.get('AssetManager');\n\n if (am && model.get('editable')) {\n am.open({\n select(asset, complete) {\n model.set({ src: asset.getSrc() });\n complete && am.close();\n },\n target: model,\n types: ['image'],\n accept: 'image/*',\n });\n }\n },\n\n onError() {\n const fallback = this.model.getSrcResult({ fallback: 1 });\n if (fallback) this.el.src = fallback;\n },\n\n onLoad() {\n // Used to update component tools box (eg. toolbar, resizer) once the image is loaded\n this.em.trigger('change:canvasOffset');\n },\n\n noDrag(ev) {\n ev.preventDefault();\n return false;\n },\n\n render() {\n this.renderAttributes();\n if (this.modelOpt.temporary) return this;\n this.updateSrc();\n const { $el, model } = this;\n const cls = $el.attr('class') || '';\n !model.get('src') && $el.attr('class', `${cls} ${this.classEmpty}`.trim());\n this.postRender();\n\n return this;\n },\n});\n","import Backbone from 'backbone';\nimport ComponentView from './ComponentImageView';\n\nexport default ComponentView.extend({\n tagName: 'div',\n\n events: {},\n\n initialize(o) {\n ComponentView.prototype.initialize.apply(this, arguments);\n this.classEmpty = this.ppfx + 'plh-map';\n },\n\n /**\n * Update the map on the canvas\n * @private\n */\n updateSrc() {\n this.getIframe().src = this.model.get('src');\n },\n\n getIframe() {\n if (!this.iframe) {\n var ifrm = document.createElement('iframe');\n ifrm.src = this.model.get('src');\n ifrm.frameBorder = 0;\n ifrm.style.height = '100%';\n ifrm.style.width = '100%';\n ifrm.className = this.ppfx + 'no-pointer';\n this.iframe = ifrm;\n }\n return this.iframe;\n },\n\n render(...args) {\n ComponentView.prototype.render.apply(this, args);\n this.updateClasses();\n this.el.appendChild(this.getIframe());\n return this;\n }\n});\n","import Component from './Component';\n\nexport default class ComponentText extends Component {}\n\nComponentText.prototype.defaults = {\n ...Component.getDefaults(),\n type: 'text',\n droppable: false,\n editable: true,\n};\n","import { forEach } from 'underscore';\nimport { toLowerCase } from 'utils/mixins';\nimport ComponentText from './ComponentText';\n\nconst type = 'link';\n\nexport default class ComponentLink extends ComponentText {}\n\nComponentLink.prototype.defaults = {\n ...ComponentText.getDefaults(),\n type,\n tagName: 'a',\n traits: ['title', 'href', 'target'],\n};\n\nComponentLink.isComponent = (el, opts = {}) => {\n let result;\n\n if (toLowerCase(el.tagName) === 'a') {\n const textTags = opts.textTags || [];\n result = { type, editable: false };\n\n // The link is editable only if, at least, one of its\n // children is a text node (not empty one)\n const children = el.childNodes;\n const len = children.length;\n if (!len) delete result.editable;\n\n forEach(children, child => {\n const { tagName } = child;\n if (\n (child.nodeType == 3 && child.textContent.trim() !== '') ||\n (tagName && textTags.indexOf(toLowerCase(tagName)) >= 0)\n ) {\n delete result.editable;\n }\n });\n }\n\n return result;\n};\n","import { on, off, getModel } from 'utils/mixins';\nimport ComponentView from './ComponentView';\nimport { bindAll } from 'underscore';\n\nconst compProt = ComponentView.prototype;\n\nexport default ComponentView.extend({\n events: {\n dblclick: 'onActive',\n input: 'onInput',\n },\n\n initialize(o) {\n compProt.initialize.apply(this, arguments);\n bindAll(this, 'disableEditing', 'onDisable');\n const model = this.model;\n const em = this.em;\n this.listenTo(model, 'focus', this.onActive);\n this.listenTo(model, 'change:content', this.updateContentText);\n this.listenTo(model, 'sync:content', this.syncContent);\n this.rte = em && em.get('RichTextEditor');\n },\n\n updateContentText(m, v, opts = {}) {\n !opts.fromDisable && this.disableEditing();\n },\n\n canActivate() {\n const { model, rteEnabled, em } = this;\n const modelInEdit = em?.getEditing();\n const sameInEdit = modelInEdit === model;\n let result = true;\n let isInnerText = false;\n let delegate;\n\n if (rteEnabled || !model.get('editable') || sameInEdit || (isInnerText = model.isChildOf('text'))) {\n result = false;\n // If the current is inner text, select the closest text\n if (isInnerText && !model.get('textable')) {\n let parent = model.parent();\n\n while (parent && !parent.isInstanceOf('text')) {\n parent = parent.parent();\n }\n\n if (parent && parent.get('editable')) {\n delegate = parent;\n } else {\n result = true;\n }\n }\n }\n\n return { result, delegate };\n },\n\n /**\n * Enable element content editing\n * @private\n * */\n async onActive(ev) {\n const { rte, em } = this;\n const { result, delegate } = this.canActivate();\n\n // We place this before stopPropagation in case of nested\n // text components will not block the editing (#1394)\n if (!result) {\n if (delegate) {\n ev?.stopPropagation?.();\n em.setSelected(delegate);\n delegate.trigger('active', ev);\n }\n return;\n }\n\n ev?.stopPropagation?.();\n this.lastContent = this.getContent();\n\n if (rte) {\n try {\n this.activeRte = await rte.enable(this, this.activeRte, { event: ev });\n } catch (err) {\n em.logError(err);\n }\n }\n\n this.toggleEvents(1);\n },\n\n onDisable() {\n this.disableEditing();\n },\n\n /**\n * Disable element content editing\n * @private\n * */\n async disableEditing(opts = {}) {\n const { model, rte, activeRte, em } = this;\n // There are rare cases when disableEditing is called when the view is already removed\n // so, we have to check for the model, this will avoid breaking stuff.\n const editable = model && model.get('editable');\n\n if (rte) {\n try {\n await rte.disable(this, activeRte);\n } catch (err) {\n em.logError(err);\n }\n\n if (editable && this.getContent() !== this.lastContent) {\n this.syncContent(opts);\n this.lastContent = '';\n }\n }\n\n this.toggleEvents();\n },\n\n /**\n * get content from RTE\n * @return string\n */\n getContent() {\n const { activeRte } = this;\n const canGetRteContent = activeRte && typeof activeRte.getContent === 'function';\n\n return canGetRteContent ? activeRte.getContent() : this.getChildrenContainer().innerHTML;\n },\n\n /**\n * Merge content from the DOM to the model\n */\n syncContent(opts = {}) {\n const { model, rte, rteEnabled } = this;\n if (!rteEnabled && !opts.force) return;\n const content = this.getContent();\n const comps = model.components();\n const contentOpt = { fromDisable: 1, ...opts };\n model.set('content', '', contentOpt);\n\n // If there is a custom RTE the content is just baked staticly\n // inside 'content'\n if (rte.customRte) {\n comps.length && comps.reset(null, opts);\n model.set('content', content, contentOpt);\n } else {\n comps.resetFromString(content, opts);\n }\n },\n\n insertComponent(content, opts = {}) {\n const { model, el } = this;\n const doc = el.ownerDocument;\n const selection = doc.getSelection();\n\n if (selection?.rangeCount) {\n const range = selection.getRangeAt(0);\n const textNode = range.startContainer;\n const offset = range.startOffset;\n const textModel = getModel(textNode);\n const newCmps = [];\n\n if (textModel && textModel.is?.('textnode')) {\n const cmps = textModel.collection;\n cmps.forEach(cmp => {\n if (cmp === textModel) {\n const type = 'textnode';\n const cnt = cmp.get('content');\n newCmps.push({ type, content: cnt.slice(0, offset) });\n newCmps.push(content);\n newCmps.push({ type, content: cnt.slice(offset) });\n } else {\n newCmps.push(cmp);\n }\n });\n\n const result = newCmps.filter(Boolean);\n const index = result.indexOf(content);\n cmps.reset(result, opts);\n\n return cmps.at(index);\n }\n }\n\n return model.append(content, opts);\n },\n\n /**\n * Callback on input event\n * @param {Event} e\n */\n onInput() {\n const { em } = this;\n const evPfx = 'component';\n const ev = [`${evPfx}:update`, `${evPfx}:input`].join(' ');\n\n // Update toolbars\n em && em.trigger(ev, this.model);\n },\n\n /**\n * Isolate disable propagation method\n * @param {Event}\n * @private\n * */\n disablePropagation(e) {\n e.stopPropagation();\n },\n\n /**\n * Enable/Disable events\n * @param {Boolean} enable\n */\n toggleEvents(enable) {\n const { em, model, $el } = this;\n const mixins = { on, off };\n const method = enable ? 'on' : 'off';\n em.setEditing(enable ? this : 0);\n this.rteEnabled = !!enable;\n\n // The ownerDocument is from the frame\n var elDocs = [this.el.ownerDocument, document];\n mixins.off(elDocs, 'mousedown', this.onDisable);\n mixins[method](elDocs, 'mousedown', this.onDisable);\n em[method]('toolbar:run:before', this.onDisable);\n if (model) {\n model[method]('removed', this.onDisable);\n model.trigger(`rte:${enable ? 'enable' : 'disable'}`);\n }\n\n // Avoid closing edit mode on component click\n $el && $el.off('mousedown', this.disablePropagation);\n $el && $el[method]('mousedown', this.disablePropagation);\n\n // Fixes #2210 but use this also as a replacement\n // of this fix: bd7b804f3b46eb45b4398304b2345ce870f232d2\n if (this.config.draggableComponents) {\n let { el } = this;\n\n while (el) {\n el.draggable = enable ? !1 : !0;\n // Note: el.parentNode is sometimes null here\n el = el.parentNode;\n el && el.tagName == 'BODY' && (el = 0);\n }\n }\n },\n});\n","import ComponentView from './ComponentTextView';\n\nexport default ComponentView.extend({\n render(...args) {\n ComponentView.prototype.render.apply(this, args);\n\n // I need capturing instead of bubbling as bubbled clicks from other\n // children will execute the link event\n this.el.addEventListener('click', this.prevDef, true);\n\n return this;\n }\n});\n","import Component from './ComponentText';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'label';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type,\n tagName: type,\n traits: ['id', 'title', 'for']\n }\n },\n {\n isComponent: el => toLowerCase(el.tagName) === type\n }\n);\n","import ComponentLinkView from './ComponentLinkView';\n\nexport default ComponentLinkView.extend({\n tagName: 'span' // Avoid Firefox bug with label editing #2332\n});\n","import Component from './ComponentImage';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'video';\nconst yt = 'yt';\nconst vi = 'vi';\nconst ytnc = 'ytnc';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type,\n tagName: type,\n videoId: '',\n void: 0,\n provider: 'so', // on change of provider, traits are switched\n ytUrl: 'https://www.youtube.com/embed/',\n ytncUrl: 'https://www.youtube-nocookie.com/embed/',\n viUrl: 'https://player.vimeo.com/video/',\n loop: 0,\n poster: '',\n muted: 0,\n autoplay: 0,\n controls: 1,\n color: '',\n list: '',\n rel: 1, // YT related videos\n modestbranding: 0, // YT modest branding\n sources: [],\n attributes: { allowfullscreen: 'allowfullscreen' }\n },\n\n initialize(o, opt) {\n this.em = opt.em;\n if (this.get('src')) this.parseFromSrc();\n this.updateTraits();\n this.listenTo(this, 'change:provider', this.updateTraits);\n this.listenTo(this, 'change:videoId change:provider', this.updateSrc);\n Component.prototype.initialize.apply(this, arguments);\n },\n\n /**\n * Update traits by provider\n * @private\n */\n updateTraits() {\n const prov = this.get('provider');\n let tagName = 'iframe';\n let traits;\n\n switch (prov) {\n case yt:\n case ytnc:\n traits = this.getYoutubeTraits();\n break;\n case vi:\n traits = this.getVimeoTraits();\n break;\n default:\n tagName = 'video';\n traits = this.getSourceTraits();\n }\n\n this.set({ tagName }, { silent: 1 }); // avoid break in view\n this.set({ traits });\n this.em.trigger('component:toggled');\n },\n\n /**\n * Set attributes by src string\n */\n parseFromSrc() {\n var prov = this.get('provider');\n var uri = this.parseUri(this.get('src'));\n var qr = uri.query;\n switch (prov) {\n case yt:\n case ytnc:\n case vi:\n var videoId = uri.pathname.split('/').pop();\n this.set('videoId', videoId);\n qr.list && this.set('list', qr.list);\n if (qr.autoplay) this.set('autoplay', 1);\n if (qr.loop) this.set('loop', 1);\n if (parseInt(qr.controls) === 0) this.set('controls', 0);\n if (qr.color) this.set('color', qr.color);\n if (qr.rel === '0') this.set('rel', 0);\n if (qr.modestbranding === '1') this.set('modestbranding', 1);\n break;\n default:\n }\n },\n\n /**\n * Update src on change of video ID\n * @private\n */\n updateSrc() {\n const prov = this.get('provider');\n let src = '';\n\n switch (prov) {\n case yt:\n src = this.getYoutubeSrc();\n break;\n case ytnc:\n src = this.getYoutubeNoCookieSrc();\n break;\n case vi:\n src = this.getVimeoSrc();\n break;\n }\n\n this.set({ src });\n },\n\n /**\n * Returns object of attributes for HTML\n * @return {Object}\n * @private\n */\n getAttrToHTML(...args) {\n var attr = Component.prototype.getAttrToHTML.apply(this, args);\n var prov = this.get('provider');\n switch (prov) {\n case yt:\n case ytnc:\n case vi:\n break;\n default:\n if (this.get('loop')) attr.loop = 'loop';\n if (this.get('autoplay')) attr.autoplay = 'autoplay';\n if (this.get('controls')) attr.controls = 'controls';\n }\n return attr;\n },\n\n // Listen provider change and switch traits, in TraitView listen traits change\n\n /**\n * Return the provider trait\n * @return {Object}\n * @private\n */\n getProviderTrait() {\n return {\n type: 'select',\n label: 'Provider',\n name: 'provider',\n changeProp: 1,\n options: [\n { value: 'so', name: 'HTML5 Source' },\n { value: yt, name: 'Youtube' },\n { value: ytnc, name: 'Youtube (no cookie)' },\n { value: vi, name: 'Vimeo' }\n ]\n };\n },\n\n /**\n * Return traits for the source provider\n * @return {Array}\n * @private\n */\n getSourceTraits() {\n return [\n this.getProviderTrait(),\n {\n label: 'Source',\n name: 'src',\n placeholder: 'eg. ./media/video.mp4',\n changeProp: 1\n },\n {\n label: 'Poster',\n name: 'poster',\n placeholder: 'eg. ./media/image.jpg'\n // changeProp: 1\n },\n this.getAutoplayTrait(),\n this.getLoopTrait(),\n this.getControlsTrait()\n ];\n },\n /**\n * Return traits for the source provider\n * @return {Array}\n * @private\n */\n getYoutubeTraits() {\n return [\n this.getProviderTrait(),\n {\n label: 'Video ID',\n name: 'videoId',\n placeholder: 'eg. jNQXAC9IVRw',\n changeProp: 1\n },\n this.getAutoplayTrait(),\n this.getLoopTrait(),\n this.getControlsTrait(),\n {\n type: 'checkbox',\n label: 'Related',\n name: 'rel',\n changeProp: 1\n },\n {\n type: 'checkbox',\n label: 'Modest',\n name: 'modestbranding',\n changeProp: 1\n }\n ];\n },\n\n /**\n * Return traits for the source provider\n * @return {Array}\n * @private\n */\n getVimeoTraits() {\n return [\n this.getProviderTrait(),\n {\n label: 'Video ID',\n name: 'videoId',\n placeholder: 'eg. 123456789',\n changeProp: 1\n },\n {\n label: 'Color',\n name: 'color',\n placeholder: 'eg. FF0000',\n changeProp: 1\n },\n this.getAutoplayTrait(),\n this.getLoopTrait()\n ];\n },\n\n /**\n * Return object trait\n * @return {Object}\n * @private\n */\n getAutoplayTrait() {\n return {\n type: 'checkbox',\n label: 'Autoplay',\n name: 'autoplay',\n changeProp: 1\n };\n },\n\n /**\n * Return object trait\n * @return {Object}\n * @private\n */\n getLoopTrait() {\n return {\n type: 'checkbox',\n label: 'Loop',\n name: 'loop',\n changeProp: 1\n };\n },\n\n /**\n * Return object trait\n * @return {Object}\n * @private\n */\n getControlsTrait() {\n return {\n type: 'checkbox',\n label: 'Controls',\n name: 'controls',\n changeProp: 1\n };\n },\n\n /**\n * Returns url to youtube video\n * @return {string}\n * @private\n */\n getYoutubeSrc() {\n const id = this.get('videoId');\n let url = this.get('ytUrl');\n const list = this.get('list');\n url += id + (id.indexOf('?') < 0 ? '?' : '');\n url += list ? `&list=${list}` : '';\n url += this.get('autoplay') ? '&autoplay=1' : '';\n url += !this.get('controls') ? '&controls=0&showinfo=0' : '';\n // Loop works only with playlist enabled\n // https://stackoverflow.com/questions/25779966/youtube-iframe-loop-doesnt-work\n url += this.get('loop') ? `&loop=1&playlist=${id}` : '';\n url += this.get('rel') ? '' : '&rel=0';\n url += this.get('modestbranding') ? '&modestbranding=1' : '';\n return url;\n },\n\n /**\n * Returns url to youtube no cookie video\n * @return {string}\n * @private\n */\n getYoutubeNoCookieSrc() {\n let url = this.getYoutubeSrc();\n url = url.replace(this.get('ytUrl'), this.get('ytncUrl'));\n return url;\n },\n\n /**\n * Returns url to vimeo video\n * @return {string}\n * @private\n */\n getVimeoSrc() {\n var url = this.get('viUrl');\n url += this.get('videoId') + '?';\n url += this.get('autoplay') ? '&autoplay=1' : '';\n url += this.get('loop') ? '&loop=1' : '';\n url += !this.get('controls') ? '&title=0&portrait=0&badge=0' : '';\n url += this.get('color') ? '&color=' + this.get('color') : '';\n return url;\n }\n },\n {\n /**\n * Detect if the passed element is a valid component.\n * In case the element is valid an object abstracted\n * from the element will be returned\n * @param {HTMLElement}\n * @return {Object}\n * @private\n */\n isComponent(el) {\n let result = '';\n const { tagName, src } = el;\n const isYtProv = /youtube\\.com\\/embed/.test(src);\n const isYtncProv = /youtube-nocookie\\.com\\/embed/.test(src);\n const isViProv = /player\\.vimeo\\.com\\/video/.test(src);\n const isExtProv = isYtProv || isYtncProv || isViProv;\n if (\n toLowerCase(tagName) == type ||\n (toLowerCase(tagName) == 'iframe' && isExtProv)\n ) {\n result = { type: 'video' };\n if (src) result.src = src;\n if (isExtProv) {\n if (isYtProv) result.provider = yt;\n else if (isYtncProv) result.provider = ytnc;\n else if (isViProv) result.provider = vi;\n }\n }\n return result;\n }\n }\n);\n","import ComponentView from './ComponentImageView';\nimport OComponentView from './ComponentView';\n\nexport default ComponentView.extend({\n tagName: 'div',\n\n events: {},\n\n initialize(o) {\n OComponentView.prototype.initialize.apply(this, arguments);\n const { model } = this;\n const props = [\n 'loop',\n 'autoplay',\n 'controls',\n 'color',\n 'rel',\n 'modestbranding',\n 'poster'\n ];\n const events = props.map(p => `change:${p}`).join(' ');\n this.listenTo(model, 'change:provider', this.updateProvider);\n this.listenTo(model, 'change:src', this.updateSrc);\n this.listenTo(model, events, this.updateVideo);\n },\n\n /**\n * Rerender on update of the provider\n * @private\n */\n updateProvider() {\n var prov = this.model.get('provider');\n this.el.innerHTML = '';\n this.el.appendChild(this.renderByProvider(prov));\n },\n\n /**\n * Update the source of the video\n * @private\n */\n updateSrc() {\n const { model, videoEl } = this;\n if (!videoEl) return;\n const prov = model.get('provider');\n let src = model.get('src');\n\n switch (prov) {\n case 'yt':\n src = model.getYoutubeSrc();\n break;\n case 'ytnc':\n src = model.getYoutubeNoCookieSrc();\n break;\n case 'vi':\n src = model.getVimeoSrc();\n break;\n }\n\n videoEl.src = src;\n },\n\n /**\n * Update video parameters\n * @private\n */\n updateVideo() {\n var prov = this.model.get('provider');\n var videoEl = this.videoEl;\n var md = this.model;\n switch (prov) {\n case 'yt':\n case 'ytnc':\n case 'vi':\n this.model.trigger('change:videoId');\n break;\n default:\n videoEl.loop = md.get('loop');\n videoEl.autoplay = md.get('autoplay');\n videoEl.controls = md.get('controls');\n videoEl.poster = md.get('poster');\n }\n },\n\n renderByProvider(prov) {\n var videoEl;\n switch (prov) {\n case 'yt':\n videoEl = this.renderYoutube();\n break;\n case 'ytnc':\n videoEl = this.renderYoutubeNoCookie();\n break;\n case 'vi':\n videoEl = this.renderVimeo();\n break;\n default:\n videoEl = this.renderSource();\n }\n this.videoEl = videoEl;\n return videoEl;\n },\n\n renderSource() {\n var el = document.createElement('video');\n el.src = this.model.get('src');\n this.initVideoEl(el);\n return el;\n },\n\n renderYoutube() {\n var el = document.createElement('iframe');\n el.src = this.model.getYoutubeSrc();\n el.frameBorder = 0;\n el.setAttribute('allowfullscreen', true);\n this.initVideoEl(el);\n return el;\n },\n\n renderYoutubeNoCookie() {\n var el = document.createElement('iframe');\n el.src = this.model.getYoutubeNoCookieSrc();\n el.frameBorder = 0;\n el.setAttribute('allowfullscreen', true);\n this.initVideoEl(el);\n return el;\n },\n\n renderVimeo() {\n var el = document.createElement('iframe');\n el.src = this.model.getVimeoSrc();\n el.frameBorder = 0;\n el.setAttribute('allowfullscreen', true);\n this.initVideoEl(el);\n return el;\n },\n\n initVideoEl(el) {\n el.className = this.ppfx + 'no-pointer';\n el.style.height = '100%';\n el.style.width = '100%';\n },\n\n render(...args) {\n ComponentView.prototype.render.apply(this, args);\n this.updateClasses();\n var prov = this.model.get('provider');\n this.el.appendChild(this.renderByProvider(prov));\n this.updateVideo();\n return this;\n }\n});\n","import Component from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'script';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type,\n tagName: type,\n droppable: false,\n draggable: false,\n layerable: false\n }\n },\n {\n isComponent(el) {\n if (toLowerCase(el.tagName) == type) {\n const result = { type };\n\n if (el.src) {\n result.src = el.src;\n result.onload = el.onload;\n }\n\n return result;\n }\n }\n }\n);\n","import ComponentView from './ComponentImageView';\n\nexport default ComponentView.extend({\n tagName: 'script',\n\n events: {},\n\n render() {\n const { model, em } = this;\n const src = model.get('src');\n const scrCnt = em && em.get('scriptCount');\n const scriptCount = scrCnt ? scrCnt : 0;\n let content = '';\n\n // If it's an external script\n if (src) {\n const onload = model.get('onload');\n const svar = `script${scriptCount}`;\n const svarNext = `script${scriptCount + 1}`;\n const svarFn = `${svar}Start`;\n const svarNextFn = `${svarNext}Start`;\n // Load multiple external scripts in the correct order\n content = `\n var ${svar} = document.createElement('script');\n ${svar}.onload = function() {\n ${onload ? `${onload}();\\n` : ''}\n typeof ${svarNextFn} == 'function' && ${svarNextFn}();\n };\n ${svar}.src = '${src}';\n function ${svarFn}() { document.body.appendChild(${svar}); };\n ${!scriptCount ? `${svarFn}();` : ''}\n `;\n em && em.set('scriptCount', scriptCount + 1);\n } else {\n content = model.__innerHTML();\n }\n\n this.el.innerHTML = content;\n this.postRender();\n return this;\n }\n});\n","import Component from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'svg';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n type,\n tagName: type,\n highlightable: 0,\n resizable: { ratioDefault: 1 }\n },\n\n getName() {\n let name = this.get('tagName');\n let customName = this.get('custom-name');\n name = name.charAt(0).toUpperCase() + name.slice(1);\n return customName || name;\n }\n },\n {\n isComponent: el => toLowerCase(el.tagName) === type\n }\n);\n","import Component from './ComponentSvg';\n\n/**\n * Component for inner SVG elements\n */\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n selectable: false,\n hoverable: false,\n layerable: false\n }\n },\n {\n isComponent: (el, opts = {}) => !!opts.inSvg\n }\n);\n","import ComponentView from './ComponentView';\n\nexport default ComponentView.extend({\n _createElement: function(tagName) {\n return document.createElementNS('http://www.w3.org/2000/svg', tagName);\n }\n});\n","import Component from './Component';\nimport { escape } from 'utils/mixins';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults,\n tagName: '',\n droppable: false,\n layerable: false,\n selectable: false,\n editable: true\n },\n\n toHTML() {\n const parent = this.parent();\n const cnt = this.get('content');\n return parent && parent.is('script') ? cnt : escape(cnt);\n }\n },\n {\n isComponent(el) {\n var result = '';\n if (el.nodeType === 3) {\n result = {\n type: 'textnode',\n content: el.textContent\n };\n }\n return result;\n }\n }\n);\n","import Component from './ComponentTextNode';\n\nexport default Component.extend(\n {\n defaults: {\n ...Component.prototype.defaults\n },\n\n toHTML() {\n return ``;\n }\n },\n {\n isComponent(el) {\n if (el.nodeType == 8) {\n return {\n tagName: 'NULL',\n type: 'comment',\n content: el.textContent\n };\n }\n }\n }\n);\n","import ComponentView from './ComponentView';\n\nexport default ComponentView.extend({\n initialize() {\n ComponentView.prototype.initialize.apply(this, arguments);\n },\n\n // Clear methods used on Nodes with attributes\n _setAttributes() {},\n renderAttributes() {},\n updateStatus() {},\n updateClasses() {},\n setAttribute() {},\n updateAttributes() {},\n initClasses() {},\n initComponents() {},\n delegateEvents() {},\n\n _createElement() {\n return document.createTextNode('');\n },\n\n render() {\n const { model, el } = this;\n if (model.opt.temporary) return this;\n el.textContent = model.get('content');\n return this;\n }\n});\n","import ComponentView from './ComponentTextNodeView';\n\nexport default ComponentView.extend({\n _createElement() {\n return document.createComment(this.model.get('content'));\n }\n});\n","import Component from './Component';\n\nexport default class ComponentWrapper extends Component {\n defaults() {\n return {\n ...Component.getDefaults(),\n tagName: 'body',\n removable: false,\n copyable: false,\n draggable: false,\n components: [],\n traits: [],\n stylable: [\n 'background',\n 'background-color',\n 'background-image',\n 'background-repeat',\n 'background-attachment',\n 'background-position',\n 'background-size',\n ],\n };\n }\n\n __postAdd() {\n const um = this.em && this.em.get('UndoManager');\n um && !this.__hasUm && um.add(this);\n return Component.prototype.__postAdd.call(this, arguments);\n }\n\n __postRemove() {\n const um = this.em && this.em.get('UndoManager');\n um && um.remove(this);\n return Component.prototype.__postRemove.call(this, arguments);\n }\n}\n\nComponentWrapper.isComponent = () => false;\n","import Component from './Component';\nimport { toLowerCase } from 'utils/mixins';\n\nconst type = 'iframe';\n\nexport default Component.extend(\n {\n defaults() {\n return {\n ...Component.prototype.defaults,\n type,\n tagName: type,\n droppable: false,\n resizable: true,\n traits: ['id', 'title', 'src'],\n attributes: { frameborder: '0' }\n };\n }\n },\n {\n isComponent: el => toLowerCase(el.tagName) === type\n }\n);\n","import ComponentView from './ComponentView';\nimport { createEl, find, attrUp } from 'utils/dom';\n\nexport default ComponentView.extend({\n tagName: 'div',\n\n initialize(...args) {\n ComponentView.prototype.initialize.apply(this, args);\n this.listenTo(this.model, 'change:attributes:src', this.updateSrc);\n },\n\n updateSrc() {\n const frame = find(this.el, 'iframe')[0];\n frame && attrUp(frame, { src: this.__getSrc() });\n },\n\n render(...args) {\n ComponentView.prototype.render.apply(this, args);\n const frame = createEl('iframe', {\n class: `${this.ppfx}no-pointer`,\n style: 'width: 100%; height: 100%; border: none',\n src: this.__getSrc()\n });\n this.el.appendChild(frame);\n return this;\n },\n\n __getSrc() {\n return this.model.getAttributes().src || '';\n }\n});\n","/**\n * With this module is possible to manage components inside the canvas. You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/dom_components/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * domComponents: {\n * // options\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API and listen to its events. Before using these methods, you should get the module from the instance.\n *\n * ```js\n * // Listen to events\n * editor.on('component:create', () => { ... });\n *\n * // Use the API\n * const cmp = editor.Components;\n * cmp.addType(...);\n * ```\n *\n * ## Available Events\n * * `component:create` - Component is created (only the model, is not yet mounted in the canvas), called after the init() method\n * * `component:mount` - Component is mounted to an element and rendered in canvas\n * * `component:add` - Triggered when a new component is added to the editor, the model is passed as an argument to the callback\n * * `component:remove` - Triggered when a component is removed, the model is passed as an argument to the callback\n * * `component:remove:before` - Triggered before the remove of the component, the model, remove function (if aborted via options, with this function you can complete the remove) and options (use options.abort = true to prevent remove), are passed as arguments to the callback\n * * `component:clone` - Triggered when a component is cloned, the new model is passed as an argument to the callback\n * * `component:update` - Triggered when a component is updated (moved, styled, etc.), the model is passed as an argument to the callback\n * * `component:update:{propertyName}` - Listen any property change, the model is passed as an argument to the callback\n * * `component:styleUpdate` - Triggered when the style of the component is updated, the model is passed as an argument to the callback\n * * `component:styleUpdate:{propertyName}` - Listen for a specific style property change, the model is passed as an argument to the callback\n * * `component:selected` - New component selected, the selected model is passed as an argument to the callback\n * * `component:deselected` - Component deselected, the deselected model is passed as an argument to the callback\n * * `component:toggled` - Component selection changed, toggled model is passed as an argument to the callback\n * * `component:type:add` - New component type added, the new type is passed as an argument to the callback\n * * `component:type:update` - Component type updated, the updated type is passed as an argument to the callback\n * * `component:drag:start` - Component drag started. Passed an object, to the callback, containing the `target` (component to drag), `parent` (parent of the component) and `index` (component index in the parent)\n * * `component:drag` - During component drag. Passed the same object as in `component:drag:start` event, but in this case, `parent` and `index` are updated by the current pointer\n * * `component:drag:end` - Component drag ended. Passed the same object as in `component:drag:start` event, but in this case, `parent` and `index` are updated by the final pointer\n *\n * ## Methods\n * * [getWrapper](#getwrapper)\n * * [getComponents](#getcomponents)\n * * [addComponent](#addcomponent)\n * * [clear](#clear)\n * * [load](#load)\n * * [store](#store)\n * * [addType](#addtype)\n * * [getType](#gettype)\n * * [getTypes](#gettypes)\n * * [render](#render)\n *\n * @module Components\n */\nimport { isEmpty, isObject, isArray, isFunction, isString, result, debounce } from 'underscore';\nimport defaults from './config/config';\nimport Component, { keyUpdate, keyUpdateInside } from './model/Component';\nimport Components from './model/Components';\nimport ComponentView from './view/ComponentView';\nimport ComponentWrapperView from './view/ComponentWrapperView';\nimport ComponentsView from './view/ComponentsView';\nimport ComponentTableCell from './model/ComponentTableCell';\nimport ComponentTableCellView from './view/ComponentTableCellView';\nimport ComponentTableRow from './model/ComponentTableRow';\nimport ComponentTableRowView from './view/ComponentTableRowView';\nimport ComponentTable from './model/ComponentTable';\nimport ComponentTableView from './view/ComponentTableView';\nimport ComponentTableHead from './model/ComponentTableHead';\nimport ComponentTableHeadView from './view/ComponentTableHeadView';\nimport ComponentTableBody from './model/ComponentTableBody';\nimport ComponentTableBodyView from './view/ComponentTableBodyView';\nimport ComponentTableFoot from './model/ComponentTableFoot';\nimport ComponentTableFootView from './view/ComponentTableFootView';\nimport ComponentMap from './model/ComponentMap';\nimport ComponentMapView from './view/ComponentMapView';\nimport ComponentLink from './model/ComponentLink';\nimport ComponentLinkView from './view/ComponentLinkView';\nimport ComponentLabel from './model/ComponentLabel';\nimport ComponentLabelView from './view/ComponentLabelView';\nimport ComponentVideo from './model/ComponentVideo';\nimport ComponentVideoView from './view/ComponentVideoView';\nimport ComponentImage from './model/ComponentImage';\nimport ComponentImageView from './view/ComponentImageView';\nimport ComponentScript from './model/ComponentScript';\nimport ComponentScriptView from './view/ComponentScriptView';\nimport ComponentSvg from './model/ComponentSvg';\nimport ComponentSvgIn from './model/ComponentSvgIn';\nimport ComponentSvgView from './view/ComponentSvgView';\nimport ComponentComment from './model/ComponentComment';\nimport ComponentCommentView from './view/ComponentCommentView';\nimport ComponentTextNode from './model/ComponentTextNode';\nimport ComponentTextNodeView from './view/ComponentTextNodeView';\nimport ComponentText from './model/ComponentText';\nimport ComponentTextView from './view/ComponentTextView';\nimport ComponentWrapper from './model/ComponentWrapper';\nimport ComponentFrame from './model/ComponentFrame';\nimport ComponentFrameView from './view/ComponentFrameView';\nimport Module from 'abstract/moduleLegacy';\n\nexport default () => {\n var c = {};\n let em;\n const componentsById = {};\n\n var component, componentView;\n var componentTypes = [\n {\n id: 'cell',\n model: ComponentTableCell,\n view: ComponentTableCellView,\n },\n {\n id: 'row',\n model: ComponentTableRow,\n view: ComponentTableRowView,\n },\n {\n id: 'table',\n model: ComponentTable,\n view: ComponentTableView,\n },\n {\n id: 'thead',\n model: ComponentTableHead,\n view: ComponentTableHeadView,\n },\n {\n id: 'tbody',\n model: ComponentTableBody,\n view: ComponentTableBodyView,\n },\n {\n id: 'tfoot',\n model: ComponentTableFoot,\n view: ComponentTableFootView,\n },\n {\n id: 'map',\n model: ComponentMap,\n view: ComponentMapView,\n },\n {\n id: 'link',\n model: ComponentLink,\n view: ComponentLinkView,\n },\n {\n id: 'label',\n model: ComponentLabel,\n view: ComponentLabelView,\n },\n {\n id: 'video',\n model: ComponentVideo,\n view: ComponentVideoView,\n },\n {\n id: 'image',\n model: ComponentImage,\n view: ComponentImageView,\n },\n {\n id: 'script',\n model: ComponentScript,\n view: ComponentScriptView,\n },\n {\n id: 'svg-in',\n model: ComponentSvgIn,\n view: ComponentSvgView,\n },\n {\n id: 'svg',\n model: ComponentSvg,\n view: ComponentSvgView,\n },\n {\n id: 'iframe',\n model: ComponentFrame,\n view: ComponentFrameView,\n },\n {\n id: 'comment',\n model: ComponentComment,\n view: ComponentCommentView,\n },\n {\n id: 'textnode',\n model: ComponentTextNode,\n view: ComponentTextNodeView,\n },\n {\n id: 'text',\n model: ComponentText,\n view: ComponentTextView,\n },\n {\n id: 'wrapper',\n model: ComponentWrapper,\n view: ComponentWrapperView,\n },\n {\n id: 'default',\n model: Component,\n view: ComponentView,\n },\n ];\n\n return {\n ...Module,\n\n Component,\n\n Components,\n\n ComponentsView,\n\n componentTypes,\n\n componentsById,\n\n /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'DomComponents',\n\n storageKey: 'components',\n\n /**\n * Returns config\n * @return {Object} Config object\n * @private\n */\n getConfig() {\n return c;\n },\n\n /**\n * Initialize module. Called on a new instance of the editor with configurations passed\n * inside 'domComponents' field\n * @param {Object} config Configurations\n * @private\n */\n init(config) {\n c = config || {};\n em = c.em;\n this.em = em;\n\n if (em) {\n c.components = em.config.components || c.components;\n }\n\n for (var name in defaults) {\n if (!(name in c)) c[name] = defaults[name];\n }\n\n var ppfx = c.pStylePrefix;\n if (ppfx) c.stylePrefix = ppfx + c.stylePrefix;\n\n // Load dependencies\n if (em) {\n c.modal = em.get('Modal') || '';\n c.am = em.get('AssetManager') || '';\n em.get('Parser').compTypes = componentTypes;\n em.on('change:componentHovered', this.componentHovered, this);\n\n const selected = em.get('selected');\n em.listenTo(selected, 'add', (sel, c, opts) => this.selectAdd(selected.getComponent(sel), opts));\n em.listenTo(selected, 'remove', (sel, c, opts) => this.selectRemove(selected.getComponent(sel), opts));\n }\n\n return this;\n },\n\n load(data) {\n return this.loadProjectData(data, {\n onResult: result => {\n const wrapper = this.getWrapper();\n if (isArray(result)) {\n result.length && wrapper.components(result);\n } else {\n const { components = [], ...rest } = result;\n wrapper.set(rest);\n wrapper.components(components);\n }\n },\n });\n },\n\n store() {\n return {};\n },\n\n /**\n * Returns privately the main wrapper\n * @return {Object}\n * @private\n */\n getComponent() {\n const sel = this.em.get('PageManager').getSelected();\n const frame = sel && sel.getMainFrame();\n return frame && frame.getComponent();\n },\n\n /**\n * Returns root component inside the canvas. Something like `` inside HTML page\n * The wrapper doesn't differ from the original Component Model\n * @return {Component} Root Component\n * @example\n * // Change background of the wrapper and set some attribute\n * var wrapper = cmp.getWrapper();\n * wrapper.set('style', {'background-color': 'red'});\n * wrapper.set('attributes', {'title': 'Hello!'});\n */\n getWrapper() {\n return this.getComponent();\n },\n\n /**\n * Returns wrapper's children collection. Once you have the collection you can\n * add other Components(Models) inside. Each component can have several nested\n * components inside and you can nest them as more as you wish.\n * @return {Components} Collection of components\n * @example\n * // Let's add some component\n * var wrapperChildren = cmp.getComponents();\n * var comp1 = wrapperChildren.add({\n * style: { 'background-color': 'red'}\n * });\n * var comp2 = wrapperChildren.add({\n * tagName: 'span',\n * attributes: { title: 'Hello!'}\n * });\n * // Now let's add an other one inside first component\n * // First we have to get the collection inside. Each\n * // component has 'components' property\n * var comp1Children = comp1.get('components');\n * // Procede as before. You could also add multiple objects\n * comp1Children.add([\n * { style: { 'background-color': 'blue'}},\n * { style: { height: '100px', width: '100px'}}\n * ]);\n * // Remove comp2\n * wrapperChildren.remove(comp2);\n */\n getComponents() {\n const wrp = this.getWrapper();\n return wrp && wrp.get('components');\n },\n\n /**\n * Add new components to the wrapper's children. It's the same\n * as 'cmp.getComponents().add(...)'\n * @param {Object|Component|Array} component Component/s to add\n * @param {string} [component.tagName='div'] Tag name\n * @param {string} [component.type=''] Type of the component. Available: ''(default), 'text', 'image'\n * @param {boolean} [component.removable=true] If component is removable\n * @param {boolean} [component.draggable=true] If is possible to move the component around the structure\n * @param {boolean} [component.droppable=true] If is possible to drop inside other components\n * @param {boolean} [component.badgable=true] If the badge is visible when the component is selected\n * @param {boolean} [component.stylable=true] If is possible to style component\n * @param {boolean} [component.copyable=true] If is possible to copy&paste the component\n * @param {string} [component.content=''] String inside component\n * @param {Object} [component.style={}] Style object\n * @param {Object} [component.attributes={}] Attribute object\n * @param {Object} opt the options object to be used by the [Components.add]{@link getComponents} method\n * @return {Component|Array} Component/s added\n * @example\n * // Example of a new component with some extra property\n * var comp1 = cmp.addComponent({\n * tagName: 'div',\n * removable: true, // Can't remove it\n * draggable: true, // Can't move it\n * copyable: true, // Disable copy/past\n * content: 'Content text', // Text inside component\n * style: { color: 'red'},\n * attributes: { title: 'here' }\n * });\n */\n addComponent(component, opt = {}) {\n return this.getComponents().add(component, opt);\n },\n\n /**\n * Render and returns wrapper element with all components inside.\n * Once the wrapper is rendered, and it's what happens when you init the editor,\n * the all new components will be added automatically and property changes are all\n * updated immediately\n * @return {HTMLElement}\n */\n render() {\n return componentView.render().el;\n },\n\n /**\n * Remove all components\n * @return {this}\n */\n clear(opts = {}) {\n this.getComponents()\n .map(i => i)\n .forEach(i => i.remove(opts));\n return this;\n },\n\n /**\n * Set components\n * @param {Object|string} components HTML string or components model\n * @param {Object} opt the options object to be used by the {@link addComponent} method\n * @return {this}\n * @private\n */\n setComponents(components, opt = {}) {\n this.clear(opt).addComponent(components, opt);\n },\n\n /**\n * Add new component type.\n * Read more about this in [Define New Component](https://grapesjs.com/docs/modules/Components.html#define-new-component)\n * @param {string} type Component ID\n * @param {Object} methods Component methods\n * @return {this}\n */\n addType(type, methods) {\n const { em } = this;\n const { model = {}, view = {}, isComponent, extend, extendView, extendFn = [], extendFnView = [] } = methods;\n const compType = this.getType(type);\n const extendType = this.getType(extend);\n const extendViewType = this.getType(extendView);\n const typeToExtend = extendType ? extendType : compType ? compType : this.getType('default');\n const modelToExt = typeToExtend.model;\n const viewToExt = extendViewType ? extendViewType.view : typeToExtend.view;\n\n // Function for extending source object methods\n const getExtendedObj = (fns, target, srcToExt) =>\n fns.reduce((res, next) => {\n const fn = target[next];\n const parentFn = srcToExt.prototype[next];\n if (fn && parentFn) {\n res[next] = function (...args) {\n parentFn.bind(this)(...args);\n fn.bind(this)(...args);\n };\n }\n return res;\n }, {});\n\n // If the model/view is a simple object I need to extend it\n if (typeof model === 'object') {\n methods.model = modelToExt.extend(\n {\n ...model,\n ...getExtendedObj(extendFn, model, modelToExt),\n defaults: {\n ...(result(modelToExt.prototype, 'defaults') || {}),\n ...(result(model, 'defaults') || {}),\n },\n },\n {\n isComponent: compType && !extendType && !isComponent ? modelToExt.isComponent : isComponent || (() => 0),\n }\n );\n }\n\n if (typeof view === 'object') {\n methods.view = viewToExt.extend({\n ...view,\n ...getExtendedObj(extendFnView, view, viewToExt),\n });\n }\n\n if (compType) {\n compType.model = methods.model;\n compType.view = methods.view;\n } else {\n methods.id = type;\n componentTypes.unshift(methods);\n }\n\n const event = `component:type:${compType ? 'update' : 'add'}`;\n em && em.trigger(event, compType || methods);\n\n return this;\n },\n\n /**\n * Get component type.\n * Read more about this in [Define New Component](https://grapesjs.com/docs/modules/Components.html#define-new-component)\n * @param {string} type Component ID\n * @return {Object} Component type definition, eg. `{ model: ..., view: ... }`\n */\n getType(type) {\n var df = componentTypes;\n\n for (var it = 0; it < df.length; it++) {\n var dfId = df[it].id;\n if (dfId == type) {\n return df[it];\n }\n }\n return;\n },\n\n /**\n * Remove component type\n * @param {string} type Component ID\n * @returns {Object|undefined} Removed component type, undefined otherwise\n */\n removeType(id) {\n const df = componentTypes;\n const type = this.getType(id);\n if (!type) return;\n const index = df.indexOf(type);\n df.splice(index, 1);\n return type;\n },\n\n /**\n * Return the array of all types\n * @return {Array}\n */\n getTypes() {\n return componentTypes;\n },\n\n selectAdd(component, opts = {}) {\n if (component) {\n component.set({\n status: 'selected',\n });\n ['component:selected', 'component:toggled'].forEach(event => this.em.trigger(event, component, opts));\n }\n },\n\n selectRemove(component, opts = {}) {\n if (component) {\n const { em } = this;\n component.set({\n status: '',\n state: '',\n });\n ['component:deselected', 'component:toggled'].forEach(event => this.em.trigger(event, component, opts));\n }\n },\n\n /**\n * Triggered when the component is hovered\n * @private\n */\n componentHovered() {\n const em = c.em;\n const model = em.get('componentHovered');\n const previous = em.previous('componentHovered');\n const state = 'hovered';\n\n // Deselect the previous component\n previous &&\n previous.get('status') == state &&\n previous.set({\n status: '',\n state: '',\n });\n\n model && isEmpty(model.get('status')) && model.set('status', state);\n },\n\n getShallowWrapper() {\n let { shallow, em } = this;\n\n if (!shallow && em) {\n const shallowEm = em.get('shallow');\n if (!shallowEm) return;\n const domc = shallowEm.get('DomComponents');\n domc.componentTypes = this.componentTypes;\n shallow = domc.getWrapper();\n if (shallow) {\n const events = [keyUpdate, keyUpdateInside].join(' ');\n shallow.on(\n events,\n debounce(() => shallow.components(''), 100)\n );\n }\n this.shallow = shallow;\n }\n\n return shallow;\n },\n\n /**\n * Check if the component can be moved inside another.\n * @param {[Component]} target The target Component is the one that is supposed to receive the source one.\n * @param {[Component]|String} source The source can be another Component or an HTML string.\n * @param {Number} [index] Index position. If not specified, the check will perform against appending the source to target.\n * @returns {Object} Object containing the `result` (Boolean), `source`, `target` (as Components), and a `reason` (Number) with these meanings:\n * * `0` - Invalid source. This is a default value and should be ignored in case the `result` is true.\n * * `1` - Source doesn't accept target as destination.\n * * `2` - Target doesn't accept source.\n * @private\n */\n canMove(target, source, index) {\n const at = index || index === 0 ? index : null;\n const result = {\n result: false,\n reason: 0,\n target,\n source: null,\n };\n\n if (!source) return result;\n\n let srcModel = source?.toHTML ? source : null;\n\n if (!srcModel) {\n const wrapper = this.getShallowWrapper();\n srcModel = wrapper?.append(source)[0];\n }\n\n result.source = srcModel;\n\n if (!srcModel) return result;\n\n // Check if the source is draggable in the target\n let draggable = srcModel.get('draggable');\n\n if (isFunction(draggable)) {\n draggable = !!draggable(srcModel, target, at);\n } else {\n const el = target.getEl();\n draggable = isArray(draggable) ? draggable.join(',') : draggable;\n draggable = isString(draggable) ? el?.matches(draggable) : draggable;\n }\n\n if (!draggable) return { ...result, reason: 1 };\n\n // Check if the target accepts the source\n let droppable = target.get('droppable');\n\n if (isFunction(droppable)) {\n droppable = !!droppable(srcModel, target, at);\n } else {\n if (droppable === false && target.isInstanceOf('text') && srcModel.get('textable')) {\n droppable = true;\n } else {\n const el = srcModel.getEl();\n droppable = isArray(droppable) ? droppable.join(',') : droppable;\n droppable = isString(droppable) ? el?.matches(droppable) : droppable;\n }\n }\n\n if (!droppable) return { ...result, reason: 2 };\n\n return { ...result, result: true };\n },\n\n allById() {\n return componentsById;\n },\n\n getById(id) {\n return componentsById[id] || null;\n },\n\n destroy() {\n const all = this.allById();\n Object.keys(all).forEach(id => all[id] && all[id].remove());\n componentView && componentView.remove();\n [c, em, componentsById, component, componentView].forEach(i => (i = {}));\n this.em = {};\n },\n };\n};\n","import { isUndefined } from 'underscore';\nimport { Model } from '../../common';\n\n/**\n * @typedef Trait\n * @property {String} id Trait id, eg. `my-trait-id`.\n * @property {String} type Trait type, defines how the trait should rendered. Possible values: `text` (default), `number`, `select`, `checkbox`, `color`, `button`\n * @property {String} label The trait label to show for the rendered trait.\n * @property {String} name The name of the trait used as a key for the attribute/property. By default, the name is used as attribute name or property in case `changeProp` in enabled.\n * @property {Boolean} changeProp If `true` the trait value is applied on component\n *\n */\nexport default class Trait extends Model {\n initialize() {\n const { target, name, changeProp } = this.attributes;\n !this.get('id') && this.set('id', name);\n\n if (target) {\n this.target = target;\n this.unset('target');\n const targetEvent = changeProp ? `change:${name}` : `change:attributes:${name}`;\n this.listenTo(target, targetEvent, this.targetUpdated);\n }\n }\n\n /**\n * Get the trait id.\n * @returns {String}\n */\n getId() {\n return this.get('id');\n }\n\n /**\n * Get the trait type.\n * @returns {String}\n */\n getType() {\n return this.get('type');\n }\n\n /**\n * Get the trait name.\n * @returns {String}\n */\n getName() {\n return this.get('name');\n }\n\n /**\n * Get the trait label.\n * @param {Object} [opts={}] Options.\n * @param {Boolean} [opts.locale=true] Use the locale string from i18n module.\n * @returns {String}\n */\n getLabel(opts = {}) {\n const { locale = true } = opts;\n const id = this.getId();\n const name = this.get('label') || this.getName();\n return (locale && this.em?.t(`traitManager.traits.labels.${id}`)) || name;\n }\n\n /**\n * Get the trait value.\n * The value is taken from component attributes by default or from properties if the trait has the `changeProp` enabled.\n * @returns {any}\n */\n getValue() {\n return this.getTargetValue();\n }\n\n /**\n * Update the trait value.\n * The value is applied on component attributes by default or on properties if the trait has the `changeProp` enabled.\n * @param {any} value Value of the trait.\n * @param {Object} [opts={}] Options.\n * @param {Boolean} [opts.partial] If `true` the update won't be considered complete (not stored in UndoManager).\n */\n setValue(value, opts = {}) {\n const valueOpts = {};\n\n if (opts.partial) {\n valueOpts.avoidStore = true;\n }\n\n this.setTargetValue(value, valueOpts);\n\n if (opts.partial === false) {\n this.setTargetValue('');\n this.setTargetValue(value);\n }\n }\n\n props() {\n return this.attributes;\n }\n\n targetUpdated() {\n const value = this.getTargetValue();\n this.set({ value }, { fromTarget: 1 });\n this.em?.trigger('trait:update', {\n trait: this,\n component: this.target,\n });\n }\n\n getTargetValue() {\n const name = this.get('name');\n const target = this.target;\n let value;\n\n if (this.get('changeProp')) {\n value = target.get(name);\n } else {\n value = target.getAttributes()[name];\n }\n\n return !isUndefined(value) ? value : '';\n }\n\n setTargetValue(value, opts = {}) {\n const target = this.target;\n const name = this.get('name');\n if (isUndefined(value)) return;\n let valueToSet = value;\n\n if (value === 'false') {\n valueToSet = false;\n } else if (value === 'true') {\n valueToSet = true;\n }\n\n if (this.get('changeProp')) {\n target.set(name, valueToSet, opts);\n } else {\n const attrs = { ...target.get('attributes') };\n attrs[name] = valueToSet;\n target.set('attributes', attrs, opts);\n }\n }\n\n setValueFromInput(value, final = 1, opts = {}) {\n const toSet = { value };\n this.set(toSet, { ...opts, avoidStore: 1 });\n\n // Have to trigger the change\n if (final) {\n this.set('value', '', opts);\n this.set(toSet, opts);\n }\n }\n\n getInitValue() {\n const target = this.target;\n const name = this.get('name');\n let value;\n\n if (target) {\n const attrs = target.get('attributes');\n value = this.get('changeProp') ? target.get(name) : attrs[name];\n }\n\n return value || this.get('value') || this.get('default');\n }\n}\n\nTrait.prototype.defaults = {\n type: 'text',\n label: '',\n name: '',\n min: '',\n max: '',\n unit: '',\n step: 1,\n value: '',\n target: '',\n default: '',\n placeholder: '',\n changeProp: 0,\n options: [],\n};\n","import { isString, isArray } from 'underscore';\nimport { Collection } from '../../common';\nimport Trait from './Trait';\nimport TraitFactory from './TraitFactory';\n\nexport default class Traits extends Collection {\n initialize(coll, options = {}) {\n this.em = options.em;\n this.listenTo(this, 'add', this.handleAdd);\n this.listenTo(this, 'reset', this.handleReset);\n }\n\n handleReset(coll, { previousModels = [] } = {}) {\n previousModels.forEach(model => model.trigger('remove'));\n }\n\n handleAdd(model) {\n model.em = this.em;\n const target = this.target;\n\n if (target) {\n model.target = target;\n }\n }\n\n setTarget(target) {\n this.target = target;\n }\n\n add(models, opt) {\n const em = this.em;\n\n // Use TraitFactory if necessary\n if (isString(models) || isArray(models)) {\n const tm = em && em.get && em.get('TraitManager');\n const tmOpts = tm && tm.getConfig();\n const tf = TraitFactory(tmOpts);\n\n if (isString(models)) {\n models = [models];\n }\n\n for (var i = 0, len = models.length; i < len; i++) {\n const str = models[i];\n const model = isString(str) ? tf.build(str)[0] : str;\n model.target = this.target;\n models[i] = model;\n }\n }\n\n return Collection.prototype.add.apply(this, [models, opt]);\n }\n}\n\nTraits.prototype.model = Trait;\n","export default (config = {}) => ({\n /**\n * Build props object by their name\n * @param {Array|string} props Array of properties name\n * @return {Array}\n */\n build(props) {\n const objs = [];\n\n if (typeof props === 'string') props = [props];\n\n for (let i = 0; i < props.length; i++) {\n const obj = {};\n const prop = props[i];\n obj.name = prop;\n\n switch (prop) {\n case 'target':\n obj.type = 'select';\n obj.default = false;\n obj.options = config.optionsTarget;\n break;\n }\n\n objs.push(obj);\n }\n\n return objs;\n }\n});\n","import {\n isUndefined,\n isFunction,\n isArray,\n isEmpty,\n isBoolean,\n has,\n isString,\n forEach,\n result,\n bindAll,\n keys,\n} from 'underscore';\nimport { shallowDiff, capitalize, isEmptyObj, isObject, toLowerCase } from 'utils/mixins';\nimport Styleable from 'domain_abstract/model/Styleable';\nimport { Model } from 'backbone';\nimport Components from './Components';\nimport Selector from 'selector_manager/model/Selector';\nimport Selectors from 'selector_manager/model/Selectors';\nimport Traits from 'trait_manager/model/Traits';\n\nconst escapeRegExp = str => {\n return str.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n};\n\nconst avoidInline = em => em && em.getConfig('avoidInlineStyle');\n\nexport const eventDrag = 'component:drag';\nexport const keySymbols = '__symbols';\nexport const keySymbol = '__symbol';\nexport const keySymbolOvrd = '__symbol_ovrd';\nexport const keyUpdate = 'component:update';\nexport const keyUpdateInside = `${keyUpdate}-inside`;\n\n/**\n * The Component object represents a single node of our template structure, so when you update its properties the changes are\n * immediately reflected on the canvas and in the code to export (indeed, when you ask to export the code we just go through all\n * the tree of nodes).\n * An example on how to update properties:\n * ```js\n * component.set({\n * tagName: 'span',\n * attributes: { ... },\n * removable: false,\n * });\n * component.get('tagName');\n * // -> 'span'\n * ```\n *\n * [Component]: component.html\n *\n * @typedef Component\n * @property {String} [type=''] Component type, eg. `text`, `image`, `video`, etc.\n * @property {String} [tagName='div'] HTML tag of the component, eg. `span`. Default: `div`\n * @property {Object} [attributes={}] Key-value object of the component's attributes, eg. `{ title: 'Hello' }` Default: `{}`\n * @property {String} [name=''] Name of the component. Will be used, for example, in Layers and badges\n * @property {Boolean} [removable=true] When `true` the component is removable from the canvas, default: `true`\n * @property {Boolean|String|Function} [draggable=true] Indicates if it's possible to drag the component inside others.\n * You can also specify a query string to indentify elements,\n * eg. `'.some-class[title=Hello], [data-gjs-type=column]'` means you can drag the component only inside elements\n * containing `some-class` class and `Hello` title, and `column` components. In the case of a function, target and destination components are passed as arguments, return a Boolean to indicate if the drag is possible. Default: `true`\n * @property {Boolean|String|Function} [droppable=true] Indicates if it's possible to drop other components inside. You can use\n * a query string as with `draggable`. In the case of a function, target and destination components are passed as arguments, return a Boolean to indicate if the drop is possible. Default: `true`\n * @property {Boolean} [badgable=true] Set to false if you don't want to see the badge (with the name) over the component. Default: `true`\n * @property {Boolean|Array} [stylable=true] True if it's possible to style the component.\n * You can also indicate an array of CSS properties which is possible to style, eg. `['color', 'width']`, all other properties\n * will be hidden from the style manager. Default: `true`\n * @property {Array} [stylable-require=[]] Indicate an array of style properties to show up which has been marked as `toRequire`. Default: `[]`\n * @property {Array} [unstylable=[]] Indicate an array of style properties which should be hidden from the style manager. Default: `[]`\n * @property {Boolean} [highlightable=true] It can be highlighted with 'dotted' borders if true. Default: `true`\n * @property {Boolean} [copyable=true] True if it's possible to clone the component. Default: `true`\n * @property {Boolean} [resizable=false] Indicates if it's possible to resize the component. It's also possible to pass an object as [options for the Resizer](https://github.com/artf/grapesjs/blob/master/src/utils/Resizer.js). Default: `false`\n * @property {Boolean} [editable=false] Allow to edit the content of the component (used on Text components). Default: `false`\n * @property {Boolean} [layerable=true] Set to `false` if you need to hide the component inside Layers. Default: `true`\n * @property {Boolean} [selectable=true] Allow component to be selected when clicked. Default: `true`\n * @property {Boolean} [hoverable=true] Shows a highlight outline when hovering on the element if `true`. Default: `true`\n * @property {Boolean} [void=false] This property is used by the HTML exporter as void elements don't have closing tags, eg. `
`, `
`, etc. Default: `false`\n * @property {Object} [style={}] Component default style, eg. `{ width: '100px', height: '100px', 'background-color': 'red' }`\n * @property {String} [styles=''] Component related styles, eg. `.my-component-class { color: red }`\n * @property {String} [content=''] Content of the component (not escaped) which will be appended before children rendering. Default: `''`\n * @property {String} [icon=''] Component's icon, this string will be inserted before the name (in Layers and badge), eg. it can be an HTML string ''. Default: `''`\n * @property {String|Function} [script=''] Component's javascript. More about it [here](/modules/Components-js.html). Default: `''`\n * @property {String|Function} [script-export=''] You can specify javascript available only in export functions (eg. when you get the HTML).\n * If this property is defined it will overwrite the `script` one (in export functions). Default: `''`\n * @property {Array} [traits=''] Component's traits. More about it [here](/modules/Traits.html). Default: `['id', 'title']`\n * @property {Array} [propagate=[]] Indicates an array of properties which will be inhereted by all NEW appended children.\n * For example if you create a component likes this: `{ removable: false, draggable: false, propagate: ['removable', 'draggable'] }`\n * and append some new component inside, the new added component will get the exact same properties indicated in the `propagate` array (and the `propagate` property itself). Default: `[]`\n * @property {Array} [toolbar=null] Set an array of items to show up inside the toolbar when the component is selected (move, clone, delete).\n * Eg. `toolbar: [ { attributes: {class: 'fa fa-arrows'}, command: 'tlb-move' }, ... ]`.\n * By default, when `toolbar` property is falsy the editor will add automatically commands `core:component-exit` (select parent component, added if there is one), `tlb-move` (added if `draggable`) , `tlb-clone` (added if `copyable`), `tlb-delete` (added if `removable`).\n * @property {Collection} [components=null] Children components. Default: `null`\n */\nexport default class Component extends Model.extend(Styleable) {\n /**\n * Hook method, called once the model is created\n */\n init() {}\n\n /**\n * Hook method, called when the model has been updated (eg. updated some model's property)\n * @param {String} property Property name, if triggered after some property update\n * @param {*} value Property value, if triggered after some property update\n * @param {*} previous Property previous value, if triggered after some property update\n */\n updated(property, value, previous) {}\n\n /**\n * Hook method, called once the model has been removed\n */\n removed() {}\n\n initialize(props = {}, opt = {}) {\n bindAll(this, '__upSymbProps', '__upSymbCls', '__upSymbComps');\n const em = opt.em;\n\n // Propagate properties from parent if indicated\n const parent = this.parent();\n const parentAttr = parent && parent.attributes;\n const propagate = this.get('propagate');\n propagate && this.set('propagate', isArray(propagate) ? propagate : [propagate]);\n\n if (parentAttr && parentAttr.propagate && !propagate) {\n const newAttr = {};\n const toPropagate = parentAttr.propagate;\n toPropagate.forEach(prop => (newAttr[prop] = parent.get(prop)));\n newAttr.propagate = toPropagate;\n this.set({ ...newAttr, ...props });\n }\n\n // Check void elements\n if (opt && opt.config && opt.config.voidElements.indexOf(this.get('tagName')) >= 0) {\n this.set('void', true);\n }\n\n opt.em = em;\n this.opt = opt;\n this.em = em;\n this.frame = opt.frame;\n this.config = opt.config || {};\n this.set('attributes', {\n ...(result(this, 'defaults').attributes || {}),\n ...(this.get('attributes') || {}),\n });\n this.ccid = Component.createId(this, opt);\n this.initClasses();\n this.initTraits();\n this.initComponents();\n this.initToolbar();\n this.initScriptProps();\n this.listenTo(this, 'change:script', this.scriptUpdated);\n this.listenTo(this, 'change:tagName', this.tagUpdated);\n this.listenTo(this, 'change:attributes', this.attrUpdated);\n this.listenTo(this, 'change:attributes:id', this._idUpdated);\n this.on('change:toolbar', this.__emitUpdateTlb);\n this.on('change', this.__onChange);\n this.on(keyUpdateInside, this.__propToParent);\n this.set('status', '');\n this.views = [];\n\n // Register global updates for collection properties\n ['classes', 'traits', 'components'].forEach(name => {\n const events = `add remove ${name !== 'components' ? 'change' : ''}`;\n this.listenTo(this.get(name), events.trim(), (...args) => this.emitUpdate(name, ...args));\n });\n\n if (!opt.temporary) {\n // Add component styles\n const cssc = em && em.get('CssComposer');\n const { styles, type } = this.attributes;\n if (styles && cssc) {\n cssc.addCollection(styles, {}, { group: `cmp:${type}` });\n }\n\n this.__postAdd();\n this.init();\n this.__isSymbolOrInst() && this.__initSymb();\n em && em.trigger('component:create', this);\n }\n }\n\n __postAdd(opts = {}) {\n const { em } = this;\n const um = em && em.get('UndoManager');\n const comps = this.components();\n if (um && !this.__hasUm) {\n um.add(comps);\n um.add(this.getSelectors());\n this.__hasUm = 1;\n }\n opts.recursive && comps.map(c => c.__postAdd(opts));\n }\n\n __postRemove() {\n const { em } = this;\n const um = em && em.get('UndoManager');\n if (um) {\n um.remove(this.components());\n um.remove(this.getSelectors());\n delete this.__hasUm;\n }\n }\n\n __onChange(m, opts) {\n const changed = this.changedAttributes();\n ['status', 'open', 'toolbar', 'traits'].forEach(name => delete changed[name]);\n // Propagate component prop changes\n if (!isEmptyObj(changed)) {\n this.__changesUp(opts);\n this.__propSelfToParent({ component: this, changed, options: opts });\n }\n }\n\n __changesUp(opts) {\n const { em, frame } = this;\n [frame, em].forEach(md => md && md.changesUp(opts));\n }\n\n __propSelfToParent(props) {\n this.trigger(keyUpdate, props);\n this.__propToParent(props);\n }\n\n __propToParent(props) {\n const parent = this.parent();\n parent && parent.trigger(keyUpdateInside, props);\n }\n\n __emitUpdateTlb() {\n this.emitUpdate('toolbar');\n }\n\n /**\n * Check component's type\n * @param {string} type Component type\n * @return {Boolean}\n * @example\n * component.is('image')\n * // -> false\n */\n is(type) {\n return !!(this.get('type') == type);\n }\n\n /**\n * Return all the propeties\n * @returns {Object}\n */\n props() {\n return this.attributes;\n }\n\n /**\n * Get the index of the component in the parent collection.\n * @return {Number}\n */\n index() {\n const { collection } = this;\n return collection ? collection.indexOf(this) : 0;\n }\n\n /**\n * Change the drag mode of the component.\n * To get more about this feature read: https://github.com/artf/grapesjs/issues/1936\n * @param {String} value Drag mode, options: 'absolute' | 'translate'\n * @returns {this}\n */\n setDragMode(value) {\n return this.set('dmode', value);\n }\n\n /**\n * Find inner components by query string.\n * **ATTENTION**: this method works only with already rendered component\n * @param {String} query Query string\n * @return {Array} Array of components\n * @example\n * component.find('div > .class');\n * // -> [Component, Component, ...]\n */\n find(query) {\n const result = [];\n const $els = this.view.$el.find(query);\n $els.each(i => {\n const $el = $els.eq(i);\n const model = $el.data('model');\n model && result.push(model);\n });\n\n return result;\n }\n\n /**\n * Find all inner components by component type.\n * The advantage of this method over `find` is that you can use it\n * also before rendering the component\n * @param {String} type Component type\n * @returns {Array}\n * @example\n * const allImages = component.findType('image');\n * console.log(allImages[0]) // prints the first found component\n */\n findType(type) {\n const result = [];\n const find = components =>\n components.forEach(item => {\n item.is(type) && result.push(item);\n find(item.components());\n });\n find(this.components());\n return result;\n }\n\n /**\n * Find the closest parent component by query string.\n * **ATTENTION**: this method works only with already rendered component\n * @param {string} query Query string\n * @return {Component}\n * @example\n * component.closest('div.some-class');\n * // -> Component\n */\n closest(query) {\n const result = this.view.$el.closest(query);\n return result.length && result.data('model');\n }\n\n /**\n * Find the closest parent component by its type.\n * The advantage of this method over `closest` is that you can use it\n * also before rendering the component\n * @param {String} type Component type\n * @returns {Component} Found component, otherwise `undefined`\n * @example\n * const Section = component.closestType('section');\n * console.log(Section);\n */\n closestType(type) {\n let parent = this.parent();\n\n while (parent && !parent.is(type)) {\n parent = parent.parent();\n }\n\n return parent;\n }\n\n /**\n * The method returns a Boolean value indicating whether the passed\n * component is a descendant of a given component\n * @param {Component} component Component to check\n * @returns {Boolean}\n */\n contains(component) {\n let result = !1;\n if (!component) return result;\n const contains = components => {\n !result &&\n components.forEach(item => {\n if (item === component) result = !0;\n !result && contains(item.components());\n });\n };\n contains(this.components());\n return result;\n }\n\n /**\n * Once the tag is updated I have to rerender the element\n * @private\n */\n tagUpdated() {\n this.trigger('rerender');\n }\n\n /**\n * Replace a component with another one\n * @param {String|Component} el Component or HTML string\n * @return {Component|Array} New added component/s\n * @example\n * component.replaceWith('
Some new content
');\n * // -> Component\n */\n replaceWith(el) {\n const coll = this.collection;\n const at = coll.indexOf(this);\n coll.remove(this);\n return coll.add(el, { at });\n }\n\n /**\n * Emit changes for each updated attribute\n * @private\n */\n attrUpdated(m, v, opts = {}) {\n const attrs = this.get('attributes');\n // Handle classes\n const classes = attrs.class;\n classes && this.setClass(classes);\n delete attrs.class;\n\n // Handle style\n const style = attrs.style;\n style && this.setStyle(style);\n delete attrs.style;\n\n const attrPrev = { ...this.previous('attributes') };\n const diff = shallowDiff(attrPrev, this.get('attributes'));\n keys(diff).forEach(pr => this.trigger(`change:attributes:${pr}`, this, diff[pr], opts));\n }\n\n /**\n * Update attributes of the component\n * @param {Object} attrs Key value attributes\n * @param {Object} options Options for the model update\n * @return {this}\n * @example\n * component.setAttributes({ id: 'test', 'data-key': 'value' });\n */\n setAttributes(attrs, opts = {}) {\n this.set('attributes', { ...attrs }, opts);\n return this;\n }\n\n /**\n * Add attributes to the component\n * @param {Object} attrs Key value attributes\n * @param {Object} options Options for the model update\n * @return {this}\n * @example\n * component.addAttributes({ 'data-key': 'value' });\n */\n addAttributes(attrs, opts = {}) {\n return this.setAttributes(\n {\n ...this.getAttributes({ noClass: 1 }),\n ...attrs,\n },\n opts\n );\n }\n\n /**\n * Remove attributes from the component\n * @param {String|Array} attrs Array of attributes to remove\n * @param {Object} options Options for the model update\n * @return {this}\n * @example\n * component.removeAttributes('some-attr');\n * component.removeAttributes(['some-attr1', 'some-attr2']);\n */\n removeAttributes(attrs = [], opts = {}) {\n const attrArr = Array.isArray(attrs) ? attrs : [attrs];\n const compAttr = this.getAttributes();\n attrArr.map(i => delete compAttr[i]);\n return this.setAttributes(compAttr, opts);\n }\n\n /**\n * Get the style of the component\n * @return {Object}\n */\n getStyle(options = {}, optsAdd = {}) {\n const em = this.em;\n const prop = isString(options) ? options : '';\n const opts = prop ? optsAdd : options;\n\n if (em && em.getConfig('avoidInlineStyle') && !opts.inline) {\n const state = em.get('state');\n const cc = em.get('CssComposer');\n const rule = cc.getIdRule(this.getId(), { state, ...opts });\n this.rule = rule;\n\n if (rule) {\n return rule.getStyle(prop);\n }\n }\n\n return Styleable.getStyle.call(this, prop);\n }\n\n /**\n * Set the style on the component\n * @param {Object} prop Key value style object\n * @return {Object}\n * @example\n * component.setStyle({ color: 'red' });\n */\n setStyle(prop = {}, opts = {}) {\n const em = this.em;\n const { opt } = this;\n\n if (em && em.getConfig('avoidInlineStyle') && !opt.temporary && !opts.inline) {\n const style = this.get('style') || {};\n prop = isString(prop) ? this.parseStyle(prop) : prop;\n prop = { ...prop, ...style };\n const state = em.get('state');\n const cc = em.get('CssComposer');\n const propOrig = this.getStyle(opts);\n this.rule = cc.setIdRule(this.getId(), prop, { ...opts, state });\n const diff = shallowDiff(propOrig, prop);\n this.set('style', '', { silent: 1 });\n keys(diff).forEach(pr => this.trigger(`change:style:${pr}`));\n } else {\n prop = Styleable.setStyle.apply(this, arguments);\n }\n\n return prop;\n }\n\n /**\n * Return all component's attributes\n * @return {Object}\n */\n getAttributes(opts = {}) {\n const { em } = this;\n const classes = [];\n const attributes = { ...this.get('attributes') };\n const sm = em && em.get('SelectorManager');\n const id = this.getId();\n\n // Add classes\n if (!opts.noClass) {\n this.get('classes').forEach(cls => classes.push(isString(cls) ? cls : cls.get('name')));\n classes.length && (attributes.class = classes.join(' '));\n }\n\n // Add style\n if (!opts.noStyle) {\n const style = this.get('style');\n if (isObject(style) && !isEmptyObj(style)) {\n attributes.style = this.styleToString({ inline: 1 });\n }\n }\n\n // Check if we need an ID on the component\n if (!has(attributes, 'id')) {\n let addId;\n\n // If we don't rely on inline styling we have to check\n // for the ID selector\n if (avoidInline(em)) {\n addId = sm && sm.get(id, sm.Selector.TYPE_ID);\n } else if (!isEmpty(this.getStyle())) {\n addId = 1;\n }\n\n // Symbols should always have an id\n if (this.__getSymbol() || this.__getSymbols()) {\n addId = 1;\n }\n\n if (addId) {\n attributes.id = id;\n }\n }\n\n return attributes;\n }\n\n /**\n * Add classes\n * @param {Array|String} classes Array or string of classes\n * @return {Array} Array of added selectors\n * @example\n * model.addClass('class1');\n * model.addClass('class1 class2');\n * model.addClass(['class1', 'class2']);\n * // -> [SelectorObject, ...]\n */\n addClass(classes) {\n const added = this.em.get('SelectorManager').addClass(classes);\n return this.get('classes').add(added);\n }\n\n /**\n * Set classes (resets current collection)\n * @param {Array|String} classes Array or string of classes\n * @return {Array} Array of added selectors\n * @example\n * model.setClass('class1');\n * model.setClass('class1 class2');\n * model.setClass(['class1', 'class2']);\n * // -> [SelectorObject, ...]\n */\n setClass(classes) {\n this.get('classes').reset();\n return this.addClass(classes);\n }\n\n /**\n * Remove classes\n * @param {Array|String} classes Array or string of classes\n * @return {Array} Array of removed selectors\n * @example\n * model.removeClass('class1');\n * model.removeClass('class1 class2');\n * model.removeClass(['class1', 'class2']);\n * // -> [SelectorObject, ...]\n */\n removeClass(classes) {\n const removed = [];\n classes = isArray(classes) ? classes : [classes];\n const selectors = this.get('classes');\n const type = Selector.TYPE_CLASS;\n\n classes.forEach(classe => {\n const classes = classe.split(' ');\n classes.forEach(name => {\n const selector = selectors.where({ name, type })[0];\n selector && removed.push(selectors.remove(selector));\n });\n });\n\n return removed;\n }\n\n /**\n * Returns component's classes as an array of strings\n * @return {Array}\n */\n getClasses() {\n const attr = this.getAttributes();\n const classStr = attr.class;\n return classStr ? classStr.split(' ') : [];\n }\n\n __logSymbol(type, toUp, opts = {}) {\n const symbol = this.__getSymbol();\n const symbols = this.__getSymbols();\n if (!symbol && !symbols) return;\n this.em.log(type, { model: this, toUp, context: 'symbols', opts });\n }\n\n __initSymb() {\n if (this.__symbReady) return;\n this.on('change', this.__upSymbProps);\n this.__symbReady = 1;\n }\n\n __isSymbol() {\n return isArray(this.get(keySymbols));\n }\n\n __isSymbolOrInst() {\n return !!(this.__isSymbol() || this.get(keySymbol));\n }\n\n __isSymbolTop() {\n const parent = this.parent();\n const symb = this.__isSymbolOrInst();\n return symb && (!parent || (parent && !parent.__isSymbol() && !parent.__getSymbol()));\n }\n\n __isSymbolNested() {\n if (!this.__isSymbolOrInst() || this.__isSymbolTop()) return false;\n const symbTopSelf = (this.__isSymbol() ? this : this.__getSymbol()).__getSymbTop();\n const symbTop = this.__getSymbTop();\n const symbTopMain = symbTop.__isSymbol() ? symbTop : symbTop.__getSymbol();\n return symbTopMain !== symbTopSelf;\n }\n\n __getAllById() {\n const { em } = this;\n return em ? em.get('DomComponents').allById() : {};\n }\n\n __getSymbol() {\n let symb = this.get(keySymbol);\n if (symb && isString(symb)) {\n const ref = this.__getAllById()[symb];\n if (ref) {\n symb = ref;\n this.set(keySymbol, ref);\n } else {\n symb = 0;\n }\n }\n return symb;\n }\n\n __getSymbols() {\n let symbs = this.get(keySymbols);\n if (symbs && isArray(symbs)) {\n symbs.forEach((symb, idx) => {\n if (symb && isString(symb)) {\n symbs[idx] = this.__getAllById()[symb];\n }\n });\n symbs = symbs.filter(symb => symb && !isString(symb));\n }\n return symbs;\n }\n\n __isSymbOvrd(prop = '') {\n const ovrd = this.get(keySymbolOvrd);\n const [prp] = prop.split(':');\n const props = prop !== prp ? [prop, prp] : [prop];\n return ovrd === true || (isArray(ovrd) && props.some(p => ovrd.indexOf(p) >= 0));\n }\n\n __getSymbToUp(opts = {}) {\n let result = [];\n const { em } = this;\n const { changed } = opts;\n const symbEnabled = em && em.get('symbols');\n\n if (\n opts.fromInstance ||\n opts.noPropagate ||\n opts.fromUndo ||\n !symbEnabled ||\n // Avoid updating others if the current component has override\n (changed && this.__isSymbOvrd(changed))\n ) {\n return result;\n }\n\n const symbols = this.__getSymbols() || [];\n const symbol = this.__getSymbol();\n const all = symbol ? [symbol, ...(symbol.__getSymbols() || [])] : symbols;\n result = all\n .filter(s => s !== this)\n // Avoid updating those with override\n .filter(s => !(changed && s.__isSymbOvrd(changed)));\n\n return result;\n }\n\n __getSymbTop(opts) {\n let result = this;\n let parent = this.parent(opts);\n\n while (parent && (parent.__isSymbol() || parent.__getSymbol())) {\n result = parent;\n parent = parent.parent(opts);\n }\n\n return result;\n }\n\n __upSymbProps(m, opts = {}) {\n const changed = this.changedAttributes();\n const attrs = changed.attributes || {};\n delete changed.status;\n delete changed.open;\n delete changed[keySymbols];\n delete changed[keySymbol];\n delete changed[keySymbolOvrd];\n delete changed.attributes;\n delete attrs.id;\n if (!isEmptyObj(attrs)) changed.attributes = attrs;\n if (!isEmptyObj(changed)) {\n const toUp = this.__getSymbToUp(opts);\n // Avoid propagating overrides to other symbols\n keys(changed).map(prop => {\n if (this.__isSymbOvrd(prop)) delete changed[prop];\n });\n\n this.__logSymbol('props', toUp, { opts, changed });\n toUp.forEach(child => {\n const propsChanged = { ...changed };\n // Avoid updating those with override\n keys(propsChanged).map(prop => {\n if (child.__isSymbOvrd(prop)) delete propsChanged[prop];\n });\n child.set(propsChanged, { fromInstance: this, ...opts });\n });\n }\n }\n\n __upSymbCls(m, c, opts = {}) {\n const toUp = this.__getSymbToUp(opts);\n this.__logSymbol('classes', toUp, { opts });\n toUp.forEach(child => {\n // This will propagate the change up to __upSymbProps\n child.set('classes', this.get('classes'), { fromInstance: this });\n });\n this.__changesUp(opts);\n }\n\n __upSymbComps(m, c, o) {\n const optUp = o || c || {};\n const { fromInstance, fromUndo } = optUp;\n const toUpOpts = { fromInstance, fromUndo };\n const isTemp = m.opt.temporary;\n\n // Reset\n if (!o) {\n const toUp = this.__getSymbToUp({\n ...toUpOpts,\n changed: 'components:reset',\n });\n this.__logSymbol('reset', toUp, { components: m.models });\n toUp.forEach(symb => {\n const newMods = m.models.map(mod => mod.clone({ symbol: 1 }));\n symb.components().reset(newMods, { fromInstance: this, ...c });\n });\n // Add\n } else if (o.add) {\n let addedInstances = [];\n const isMainSymb = !!this.__getSymbols();\n const toUp = this.__getSymbToUp({\n ...toUpOpts,\n changed: 'components:add',\n });\n if (toUp.length) {\n const addSymb = m.__getSymbol();\n addedInstances = (addSymb ? addSymb.__getSymbols() : m.__getSymbols()) || [];\n addedInstances = [...addedInstances];\n addedInstances.push(addSymb ? addSymb : m);\n }\n !isTemp &&\n this.__logSymbol('add', toUp, {\n opts: o,\n addedInstances: addedInstances.map(c => c.cid),\n added: m.cid,\n });\n // Here, before appending a new symbol, I have to ensure there are no previously\n // created symbols (eg. used mainly when drag components around)\n toUp.forEach(symb => {\n const symbTop = symb.__getSymbTop();\n const symbPrev = addedInstances.filter(addedInst => {\n const addedTop = addedInst.__getSymbTop({ prev: 1 });\n return symbTop && addedTop && addedTop === symbTop;\n })[0];\n const toAppend = symbPrev || m.clone({ symbol: 1, symbolInv: isMainSymb });\n symb.append(toAppend, { fromInstance: this, ...o });\n });\n // Remove\n } else {\n // Remove instance reference from the symbol\n const symb = m.__getSymbol();\n symb &&\n !o.temporary &&\n symb.set(\n keySymbols,\n symb.__getSymbols().filter(i => i !== m)\n );\n\n // Propagate remove only if the component is an inner symbol\n if (!m.__isSymbolTop()) {\n const changed = 'components:remove';\n const { index } = o;\n const parent = m.parent();\n const opts = { fromInstance: m, ...o };\n const isSymbNested = m.__isSymbolNested();\n let toUpFn = symb => {\n const symbPrnt = symb.parent();\n symbPrnt && !symbPrnt.__isSymbOvrd(changed) && symb.remove(opts);\n };\n // Check if the parent allows the removing\n let toUp = !parent.__isSymbOvrd(changed) ? m.__getSymbToUp(toUpOpts) : [];\n\n if (isSymbNested) {\n toUp = parent.__getSymbToUp({ ...toUpOpts, changed });\n toUpFn = symb => {\n const toRemove = symb.components().at(index);\n toRemove && toRemove.remove({ fromInstance: parent, ...opts });\n };\n }\n\n !isTemp &&\n this.__logSymbol('remove', toUp, {\n opts: o,\n removed: m.cid,\n isSymbNested,\n });\n toUp.forEach(toUpFn);\n }\n }\n\n this.__changesUp(optUp);\n }\n\n initClasses(m, c, opts = {}) {\n const event = 'change:classes';\n const attrCls = this.get('attributes').class || [];\n const toListen = [this, event, this.initClasses];\n const cls = this.get('classes') || attrCls;\n const clsArr = isString(cls) ? cls.split(' ') : cls;\n this.stopListening(...toListen);\n const classes = this.normalizeClasses(clsArr);\n const selectors = new Selectors([]);\n this.set('classes', selectors, opts);\n selectors.add(classes);\n selectors.on('add remove reset', this.__upSymbCls);\n this.listenTo(...toListen);\n return this;\n }\n\n initComponents() {\n const event = 'change:components';\n const toListen = [this, event, this.initComponents];\n this.stopListening(...toListen);\n // Have to add components after the init, otherwise the parent\n // is not visible\n const comps = new Components(null, this.opt);\n comps.parent = this;\n const components = this.get('components');\n const addChild = !this.opt.avoidChildren;\n this.set('components', comps);\n addChild && components && comps.add(isFunction(components) ? components(this) : components, this.opt);\n comps.on('add remove reset', this.__upSymbComps);\n this.listenTo(...toListen);\n return this;\n }\n\n initTraits(changed) {\n const { em } = this;\n const event = 'change:traits';\n this.off(event, this.initTraits);\n this.__loadTraits();\n const attrs = { ...this.get('attributes') };\n const traits = this.get('traits');\n traits.each(trait => {\n if (!trait.get('changeProp')) {\n const name = trait.get('name');\n const value = trait.getInitValue();\n if (name && value) attrs[name] = value;\n }\n });\n traits.length && this.set('attributes', attrs);\n this.on(event, this.initTraits);\n changed && em && em.trigger('component:toggled');\n return this;\n }\n\n initScriptProps() {\n if (this.opt.temporary) return;\n const prop = 'script-props';\n const toListen = [`change:${prop}`, this.initScriptProps];\n this.off(...toListen);\n const prevProps = this.previous(prop) || [];\n const newProps = this.get(prop) || [];\n const prevPropsEv = prevProps.map(e => `change:${e}`).join(' ');\n const newPropsEv = newProps.map(e => `change:${e}`).join(' ');\n prevPropsEv && this.off(prevPropsEv, this.__scriptPropsChange);\n newPropsEv && this.on(newPropsEv, this.__scriptPropsChange);\n this.on(...toListen);\n }\n\n __scriptPropsChange(m, v, opts = {}) {\n if (opts.avoidStore) return;\n this.trigger('rerender');\n }\n\n /**\n * Add new component children\n * @param {Component|String} components Component to add\n * @param {Object} [opts={}] Options for the append action\n * @return {Array} Array of appended components\n * @example\n * someComponent.get('components').length // -> 0\n * const videoComponent = someComponent.append('
')[0];\n * // This will add 2 components (`video` and `div`) to your `someComponent`\n * someComponent.get('components').length // -> 2\n * // You can pass components directly\n * otherComponent.append(otherComponent2);\n * otherComponent.append([otherComponent3, otherComponent4]);\n * // append at specific index (eg. at the beginning)\n * someComponent.append(otherComponent, { at: 0 });\n */\n append(components, opts = {}) {\n const compArr = isArray(components) ? components : [components];\n const toAppend = compArr.map(comp => {\n if (isString(comp)) {\n return comp;\n } else {\n // I have to remove components from the old container before adding them to a new one\n comp.collection && comp.collection.remove(comp, { temporary: 1 });\n return comp;\n }\n });\n const result = this.components().add(toAppend, opts);\n return isArray(result) ? result : [result];\n }\n\n /**\n * Set new collection if `components` are provided, otherwise the\n * current collection is returned\n * @param {Component|String} [components] Component Definitions or HTML string\n * @param {Object} [opts={}] Options, same as in `Component.append()`\n * @returns {Collection|Array<[Component]>}\n * @example\n * // Set new collection\n * component.components('
');\n * // Get current collection\n * const collection = component.components();\n * console.log(collection.length);\n * // -> 2\n */\n components(components, opts = {}) {\n const coll = this.get('components');\n\n if (isUndefined(components)) {\n return coll;\n } else {\n coll.reset(null, opts);\n return components ? this.append(components, opts) : [];\n }\n }\n\n /**\n * If exists, returns the child component at specific index.\n * @param {Number} index Index of the component to return\n * @returns {[Component]|null}\n * @example\n * // Return first child\n * component.getChildAt(0);\n * // Return second child\n * component.getChildAt(1);\n */\n getChildAt(index) {\n return this.components().at(index || 0) || null;\n }\n\n /**\n * If exists, returns the last child component.\n * @returns {[Component]|null}\n * @example\n * const lastChild = component.getLastChild();\n */\n getLastChild() {\n const children = this.components();\n return children.at(children.length - 1) || null;\n }\n\n /**\n * Remove all inner components\n * * @return {this}\n */\n empty(opts = {}) {\n this.components().reset(null, opts);\n return this;\n }\n\n /**\n * Get the parent component, if exists\n * @return {Component|null}\n * @example\n * component.parent();\n * // -> Component\n */\n parent(opts = {}) {\n const coll = this.collection || (opts.prev && this.prevColl);\n return coll ? coll.parent : null;\n }\n\n /**\n * Script updated\n * @private\n */\n scriptUpdated() {\n this.set('scriptUpdated', 1);\n }\n\n /**\n * Init toolbar\n * @private\n */\n initToolbar() {\n const { em } = this;\n const model = this;\n const ppfx = (em && em.getConfig('stylePrefix')) || '';\n\n if (!model.get('toolbar') && em) {\n const tb = [];\n model.collection &&\n tb.push({\n label: em.getIcon('arrowUp'),\n command: ed => ed.runCommand('core:component-exit', { force: 1 }),\n });\n model.get('draggable') &&\n tb.push({\n attributes: { class: `${ppfx}no-touch-actions`, draggable: true },\n label: em.getIcon('move'),\n command: 'tlb-move',\n });\n model.get('copyable') &&\n tb.push({\n label: em.getIcon('copy'),\n command: 'tlb-clone',\n });\n model.get('removable') &&\n tb.push({\n label: em.getIcon('delete'),\n command: 'tlb-delete',\n });\n model.set('toolbar', tb);\n }\n }\n\n __loadTraits(tr, opts = {}) {\n let traitsI = tr || this.get('traits');\n\n if (!(traitsI instanceof Traits)) {\n traitsI = isFunction(traitsI) ? traitsI(this) : traitsI;\n const traits = new Traits([], this.opt);\n traits.setTarget(this);\n\n if (traitsI.length) {\n traitsI.forEach(tr => tr.attributes && delete tr.attributes.value);\n traits.add(traitsI);\n }\n\n this.set({ traits }, opts);\n }\n\n return this;\n }\n\n /**\n * Get traits.\n * @returns {Array}\n * @example\n * const traits = component.getTraits();\n * console.log(traits);\n * // [Trait, Trait, Trait, ...]\n */\n getTraits() {\n this.__loadTraits();\n return [...this.get('traits').models];\n }\n\n /**\n * Replace current collection of traits with a new one.\n * @param {Array} traits Array of trait definitions\n * @returns {Array}\n * @example\n * const traits = component.setTraits([{ type: 'checkbox', name: 'disabled'}, ...]);\n * console.log(traits);\n * // [Trait, ...]\n */\n setTraits(traits) {\n const tr = isArray(traits) ? traits : [traits];\n this.set({ traits: tr });\n return this.getTraits();\n }\n\n /**\n * Get the trait by id/name.\n * @param {String} id The `id` or `name` of the trait\n * @return {Trait|null} Trait getModelToStyle\n * @example\n * const traitTitle = component.getTrait('title');\n * traitTitle && traitTitle.set('label', 'New label');\n */\n getTrait(id) {\n return (\n this.getTraits().filter(trait => {\n return trait.get('id') === id || trait.get('name') === id;\n })[0] || null\n );\n }\n\n /**\n * Update a trait.\n * @param {String} id The `id` or `name` of the trait\n * @param {Object} props Object with the props to update\n * @return {this}\n * @example\n * component.updateTrait('title', {\n * type: 'select',\n * options: [ 'Option 1', 'Option 2' ],\n * });\n */\n updateTrait(id, props) {\n const trait = this.getTrait(id);\n trait && trait.set(props);\n this.em?.trigger('component:toggled');\n return this;\n }\n\n /**\n * Get the trait position index by id/name. Useful in case you want to\n * replace some trait, at runtime, with something else.\n * @param {String} id The `id` or `name` of the trait\n * @return {Number} Index position of the current trait\n * @example\n * const traitTitle = component.getTraitIndex('title');\n * console.log(traitTitle); // 1\n */\n getTraitIndex(id) {\n const trait = this.getTrait(id);\n return trait ? this.get('traits').indexOf(trait) : -1;\n }\n\n /**\n * Remove trait/s by id/s.\n * @param {String|Array} id The `id`/`name` of the trait (or an array)\n * @return {Array} Array of removed traits\n * @example\n * component.removeTrait('title');\n * component.removeTrait(['title', 'id']);\n */\n removeTrait(id) {\n const ids = isArray(id) ? id : [id];\n const toRemove = ids.map(id => this.getTrait(id));\n const traits = this.get('traits');\n const removed = toRemove.length ? traits.remove(toRemove) : [];\n this.em?.trigger('component:toggled');\n return isArray(removed) ? removed : [removed];\n }\n\n /**\n * Add new trait/s.\n * @param {String|Object|Array} trait Trait to add (or an array of traits)\n * @param {Options} opts Options for the add\n * @return {Array} Array of added traits\n * @example\n * component.addTrait('title', { at: 1 }); // Add title trait (`at` option is the position index)\n * component.addTrait({\n * type: 'checkbox',\n * name: 'disabled',\n * });\n * component.addTrait(['title', {...}, ...]);\n */\n addTrait(trait, opts = {}) {\n this.__loadTraits();\n const added = this.get('traits').add(trait, opts);\n this.em?.trigger('component:toggled');\n return isArray(added) ? added : [added];\n }\n\n /**\n * Normalize input classes from array to array of objects\n * @param {Array} arr\n * @return {Array}\n * @private\n */\n normalizeClasses(arr) {\n const res = [];\n const { em } = this;\n const clm = em && em.get('SelectorManager');\n if (!clm) return;\n if (arr.models) return [...arr.models];\n arr.forEach(val => res.push(clm.add(val)));\n return res;\n }\n\n /**\n * Override original clone method\n * @private\n */\n clone(opt = {}) {\n const em = this.em;\n const attr = { ...this.attributes };\n const opts = { ...this.opt };\n const id = this.getId();\n const cssc = em && em.get('CssComposer');\n attr.attributes = { ...attr.attributes };\n delete attr.attributes.id;\n attr.components = [];\n attr.classes = [];\n attr.traits = [];\n\n if (this.__isSymbolTop()) {\n opt.symbol = 1;\n }\n\n this.get('components').each((md, i) => {\n attr.components[i] = md.clone({ ...opt, _inner: 1 });\n });\n this.get('traits').each((md, i) => {\n attr.traits[i] = md.clone();\n });\n this.get('classes').each((md, i) => {\n attr.classes[i] = md.get('name');\n });\n\n attr.status = '';\n opts.collection = null;\n\n const cloned = new this.constructor(attr, opts);\n\n // Clone component specific rules\n const newId = `#${cloned.getId()}`;\n const rulesToClone = cssc ? cssc.getRules(`#${id}`) : [];\n rulesToClone.forEach(rule => {\n const newRule = rule.clone();\n newRule.set('selectors', [newId]);\n cssc.getAll().add(newRule);\n });\n\n // Symbols\n // If I clone an inner symbol, I have to reset it\n cloned.set(keySymbols, 0);\n const symbol = this.__getSymbol();\n const symbols = this.__getSymbols();\n\n if (!opt.symbol && (symbol || symbols)) {\n cloned.set(keySymbol, 0);\n cloned.set(keySymbols, 0);\n } else if (symbol) {\n // Contains already a reference to a symbol\n symbol.set(keySymbols, [...symbol.__getSymbols(), cloned]);\n cloned.__initSymb();\n } else if (opt.symbol) {\n // Request to create a symbol\n if (this.__isSymbol()) {\n // Already a symbol, cloned should be an instance\n this.set(keySymbols, [...symbols, cloned]);\n cloned.set(keySymbol, this);\n cloned.__initSymb();\n } else if (opt.symbolInv) {\n // Inverted, cloned is the instance, the origin is the main symbol\n this.set(keySymbols, [cloned]);\n cloned.set(keySymbol, this);\n [this, cloned].map(i => i.__initSymb());\n } else {\n // Cloned becomes the main symbol\n cloned.set(keySymbols, [this]);\n [this, cloned].map(i => i.__initSymb());\n this.set(keySymbol, cloned);\n }\n }\n\n const event = 'component:clone';\n em && em.trigger(event, cloned);\n this.trigger(event, cloned);\n\n return cloned;\n }\n\n /**\n * Get the name of the component\n * @return {String}\n * */\n getName() {\n const { em } = this;\n const { type, tagName, name } = this.attributes;\n const defName = type || tagName;\n const nameTag = !type && tagName;\n const i18nPfx = 'domComponents.names.';\n const i18nName = name && em?.t(`${i18nPfx}${name}`);\n const i18nNameTag = nameTag && em?.t(`${i18nPfx}${nameTag}`);\n const i18nDefName = em && (em.t(`${i18nPfx}${type}`) || em.t(`${i18nPfx}${tagName}`));\n return (\n this.get('custom-name') || // Used in Layers (when the user changes the name)\n i18nName || // Use local component `name` key (eg. `domComponents.names.myComponentName`)\n name || // Use component `name` key\n i18nNameTag || // Use local component `tagName` key (eg. `domComponents.names.div`)\n capitalize(nameTag) || // Use component `tagName` key\n i18nDefName || // Use local component `type` key (eg. `domComponents.names.image`)\n capitalize(defName) // Use component `type` key\n );\n }\n\n /**\n * Get the icon string\n * @return {String}\n */\n getIcon() {\n let icon = this.get('icon');\n return icon ? icon + ' ' : '';\n }\n\n /**\n * Return HTML string of the component\n * @param {Object} [opts={}] Options\n * @param {String} [opts.tag] Custom tagName\n * @param {Object|Function} [opts.attributes=null] You can pass an object of custom attributes to replace with the current ones or you can even pass a function to generate attributes dynamically.\n * @param {Boolean} [opts.withProps] Include component properties as `data-gjs-*` attributes. This allows you to have re-importable HTML.\n * @param {Boolean} [opts.altQuoteAttr] In case the attribute value contains a `\"` char, instead of escaping it (`attr=\"value "\"`), the attribute will be quoted using single quotes (`attr='value \"'`).\n * @return {String} HTML string\n * @example\n * // Simple HTML return\n * component.set({ tagName: 'span' });\n * component.setAttributes({ title: 'Hello' });\n * component.toHTML();\n * // -> \n *\n * // Custom attributes\n * component.toHTML({ attributes: { 'data-test': 'Hello' } });\n * // -> \n *\n * // Custom dynamic attributes\n * component.toHTML({\n * attributes(component, attributes) {\n * if (component.get('tagName') == 'span') {\n * attributes.title = 'Custom attribute';\n * }\n * return attributes;\n * },\n * });\n * // -> \n */\n toHTML(opts = {}) {\n const model = this;\n const attrs = [];\n const customTag = opts.tag;\n const tag = customTag || model.get('tagName');\n const sTag = model.get('void');\n const customAttr = opts.attributes;\n let attributes = this.getAttrToHTML();\n delete opts.tag;\n\n // Get custom attributes if requested\n if (customAttr) {\n if (isFunction(customAttr)) {\n attributes = customAttr(model, attributes) || {};\n } else if (isObject(customAttr)) {\n attributes = customAttr;\n }\n }\n\n if (opts.withProps) {\n const props = this.toJSON();\n\n forEach(props, (value, key) => {\n const skipProps = ['classes', 'attributes', 'components'];\n if (key[0] !== '_' && skipProps.indexOf(key) < 0) {\n attributes[`data-gjs-${key}`] = isArray(value) || isObject(value) ? JSON.stringify(value) : value;\n }\n });\n }\n\n for (let attr in attributes) {\n const val = attributes[attr];\n\n if (!isUndefined(val) && val !== null) {\n if (isBoolean(val)) {\n val && attrs.push(attr);\n } else {\n let valueRes = '';\n if (opts.altQuoteAttr && isString(val) && val.indexOf('\"') >= 0) {\n valueRes = `'${val.replace(/'/g, ''')}'`;\n } else {\n const value = isString(val) ? val.replace(/\"/g, '"') : val;\n valueRes = `\"${value}\"`;\n }\n\n attrs.push(`${attr}=${valueRes}`);\n }\n }\n }\n\n const attrString = attrs.length ? ` ${attrs.join(' ')}` : '';\n const inner = model.getInnerHTML(opts);\n let code = `<${tag}${attrString}${sTag ? '/' : ''}>${inner}`;\n !sTag && (code += ``);\n\n return code;\n }\n\n /**\n * Get inner HTML of the component\n * @param {Object} [opts={}] Same options of `toHTML`\n * @returns {String} HTML string\n */\n getInnerHTML(opts) {\n return this.__innerHTML(opts);\n }\n\n __innerHTML(opts = {}) {\n const cmps = this.components();\n return !cmps.length ? this.get('content') : cmps.map(c => c.toHTML(opts)).join('');\n }\n\n /**\n * Returns object of attributes for HTML\n * @return {Object}\n * @private\n */\n getAttrToHTML() {\n var attr = this.getAttributes();\n delete attr.style;\n return attr;\n }\n\n /**\n * Return a shallow copy of the model's attributes for JSON\n * stringification.\n * @return {Object}\n * @private\n */\n toJSON(opts = {}) {\n const obj = Model.prototype.toJSON.call(this, opts);\n obj.attributes = this.getAttributes();\n delete obj.attributes.class;\n delete obj.toolbar;\n delete obj.traits;\n delete obj.status;\n delete obj.open; // used in Layers\n\n if (!opts.fromUndo) {\n const symbol = obj[keySymbol];\n const symbols = obj[keySymbols];\n if (symbols && isArray(symbols)) {\n obj[keySymbols] = symbols.filter(i => i).map(i => (i.getId ? i.getId() : i));\n }\n if (symbol && !isString(symbol)) {\n obj[keySymbol] = symbol.getId();\n }\n }\n\n if (this.em.getConfig('avoidDefaults')) {\n this.getChangedProps(obj);\n }\n\n return obj;\n }\n\n /**\n * Return an object containing only changed props\n */\n getChangedProps(res) {\n const obj = res || Model.prototype.toJSON.apply(this);\n const defaults = result(this, 'defaults');\n\n forEach(defaults, (value, key) => {\n if (['type'].indexOf(key) === -1 && obj[key] === value) {\n delete obj[key];\n }\n });\n\n if (isEmpty(obj.type)) {\n delete obj.type;\n }\n\n forEach(['attributes', 'style'], prop => {\n if (isEmpty(defaults[prop]) && isEmpty(obj[prop])) {\n delete obj[prop];\n }\n });\n\n forEach(['classes', 'components'], prop => {\n if (!obj[prop] || (isEmpty(defaults[prop]) && !obj[prop].length)) {\n delete obj[prop];\n }\n });\n\n return obj;\n }\n\n /**\n * Return the component id\n * @return {String}\n */\n getId() {\n let attrs = this.get('attributes') || {};\n return attrs.id || this.ccid || this.cid;\n }\n\n /**\n * Set new id on the component\n * @param {String} id\n * @return {this}\n */\n setId(id, opts) {\n const attrs = { ...this.get('attributes') };\n attrs.id = id;\n this.set('attributes', attrs, opts);\n return this;\n }\n\n /**\n * Get the DOM element of the component.\n * This works only if the component is already rendered\n * @param {Frame} frame Specific frame from which taking the element\n * @return {HTMLElement}\n */\n getEl(frame) {\n const view = this.getView(frame);\n return view && view.el;\n }\n\n /**\n * Get the View of the component.\n * This works only if the component is already rendered\n * @param {Frame} frame Get View of a specific frame\n * @return {ComponentView}\n */\n getView(frame) {\n let { view, views } = this;\n\n if (frame) {\n view = views.filter(view => view._getFrame() === frame.view)[0];\n }\n\n return view;\n }\n\n getCurrentView() {\n const frame = (this.em.get('currentFrame') || {}).model;\n return this.getView(frame);\n }\n\n __getScriptProps() {\n const modelProps = this.props();\n const scrProps = this.get('script-props') || [];\n return scrProps.reduce((acc, prop) => {\n acc[prop] = modelProps[prop];\n return acc;\n }, {});\n }\n\n /**\n * Return script in string format, cleans 'function() {..' from scripts\n * if it's a function\n * @param {string|Function} script\n * @return {string}\n * @private\n */\n getScriptString(script) {\n let scr = script || this.get('script');\n\n if (!scr) {\n return scr;\n }\n\n if (this.get('script-props')) {\n scr = scr.toString().trim();\n } else {\n // Deprecated\n // Need to convert script functions to strings\n if (typeof scr == 'function') {\n var scrStr = scr.toString().trim();\n scrStr = scrStr.replace(/^function[\\s\\w]*\\(\\)\\s?\\{/, '').replace(/\\}$/, '');\n scr = scrStr.trim();\n }\n\n var config = this.em.getConfig();\n var tagVarStart = escapeRegExp(config.tagVarStart || '{[ ');\n var tagVarEnd = escapeRegExp(config.tagVarEnd || ' ]}');\n var reg = new RegExp(`${tagVarStart}([\\\\w\\\\d-]*)${tagVarEnd}`, 'g');\n scr = scr.replace(reg, (match, v) => {\n // If at least one match is found I have to track this change for a\n // better optimization inside JS generator\n this.scriptUpdated();\n const result = this.attributes[v] || '';\n return isArray(result) || typeof result == 'object' ? JSON.stringify(result) : result;\n });\n }\n return scr;\n }\n\n emitUpdate(property, ...args) {\n const { em } = this;\n const event = keyUpdate + (property ? `:${property}` : '');\n const item = property && this.get(property);\n property && this.updated(property, item, property && this.previous(property), ...args);\n this.trigger(event, ...args);\n em && em.trigger(event, this, ...args);\n ['components', 'classes'].indexOf(property) >= 0 &&\n this.__propSelfToParent({\n component: this,\n changed: { [property]: item },\n options: args[2] || args[1] || {},\n });\n }\n\n /**\n * Execute callback function on itself and all inner components\n * @param {Function} clb Callback function, the model is passed as an argument\n * @return {this}\n * @example\n * component.onAll(component => {\n * // do something with component\n * })\n */\n onAll(clb) {\n if (isFunction(clb)) {\n clb(this);\n this.components().forEach(model => model.onAll(clb));\n }\n return this;\n }\n\n /**\n * Remove the component\n * @return {this}\n */\n remove(opts = {}) {\n const { em } = this;\n const coll = this.collection;\n const remove = () => {\n coll && coll.remove(this, { ...opts, action: 'remove-component' });\n // Component without parent\n if (!coll) {\n this.components('', opts);\n this.components().removeChildren(this, null, opts);\n }\n };\n const rmOpts = { ...opts };\n [this, em].map(i => i.trigger('component:remove:before', this, remove, rmOpts));\n !rmOpts.abort && remove();\n return this;\n }\n\n /**\n * Move the component to another destination component\n * @param {Component} component Destination component (so the current one will be appended as a child)\n * @param {Object} opts Options for the append action\n * @returns {this}\n * @example\n * // Move the selected component on top of the wrapper\n * const dest = editor.getWrapper();\n * editor.getSelected().move(dest, { at: 0 });\n */\n move(component, opts = {}) {\n this.remove({ temporary: 1 });\n component && component.append(this, opts);\n return this;\n }\n\n /**\n * Check if the component is an instance of some component type.\n * @param {String} type Component type\n * @returns {Boolean}\n * @example\n * // Add a new component type by extending an existing one\n * editor.Components.addType('text-ext', { extend: 'text' });\n * // Append a new component somewhere\n * const newTextExt = editor.getSelected().append({ type: 'text-ext' })[0];\n * newTextExt.isInstanceOf('text-ext'); // true\n * newTextExt.isInstanceOf('text'); // true\n */\n isInstanceOf(type) {\n const cmp = this.em?.get('DomComponents').getType(type)?.model;\n\n if (!cmp) return false;\n\n return this instanceof cmp;\n }\n\n /**\n * Check if the component is a child of some other component (or component type)\n * @param {[Component]|String} component Component parent to check. In case a string is passed,\n * the check will be performed on the component type.\n * @returns {Boolean}\n * @example\n * const newTextComponent = editor.getSelected().append({\n * type: 'text',\n * components: 'My text here',\n * })[0];\n * const innerComponent = newTextComponent.find('b')[0];\n * innerComponent.isChildOf(newTextComponent); // true\n * innerComponent.isChildOf('text'); // true\n */\n isChildOf(component) {\n const byType = isString(component);\n let parent = this.parent();\n\n while (parent) {\n if (byType) {\n if (parent.isInstanceOf(component)) {\n return true;\n }\n } else {\n if (parent === component) {\n return true;\n }\n }\n\n parent = parent.parent();\n }\n\n return false;\n }\n\n /**\n * Reset id of the component and any of its style rule\n * @param {Object} [opts={}] Options\n * @return {this}\n * @private\n */\n resetId(opts = {}) {\n const { em } = this;\n const oldId = this.getId();\n if (!oldId) return;\n const newId = Component.createId(this);\n this.setId(newId);\n const rule = em && em.get('CssComposer').getIdRule(oldId);\n const selector = rule && rule.get('selectors').at(0);\n selector && selector.set('name', newId);\n return this;\n }\n\n _getStyleRule({ id } = {}) {\n const { em } = this;\n const idS = id || this.getId();\n return em && em.get('CssComposer').getIdRule(idS);\n }\n\n _getStyleSelector(opts) {\n const rule = this._getStyleRule(opts);\n return rule && rule.get('selectors').at(0);\n }\n\n _idUpdated(m, v, opts = {}) {\n if (opts.idUpdate) return;\n\n const { ccid } = this;\n const { id } = this.get('attributes') || {};\n const idPrev = (this.previous('attributes') || {}).id || ccid;\n const list = Component.getList(this);\n\n // If the ID already exists I need to rollback to the old one\n if (list[id] || (!id && idPrev)) {\n return this.setId(idPrev, { idUpdate: 1 });\n }\n\n // Remove the old ID reference and add the new one\n delete list[idPrev];\n list[id] = this;\n this.ccid = id;\n\n // Update the style selector name\n const selector = this._getStyleSelector({ id: idPrev });\n selector && selector.set({ name: id, label: id });\n }\n}\n\n/**\n * Detect if the passed element is a valid component.\n * In case the element is valid an object abstracted\n * from the element will be returned\n * @param {HTMLElement}\n * @return {Object}\n * @private\n */\nComponent.isComponent = el => {\n return { tagName: toLowerCase(el.tagName) };\n};\n\nComponent.ensureInList = model => {\n const list = Component.getList(model);\n const id = model.getId();\n const current = list[id];\n\n if (!current) {\n // Insert in list\n list[id] = model;\n } else if (current !== model) {\n // Create new ID\n const nextId = Component.getIncrementId(id, list);\n model.setId(nextId);\n list[nextId] = model;\n }\n\n model.components().forEach(i => Component.ensureInList(i));\n};\n\n/**\n * Relying simply on the number of components becomes a problem when you\n * store and load them back, you might hit collisions with new components\n * @param {Model} model\n * @return {string}\n * @private\n */\nComponent.createId = (model, opts = {}) => {\n const list = Component.getList(model);\n const { idMap = {} } = opts;\n let { id } = model.get('attributes');\n let nextId;\n\n if (id) {\n nextId = Component.getIncrementId(id, list, opts);\n model.setId(nextId);\n if (id !== nextId) idMap[id] = nextId;\n } else {\n nextId = Component.getNewId(list);\n }\n\n list[nextId] = model;\n return nextId;\n};\n\nComponent.getNewId = list => {\n const count = Object.keys(list).length;\n // Testing 1000000 components with `+ 2` returns 0 collisions\n const ilen = count.toString().length + 2;\n const uid = (Math.random() + 1.1).toString(36).slice(-ilen);\n let newId = `i${uid}`;\n\n while (list[newId]) {\n newId = Component.getNewId(list);\n }\n\n return newId;\n};\n\nComponent.getIncrementId = (id, list, opts = {}) => {\n const { keepIds = [] } = opts;\n let counter = 1;\n let newId = id;\n\n if (keepIds.indexOf(id) < 0) {\n while (list[newId]) {\n counter++;\n newId = `${id}-${counter}`;\n }\n }\n\n return newId;\n};\n\n/**\n * The list of components is taken from the Components module.\n * Initially, the list, was set statically on the Component object but it was\n * not ok, as it was shared between multiple editor instances\n * @private\n */\nComponent.getList = model => {\n const { opt = {} } = model;\n const { domc, em } = opt;\n const dm = domc || (em && em.get('DomComponents'));\n return dm ? dm.componentsById : {};\n};\n\n/**\n * This method checks, for each parsed component and style object\n * (are not Components/CSSRules yet), for duplicated id and fixes them\n * This method is used in Components.js just after the parsing\n * @private\n */\nComponent.checkId = (components, styles = [], list = {}, opts = {}) => {\n const comps = isArray(components) ? components : [components];\n const { keepIds = [] } = opts;\n comps.forEach(comp => {\n const { attributes = {}, components } = comp;\n const { id } = attributes;\n\n // Check if we have collisions with current components\n if (id && list[id] && keepIds.indexOf(id) < 0) {\n const newId = Component.getIncrementId(id, list);\n attributes.id = newId;\n // Update passed styles\n isArray(styles) &&\n styles.forEach(style => {\n const { selectors } = style;\n selectors.forEach((sel, idx) => {\n if (sel === `#${id}`) selectors[idx] = `#${newId}`;\n });\n });\n }\n\n components && Component.checkId(components, styles, list, opts);\n });\n};\n\nComponent.getDefaults = function () {\n return result(this.prototype, 'defaults');\n};\n\nComponent.prototype.defaults = {\n tagName: 'div',\n type: '',\n name: '',\n removable: true,\n draggable: true,\n droppable: true,\n badgable: true,\n stylable: true,\n 'stylable-require': '',\n 'style-signature': '',\n unstylable: '',\n highlightable: true,\n copyable: true,\n resizable: false,\n editable: false,\n layerable: true,\n selectable: true,\n hoverable: true,\n void: false,\n state: '', // Indicates if the component is in some CSS state like ':hover', ':active', etc.\n status: '', // State, eg. 'selected'\n content: '',\n icon: '',\n style: '',\n styles: '', // Component related styles\n classes: '', // Array of classes\n script: '',\n 'script-props': '',\n 'script-export': '',\n attributes: '',\n traits: ['id', 'title'],\n propagate: '',\n dmode: '',\n toolbar: null,\n [keySymbol]: 0,\n [keySymbols]: 0,\n [keySymbolOvrd]: 0,\n _undo: true,\n _undoexc: ['status', 'open'],\n};\n","import Backbone from 'backbone';\nimport { isEmpty, isArray, isString, isFunction, each, includes, extend, flatten, debounce } from 'underscore';\nimport Component, { keySymbol, keySymbols } from './Component';\n\nexport const getComponentIds = (cmp, res = []) => {\n if (!cmp) return [];\n const cmps = isArray(cmp) || isFunction(cmp.map) ? cmp : [cmp];\n cmps.map(cmp => {\n res.push(cmp.getId());\n getComponentIds(cmp.components().models, res);\n });\n return res;\n};\n\nconst getComponentsFromDefs = (items, all = {}, opts = {}) => {\n const itms = isArray(items) ? items : [items];\n\n return itms.map(item => {\n const { attributes = {}, components, tagName } = item;\n const { id } = attributes;\n let result = item;\n\n if (id && all[id]) {\n result = all[id];\n tagName && result.set({ tagName }, { ...opts, silent: true });\n }\n\n if (components) {\n const newComponents = getComponentsFromDefs(components, all);\n\n if (isFunction(result.components)) {\n const cmps = result.components();\n cmps.length > 0 && cmps.reset(newComponents, opts);\n } else {\n result.components = newComponents;\n }\n }\n\n return result;\n });\n};\n\nexport default Backbone.Collection.extend({\n initialize(models, opt = {}) {\n this.opt = opt;\n this.listenTo(this, 'add', this.onAdd);\n this.listenTo(this, 'remove', this.removeChildren);\n this.listenTo(this, 'reset', this.resetChildren);\n const { em, config } = opt;\n this.config = config;\n this.em = em;\n this.domc = opt.domc || (em && em.get('DomComponents'));\n },\n\n resetChildren(models, opts = {}) {\n const coll = this;\n const prev = opts.previousModels || [];\n const toRemove = prev.filter(prev => !models.get(prev.cid));\n const newIds = getComponentIds(models);\n opts.keepIds = getComponentIds(prev).filter(pr => newIds.indexOf(pr) >= 0);\n toRemove.forEach(md => this.removeChildren(md, coll, opts));\n models.each(model => this.onAdd(model));\n },\n\n resetFromString(input = '', opts = {}) {\n opts.keepIds = getComponentIds(this);\n const { domc } = this;\n const allByID = domc?.allById() || {};\n const parsed = this.parseString(input, opts);\n const cmps = isArray(parsed) ? parsed : [parsed];\n const newCmps = getComponentsFromDefs(cmps, allByID, opts);\n this.reset(newCmps, opts);\n this.em?.trigger('component:content', this.parent, opts, input);\n },\n\n removeChildren(removed, coll, opts = {}) {\n // Removing a parent component can cause this function\n // to be called with an already removed child element\n if (!removed) {\n return;\n }\n\n const { domc, em } = this;\n const isTemp = opts.temporary || opts.fromUndo;\n removed.prevColl = this; // This one is required for symbols\n\n if (!isTemp) {\n // Remove the component from the global list\n const id = removed.getId();\n const sels = em.get('SelectorManager').getAll();\n const rules = em.get('CssComposer').getAll();\n const canRemoveStyle = (opts.keepIds || []).indexOf(id) < 0;\n const allByID = domc ? domc.allById() : {};\n delete allByID[id];\n\n // Remove all component related styles\n const rulesRemoved = canRemoveStyle\n ? rules.remove(\n rules.filter(r => r.getSelectors().getFullString() === `#${id}`),\n opts\n )\n : [];\n\n // Clean selectors\n sels.remove(rulesRemoved.map(rule => rule.getSelectors().at(0)));\n\n if (!removed.opt.temporary) {\n em.get('Commands').run('core:component-style-clear', {\n target: removed,\n });\n removed.removed();\n removed.trigger('removed');\n em.trigger('component:remove', removed);\n }\n\n const inner = removed.components();\n inner.forEach(it => this.removeChildren(it, coll, opts));\n }\n\n // Remove stuff registered in DomComponents.handleChanges\n const inner = removed.components();\n em.stopListening(inner);\n em.stopListening(removed);\n em.stopListening(removed.get('classes'));\n removed.__postRemove();\n },\n\n model(attrs, options) {\n const { opt } = options.collection;\n const { em } = opt;\n let model;\n const df = em.get('DomComponents').componentTypes;\n options.em = em;\n options.config = opt.config;\n options.componentTypes = df;\n options.domc = opt.domc;\n\n for (let it = 0; it < df.length; it++) {\n const dfId = df[it].id;\n if (dfId == attrs.type) {\n model = df[it].model;\n break;\n }\n }\n\n // If no model found, get the default one\n if (!model) {\n model = df[df.length - 1].model;\n em &&\n attrs.type &&\n em.logWarning(`Component type '${attrs.type}' not found`, {\n attrs,\n options,\n });\n }\n\n return new model(attrs, options);\n },\n\n parseString(value, opt = {}) {\n const { em, domc } = this;\n const cssc = em.get('CssComposer');\n const parsed = em.get('Parser').parseHtml(value);\n // We need this to avoid duplicate IDs\n Component.checkId(parsed.html, parsed.css, domc.componentsById, opt);\n\n if (parsed.css && cssc && !opt.temporary) {\n const { at, ...optsToPass } = opt;\n cssc.addCollection(parsed.css, {\n ...optsToPass,\n extend: 1,\n });\n }\n\n return parsed.html;\n },\n\n add(models, opt = {}) {\n opt.keepIds = [...(opt.keepIds || []), ...getComponentIds(opt.previousModels)];\n\n if (isString(models)) {\n models = this.parseString(models, opt);\n } else if (isArray(models)) {\n models = [...models];\n models.forEach((item, index) => {\n if (isString(item)) {\n const nodes = this.parseString(item, opt);\n models[index] = isArray(nodes) && !nodes.length ? null : nodes;\n }\n });\n }\n\n const isMult = isArray(models);\n models = (isMult ? models : [models]).filter(i => i).map(model => this.processDef(model));\n models = isMult ? flatten(models, 1) : models[0];\n\n const result = Backbone.Collection.prototype.add.apply(this, [models, opt]);\n this.__firstAdd = result;\n return result;\n },\n\n /**\n * Process component definition.\n */\n processDef(mdl) {\n // Avoid processing Models\n if (mdl.cid && mdl.ccid) return mdl;\n const { em, config = {} } = this;\n const { processor } = config;\n let model = mdl;\n\n if (processor) {\n model = { ...model }; // Avoid 'Cannot delete property ...'\n const modelPr = processor(model);\n if (modelPr) {\n each(model, (val, key) => delete model[key]);\n extend(model, modelPr);\n }\n }\n\n // React JSX preset\n if (model.$$typeof && typeof model.props == 'object') {\n model = { ...model };\n model.props = { ...model.props };\n const domc = em.get('DomComponents');\n const parser = em.get('Parser');\n const { parserHtml } = parser;\n\n each(model, (value, key) => {\n if (!includes(['props', 'type'], key)) delete model[key];\n });\n const { props } = model;\n const comps = props.children;\n delete props.children;\n delete model.props;\n const res = parserHtml.splitPropsFromAttr(props);\n model.attributes = res.attrs;\n\n if (comps) {\n model.components = comps;\n }\n if (!model.type) {\n model.type = 'textnode';\n } else if (!domc.getType(model.type)) {\n model.tagName = model.type;\n delete model.type;\n }\n\n extend(model, res.props);\n }\n\n return model;\n },\n\n onAdd(model, c, opts = {}) {\n const { domc, em } = this;\n const style = model.getStyle();\n const avoidInline = em && em.getConfig('avoidInlineStyle');\n domc && domc.Component.ensureInList(model);\n\n if (!isEmpty(style) && !avoidInline && em && em.get && em.getConfig('forceClass') && !opts.temporary) {\n const name = model.cid;\n const rule = em.get('CssComposer').setClassRule(name, style);\n model.setStyle({});\n model.addClass(name);\n }\n\n model.__postAdd({ recursive: 1 });\n this.__onAddEnd();\n },\n\n __onAddEnd: debounce(function () {\n // TODO to check symbols on load, probably this might be removed as symbols\n // are always recovered from the model\n // const { domc } = this;\n // const allComp = (domc && domc.allById()) || {};\n // const firstAdd = this.__firstAdd;\n // const toCheck = isArray(firstAdd) ? firstAdd : [firstAdd];\n // const silent = { silent: true };\n // const onAll = comps => {\n // comps.forEach(comp => {\n // const symbol = comp.get(keySymbols);\n // const symbolOf = comp.get(keySymbol);\n // if (symbol && isArray(symbol) && isString(symbol[0])) {\n // comp.set(\n // keySymbols,\n // symbol.map(smb => allComp[smb]).filter(i => i),\n // silent\n // );\n // }\n // if (isString(symbolOf)) {\n // comp.set(keySymbol, allComp[symbolOf], silent);\n // }\n // onAll(comp.components());\n // });\n // };\n // onAll(toCheck);\n }),\n});\n","import Backbone from 'backbone';\nimport { isEmpty, each, keys } from 'underscore';\nimport Components from '../model/Components';\nimport ComponentsView from './ComponentsView';\nimport Selectors from 'selector_manager/model/Selectors';\nimport { replaceWith } from 'utils/dom';\nimport { setViewEl } from 'utils/mixins';\n\nexport default Backbone.View.extend({\n className() {\n return this.getClasses();\n },\n\n tagName() {\n return this.model.get('tagName');\n },\n\n initialize(opt = {}) {\n const model = this.model;\n const config = opt.config || {};\n const em = config.em;\n const modelOpt = model.opt || {};\n const { $el, el } = this;\n this.opts = opt;\n this.modelOpt = modelOpt;\n this.config = config;\n this.em = em || '';\n this.pfx = config.stylePrefix || '';\n this.ppfx = config.pStylePrefix || '';\n this.attr = model.get('attributes');\n this.classe = this.attr.class || [];\n this.listenTo(model, 'change:style', this.updateStyle);\n this.listenTo(model, 'change:attributes', this.renderAttributes);\n this.listenTo(model, 'change:highlightable', this.updateHighlight);\n this.listenTo(model, 'change:status', this.updateStatus);\n this.listenTo(model, 'change:script rerender', this.reset);\n this.listenTo(model, 'change:content', this.updateContent);\n this.listenTo(model, 'change', this.handleChange);\n this.listenTo(model, 'active', this.onActive);\n this.listenTo(model, 'disable', this.onDisable);\n $el.data('model', model);\n setViewEl(el, this);\n model.view = this;\n this._getFrame() && model.views.push(this);\n this.initClasses();\n this.initComponents({ avoidRender: 1 });\n this.events = {\n ...this.events,\n dragstart: 'handleDragStart',\n };\n this.delegateEvents();\n !modelOpt.temporary && this.init(this._clbObj());\n },\n\n __isDraggable() {\n const { model, config } = this;\n const { draggable } = model.attributes;\n return config.draggableComponents && draggable;\n },\n\n _clbObj() {\n const { em, model, el } = this;\n return {\n editor: em && em.getEditor(),\n model,\n el,\n };\n },\n\n /**\n * Initialize callback\n */\n init() {},\n\n /**\n * Remove callback\n */\n removed() {},\n\n /**\n * Callback executed when the `active` event is triggered on component\n */\n onActive() {},\n\n /**\n * Callback executed when the `disable` event is triggered on component\n */\n onDisable() {},\n\n remove() {\n Backbone.View.prototype.remove.apply(this, arguments);\n const { model, $el } = this;\n const { views } = model;\n const frame = this._getFrame() || {};\n model.components().forEach(comp => {\n const view = comp.getView(frame.model);\n view?.remove();\n });\n this.childrenView?.remove();\n views.splice(views.indexOf(this), 1);\n this.removed(this._clbObj());\n $el.data({ model: '', collection: '', view: '' });\n // delete model.view; // Sorter relies on this property\n return this;\n },\n\n handleDragStart(event) {\n if (!this.__isDraggable()) return false;\n event.stopPropagation();\n event.preventDefault();\n this.em.get('Commands').run('tlb-move', {\n target: this.model,\n event,\n });\n },\n\n initClasses() {\n const { model } = this;\n const event = 'change:classes';\n const classes = model.get('classes');\n\n if (classes instanceof Selectors) {\n this.stopListening(model, event, this.initClasses);\n this.listenTo(model, event, this.initClasses);\n this.listenTo(classes, 'add remove change', this.updateClasses);\n classes.length && this.importClasses();\n }\n },\n\n initComponents(opts = {}) {\n const { model, $el, childrenView } = this;\n const event = 'change:components';\n const comps = model.get('components');\n const toListen = [model, event, this.initComponents];\n\n if (comps instanceof Components) {\n $el.data('collection', comps);\n childrenView && childrenView.remove();\n this.stopListening(...toListen);\n !opts.avoidRender && this.renderChildren();\n this.listenTo(...toListen);\n }\n },\n\n /**\n * Handle any property change\n * @private\n */\n handleChange() {\n const { model } = this;\n const chgArr = keys(model.changed);\n if (chgArr.length === 1 && chgArr[0] === 'status') return;\n model.emitUpdate();\n\n for (let prop in model.changed) {\n model.emitUpdate(prop);\n }\n },\n\n /**\n * Import, if possible, classes inside main container\n * @private\n * */\n importClasses() {\n var clm = this.config.em.get('SelectorManager');\n\n if (clm) {\n this.model.get('classes').each(m => {\n clm.add(m.get('name'));\n });\n }\n },\n\n /**\n * Update item on status change\n * @param {Event} e\n * @private\n * */\n updateStatus(opts = {}) {\n const { em } = this;\n const { extHl } = em ? em.get('Canvas').getConfig() : {};\n const el = this.el;\n const status = this.model.get('status');\n const ppfx = this.ppfx;\n const selectedCls = `${ppfx}selected`;\n const selectedParentCls = `${selectedCls}-parent`;\n const freezedCls = `${ppfx}freezed`;\n const hoveredCls = `${ppfx}hovered`;\n const toRemove = [selectedCls, selectedParentCls, freezedCls, hoveredCls];\n const selCls = extHl && !opts.noExtHl ? '' : selectedCls;\n this.$el.removeClass(toRemove.join(' '));\n var actualCls = el.getAttribute('class') || '';\n var cls = '';\n\n switch (status) {\n case 'selected':\n cls = `${actualCls} ${selCls}`;\n break;\n case 'selected-parent':\n cls = `${actualCls} ${selectedParentCls}`;\n break;\n case 'freezed':\n cls = `${actualCls} ${freezedCls}`;\n break;\n case 'freezed-selected':\n cls = `${actualCls} ${freezedCls} ${selCls}`;\n break;\n case 'hovered':\n cls = !opts.avoidHover ? `${actualCls} ${hoveredCls}` : '';\n break;\n }\n\n cls = cls.trim();\n cls && el.setAttribute('class', cls);\n },\n\n /**\n * Update highlight attribute\n * @private\n * */\n updateHighlight() {\n const { model } = this;\n const isTextable = model.get('textable');\n const hl = model.get('highlightable') && (isTextable || !model.isChildOf('text'));\n this.setAttribute('data-gjs-highlightable', hl ? true : '');\n },\n\n /**\n * Update style attribute\n * @private\n * */\n updateStyle(m, v, opts = {}) {\n const { model, em } = this;\n\n if (em && em.getConfig('avoidInlineStyle') && !opts.inline) {\n const style = model.getStyle();\n !isEmpty(style) && model.setStyle(style);\n } else {\n this.setAttribute('style', model.styleToString(opts));\n }\n },\n\n /**\n * Update classe attribute\n * @private\n * */\n updateClasses() {\n const str = this.model.get('classes').pluck('name').join(' ');\n this.setAttribute('class', str);\n\n // Regenerate status class\n this.updateStatus();\n this.onAttrUpdate();\n },\n\n /**\n * Update single attribute\n * @param {[type]} name [description]\n * @param {[type]} value [description]\n */\n setAttribute(name, value) {\n const el = this.$el;\n value ? el.attr(name, value) : el.removeAttr(name);\n },\n\n /**\n * Get classes from attributes.\n * This method is called before initialize\n *\n * @return {Array}|null\n * @private\n * */\n getClasses() {\n return this.model.getClasses().join(' ');\n },\n\n /**\n * Update attributes\n * @private\n * */\n updateAttributes() {\n const attrs = [];\n const { model, $el, el } = this;\n const { textable, type } = model.attributes;\n\n const defaultAttr = {\n id: model.getId(),\n 'data-gjs-type': type || 'default',\n ...(this.__isDraggable() && { draggable: true }),\n ...(textable && { contenteditable: 'false' }),\n };\n\n // Remove all current attributes\n each(el.attributes, attr => attrs.push(attr.nodeName));\n attrs.forEach(attr => $el.removeAttr(attr));\n this.updateStyle();\n this.updateHighlight();\n const attr = {\n ...defaultAttr,\n ...model.getAttributes(),\n };\n\n // Remove all `false` attributes\n keys(attr).forEach(key => attr[key] === false && delete attr[key]);\n\n $el.attr(attr);\n },\n\n /**\n * Update component content\n * @private\n * */\n updateContent() {\n const content = this.model.get('content');\n const hasComps = this.model.components().length;\n this.getChildrenContainer().innerHTML = hasComps ? '' : content;\n },\n\n /**\n * Prevent default helper\n * @param {Event} e\n * @private\n */\n prevDef(e) {\n e.preventDefault();\n },\n\n /**\n * Render component's script\n * @private\n */\n updateScript() {\n const { model, em } = this;\n if (!model.get('script')) return;\n em && em.get('Canvas').getCanvasView().updateScript(this);\n },\n\n /**\n * Return children container\n * Differently from a simple component where children container is the\n * component itself\n * \n * \n * \n * You could have the children container more deeper\n * \n *
\n *
\n *
\n *
\n * \n *
\n *
\n *
\n * @return HTMLElement\n * @private\n */\n getChildrenContainer() {\n var container = this.el;\n\n if (typeof this.getChildrenSelector == 'function') {\n container = this.el.querySelector(this.getChildrenSelector());\n } else if (typeof this.getTemplate == 'function') {\n // Need to find deepest first child\n }\n\n return container;\n },\n\n /**\n * This returns rect informations not affected by the canvas zoom.\n * The method `getBoundingClientRect` doesn't work here and we\n * have to take in account offsetParent\n */\n getOffsetRect() {\n const rect = {};\n const target = this.el;\n let gtop = 0;\n let gleft = 0;\n\n const assignRect = el => {\n const { offsetParent } = el;\n\n if (offsetParent) {\n gtop += offsetParent.offsetTop;\n gleft += offsetParent.offsetLeft;\n assignRect(offsetParent);\n } else {\n rect.top = target.offsetTop + gtop;\n rect.left = target.offsetLeft + gleft;\n rect.bottom = rect.top + target.offsetHeight;\n rect.right = rect.left + target.offsetWidth;\n }\n };\n assignRect(target);\n\n return rect;\n },\n\n isInViewport({ rect } = {}) {\n const { el } = this;\n const elDoc = el.ownerDocument;\n const { body } = elDoc;\n const { frameElement } = elDoc.defaultView;\n const { top, left } = rect || this.getOffsetRect();\n const frame = this._getFrame().getOffsetRect();\n\n return (\n top >= frame.scrollTop &&\n left >= frame.scrollLeft &&\n top <= frame.scrollBottom &&\n left <= frameElement.offsetWidth + body.scrollLeft\n );\n },\n\n scrollIntoView(opts = {}) {\n const rect = this.getOffsetRect();\n const isInViewport = this.isInViewport({ rect });\n\n if (!isInViewport || opts.force) {\n const { el } = this;\n\n // PATCH: scrollIntoView won't work with multiple requests from iframes\n if (opts.behavior !== 'smooth') {\n el.ownerDocument.defaultView.scrollTo(0, rect.top);\n } else {\n el.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n ...opts,\n });\n }\n }\n },\n\n /**\n * Recreate the element of the view\n */\n reset() {\n const { el } = this;\n this.el = '';\n this._ensureElement();\n this._setData();\n replaceWith(el, this.el);\n this.render();\n },\n\n _setData() {\n const { model } = this;\n const collection = model.components();\n const view = this;\n this.$el.data({ model, collection, view });\n },\n\n _getFrame() {\n return this.config.frameView;\n },\n\n /**\n * Render children components\n * @private\n */\n renderChildren() {\n this.updateContent();\n const container = this.getChildrenContainer();\n const view =\n this.childrenView ||\n new ComponentsView({\n collection: this.model.get('components'),\n config: this.config,\n componentTypes: this.opts.componentTypes,\n });\n\n view.render(container);\n this.childrenView = view;\n const childNodes = Array.prototype.slice.call(view.el.childNodes);\n\n for (var i = 0, len = childNodes.length; i < len; i++) {\n container.appendChild(childNodes.shift());\n }\n },\n\n renderAttributes() {\n this.updateAttributes();\n this.updateClasses();\n },\n\n onAttrUpdate() {},\n\n render() {\n this.renderAttributes();\n if (this.modelOpt.temporary) return this;\n this.renderChildren();\n this.updateScript();\n setViewEl(this.el, this);\n this.postRender();\n\n return this;\n },\n\n postRender() {\n if (!this.modelOpt.temporary) {\n this.onRender(this._clbObj());\n }\n },\n\n onRender() {},\n});\n","import Backbone from 'backbone';\nimport { isUndefined } from 'underscore';\nimport { removeEl } from '../../utils/dom';\n\nexport default Backbone.View.extend({\n initialize(o) {\n this.opts = o || {};\n this.config = o.config || {};\n this.em = this.config.em;\n const coll = this.collection;\n this.listenTo(coll, 'add', this.addTo);\n this.listenTo(coll, 'reset', this.resetChildren);\n this.listenTo(coll, 'remove', this.removeChildren);\n },\n\n removeChildren(removed, coll, opts = {}) {\n removed.views.forEach(view => {\n if (!view) return;\n const { childrenView, scriptContainer } = view;\n childrenView && childrenView.stopListening();\n removeEl(scriptContainer);\n view.remove.apply(view);\n });\n\n const inner = removed.components();\n inner.forEach(it => this.removeChildren(it, coll, opts));\n },\n\n /**\n * Add to collection\n * @param {Model} model\n * @param {Collection} coll\n * @param {Object} opts\n * @private\n * */\n addTo(model, coll = {}, opts = {}) {\n const em = this.config.em;\n const i = this.collection.indexOf(model);\n this.addToCollection(model, null, i);\n\n if (em && !opts.temporary) {\n const triggerAdd = model => {\n em.trigger('component:add', model);\n model.components().forEach(comp => triggerAdd(comp));\n };\n triggerAdd(model);\n }\n },\n\n /**\n * Add new object to collection\n * @param {Object} Model\n * @param {Object} Fragment collection\n * @param {Integer} Index of append\n *\n * @return {Object} Object rendered\n * @private\n * */\n addToCollection(model, fragmentEl, index) {\n if (!this.compView) this.compView = require('./ComponentView').default;\n const { config, opts, em } = this;\n const fragment = fragmentEl || null;\n const { frameView = {} } = config;\n const sameFrameView = frameView.model && model.getView(frameView.model);\n const dt = opts.componentTypes || (em && em.get('DomComponents').getTypes());\n const type = model.get('type') || 'default';\n let viewObject = this.compView;\n\n for (let it = 0; it < dt.length; it++) {\n if (dt[it].id == type) {\n viewObject = dt[it].view;\n break;\n }\n }\n const view =\n sameFrameView ||\n new viewObject({\n model,\n config,\n componentTypes: dt,\n });\n let rendered;\n\n try {\n // Avoid breaking on DOM rendering (eg. invalid attribute name)\n rendered = view.render().el;\n } catch (error) {\n rendered = document.createTextNode('');\n em.logError(error);\n }\n\n if (fragment) {\n fragment.appendChild(rendered);\n } else {\n const parent = this.parentEl;\n const children = parent.childNodes;\n\n if (!isUndefined(index)) {\n const lastIndex = children.length == index;\n\n // If the added model is the last of collection\n // need to change the logic of append\n if (lastIndex) {\n index--;\n }\n\n // In case the added is new in the collection index will be -1\n if (lastIndex || !children.length) {\n parent.appendChild(rendered);\n } else {\n parent.insertBefore(rendered, children[index]);\n }\n } else {\n parent.appendChild(rendered);\n }\n }\n\n if (!model.opt.temporary) {\n em?.trigger('component:mount', model);\n }\n\n return rendered;\n },\n\n resetChildren(models, { previousModels = [] } = {}) {\n this.parentEl.innerHTML = '';\n previousModels.forEach(md => this.removeChildren(md, this.collection));\n models.each(model => this.addToCollection(model));\n },\n\n render(parent) {\n const el = this.el;\n const frag = document.createDocumentFragment();\n this.parentEl = parent || this.el;\n this.collection.each(model => this.addToCollection(model, frag));\n el.innerHTML = '';\n el.appendChild(frag);\n return this;\n },\n});\n","import { isString, isArray, keys, isUndefined } from 'underscore';\nimport { shallowDiff } from '../../utils/mixins';\nimport ParserHtml from '../../parser/model/ParserHtml';\n\nconst parseStyle = ParserHtml().parseStyle;\n\nexport default {\n parseStyle,\n\n /**\n * To trigger the style change event on models I have to\n * pass a new object instance\n * @param {Object} prop\n * @return {Object}\n */\n extendStyle(prop) {\n return { ...this.getStyle(), ...prop };\n },\n\n /**\n * Get style object\n * @return {Object}\n */\n getStyle(prop) {\n const style = this.get('style') || {};\n const result = { ...style };\n return prop && isString(prop) ? result[prop] : result;\n },\n\n /**\n * Set new style object\n * @param {Object|string} prop\n * @param {Object} opts\n * @return {Object} Applied properties\n */\n setStyle(prop = {}, opts = {}) {\n if (isString(prop)) {\n prop = parseStyle(prop);\n }\n\n const propOrig = this.getStyle(opts);\n const propNew = { ...prop };\n this.set('style', propNew, opts);\n const diff = shallowDiff(propOrig, propNew);\n keys(diff).forEach(pr => {\n const em = this.em;\n if (opts.noEvent) return;\n this.trigger(`change:style:${pr}`);\n if (em) {\n em.trigger(`styleable:change`, this, pr, opts);\n em.trigger(`styleable:change:${pr}`, this, pr, opts);\n }\n });\n\n return propNew;\n },\n\n /**\n * Add style property\n * @param {Object|string} prop\n * @param {string} value\n * @example\n * this.addStyle({color: 'red'});\n * this.addStyle('color', 'blue');\n */\n addStyle(prop, value = '', opts = {}) {\n if (typeof prop == 'string') {\n prop = {\n prop: value,\n };\n } else {\n opts = value || {};\n }\n\n prop = this.extendStyle(prop);\n this.setStyle(prop, opts);\n },\n\n /**\n * Remove style property\n * @param {string} prop\n */\n removeStyle(prop) {\n let style = this.getStyle();\n delete style[prop];\n this.setStyle(style);\n },\n\n /**\n * Returns string of style properties\n * @param {Object} [opts={}] Options\n * @return {String}\n */\n styleToString(opts = {}) {\n const result = [];\n const style = this.getStyle(opts);\n\n for (let prop in style) {\n const imp = opts.important;\n const important = isArray(imp) ? imp.indexOf(prop) >= 0 : imp;\n const value = `${style[prop]}${important ? ' !important' : ''}`;\n const propPrv = prop.substr(0, 2) == '__';\n value && !propPrv && result.push(`${prop}:${value};`);\n }\n\n return result.join('');\n },\n\n getSelectors() {\n return this.get('selectors') || this.get('classes');\n },\n\n getSelectorsString(opts) {\n return this.selectorsToString ? this.selectorsToString(opts) : this.getSelectors().getFullString();\n },\n\n _validate(attr, opts) {\n const { style } = attr;\n const em = this.em || opts.em;\n const onBeforeStyle = em?.get('CssComposer')?.getConfig().onBeforeStyle;\n\n if (style && onBeforeStyle) {\n const newStyle = onBeforeStyle({ ...style });\n newStyle &&\n keys(style).map(prop => {\n if (isUndefined(newStyle[prop])) delete attr.style[prop];\n });\n newStyle &&\n keys(newStyle).map(prop => {\n attr.style[prop] = newStyle[prop];\n });\n }\n\n return true;\n },\n};\n","import { isFunction } from 'underscore';\nimport { View, Model } from '../../common';\n\nexport default {\n types: [],\n\n initialize(models, opts = {}) {\n const { em } = opts;\n this.em = em;\n this.opts = opts;\n this.model = (attrs = {}, options = {}) => {\n let Model, View, type;\n\n if (attrs && attrs.type) {\n const baseType = this.getBaseType();\n type = this.getType(attrs.type);\n Model = type ? type.model : baseType.model;\n View = type ? type.view : baseType.view;\n } else {\n const typeFound = this.recognizeType(attrs);\n type = typeFound.type;\n Model = type.model;\n View = type.view;\n attrs = typeFound.attributes;\n }\n\n const model = new Model(attrs, { ...options, em });\n model.typeView = View;\n return model;\n };\n const init = this.init && this.init.bind(this);\n init && init();\n },\n\n /**\n * Recognize type by any value\n * @param {mixed} value\n * @return {Object} Found type\n */\n recognizeType(value) {\n const types = this.getTypes();\n\n for (let i = 0; i < types.length; i++) {\n const type = types[i];\n let typeFound = type.isType(value);\n typeFound = typeof typeFound == 'boolean' && typeFound ? { type: type.id } : typeFound;\n\n if (typeFound) {\n return {\n type,\n attributes: typeFound,\n };\n }\n }\n\n // If, for any reason, the type is not found it'll return the base one\n return {\n type: this.getBaseType(),\n attributes: value,\n };\n },\n\n /**\n * Returns the base type (last object in the stack)\n * @return {Object}\n */\n getBaseType() {\n const types = this.getTypes();\n return types[types.length - 1];\n },\n\n /**\n * Get types\n * @return {Array}\n */\n getTypes() {\n return this.types;\n },\n\n /**\n * Get type\n * @param {string} id Type ID\n * @return {Object} Type definition\n */\n getType(id) {\n const types = this.getTypes();\n\n for (let i = 0; i < types.length; i++) {\n const type = types[i];\n if (type.id === id) {\n return type;\n }\n }\n },\n\n /**\n * Add new type\n * @param {string} id Type ID\n * @param {Object} definition Definition of the type. Each definition contains\n * `model` (business logic), `view` (presentation logic)\n * and `isType` function which recognize the type of the\n * passed entity\n * addType('my-type', {\n * model: {},\n * view: {},\n * isType: (value) => {},\n * })\n */\n addType(id, definition) {\n const type = this.getType(id);\n const baseType = this.getBaseType();\n const ModelInst = type ? type.model : baseType.model;\n const ViewInst = type ? type.view : baseType.view;\n let { model, view, isType } = definition;\n model = model instanceof Model || isFunction(model) ? model : ModelInst.extend(model || {});\n view = view instanceof View || isFunction(view) ? view : ViewInst.extend(view || {});\n\n // New API\n if (this.extendViewApi && !definition.model && !definition.view) {\n view = view.extend(definition);\n }\n\n if (type) {\n type.model = model;\n type.view = view;\n type.isType = isType || type.isType;\n } else {\n definition.id = id;\n definition.model = model;\n definition.view = view;\n definition.isType =\n isType ||\n function (value) {\n if (value && value.type == id) {\n return true;\n }\n };\n this.getTypes().unshift(definition);\n }\n },\n};\n","import Backbone from 'backbone';\n\nconst $ = Backbone.$;\n\nexport default class Input extends Backbone.View {\n template() {\n return ``;\n }\n\n inputClass() {\n return `${this.ppfx}field`;\n }\n\n holderClass() {\n return `${this.ppfx}input-holder`;\n }\n\n constructor(opts = {}) {\n super(opts);\n const ppfx = opts.ppfx || '';\n this.opts = opts;\n this.ppfx = ppfx;\n this.em = opts.target || {};\n !opts.onChange && this.listenTo(this.model, 'change:value', this.handleModelChange);\n }\n\n /**\n * Fired when the element of the property is updated\n */\n elementUpdated() {\n this.model.trigger('el:change');\n }\n\n /**\n * Set value to the input element\n * @param {string} value\n */\n setValue(value) {\n const model = this.model;\n let val = value || model.get('defaults');\n const input = this.getInputEl();\n input && (input.value = val);\n }\n\n /**\n * Updates the view when the model is changed\n * */\n handleModelChange(model, value, opts) {\n this.setValue(value, opts);\n }\n\n /**\n * Handled when the view is changed\n */\n handleChange(e) {\n e.stopPropagation();\n const value = this.getInputEl().value;\n this.__onInputChange(value);\n this.elementUpdated();\n }\n\n __onInputChange(value) {\n this.model.set({ value }, { fromInput: 1 });\n }\n\n /**\n * Get the input element\n * @return {HTMLElement}\n */\n getInputEl() {\n if (!this.inputEl) {\n const { model, opts } = this;\n const type = opts.type || 'text';\n const plh = model.get('placeholder') || model.get('defaults') || model.get('default') || '';\n this.inputEl = $(``);\n }\n\n return this.inputEl.get(0);\n }\n\n render() {\n this.inputEl = null;\n const el = this.$el;\n el.addClass(this.inputClass());\n el.html(this.template());\n el.find(`.${this.holderClass()}`).append(this.getInputEl());\n return this;\n }\n}\n\nInput.prototype.events = {\n change: 'handleChange',\n};\n","import Backbone from 'backbone';\nimport { isUndefined } from 'underscore';\nimport ColorPicker from '../../utils/ColorPicker';\nimport Input from './Input';\n\nconst { $ } = Backbone;\n$ && ColorPicker($);\n\nconst getColor = color => {\n const name = color.getFormat() === 'name' && color.toName();\n const cl = color.getAlpha() == 1 ? color.toHexString() : color.toRgbString();\n return name || cl.replace(/ /g, '');\n};\n\nexport default class InputColor extends Input {\n template() {\n const ppfx = this.ppfx;\n return `\n
\n
\n
\n
\n
\n
\n `;\n }\n\n inputClass() {\n const ppfx = this.ppfx;\n return `${ppfx}field ${ppfx}field-color`;\n }\n\n holderClass() {\n return `${this.ppfx}input-holder`;\n }\n\n remove() {\n Input.prototype.remove.apply(this, arguments);\n this.colorEl.spectrum('destroy');\n }\n\n handleChange(e) {\n e.stopPropagation();\n const { value } = e.target;\n if (isUndefined(value)) return;\n this.__onInputChange(value);\n }\n\n __onInputChange(val) {\n const { model, opts } = this;\n const { onChange } = opts;\n let value = val;\n const colorEl = this.getColorEl();\n\n // Check the color by using the ColorPicker's parser\n if (colorEl) {\n colorEl.spectrum('set', value);\n const tc = colorEl.spectrum('get');\n const color = value && getColor(tc);\n color && (value = color);\n }\n\n onChange ? onChange(value) : model.set({ value }, { fromInput: 1 });\n }\n\n /**\n * Set value to the model\n * @param {string} val\n * @param {Object} opts\n */\n setValue(val, opts = {}) {\n const { model } = this;\n const def = !isUndefined(opts.def) ? opts.def : model.get('defaults');\n const value = !isUndefined(val) ? val : !isUndefined(def) ? def : '';\n const inputEl = this.getInputEl();\n const colorEl = this.getColorEl();\n const valueClr = value != 'none' ? value : '';\n inputEl.value = value;\n colorEl.get(0).style.backgroundColor = valueClr;\n\n // This prevents from adding multiple thumbs in spectrum\n if (opts.fromTarget || (opts.fromInput && !opts.avoidStore)) {\n colorEl.spectrum('set', valueClr);\n this.noneColor = value == 'none';\n }\n }\n\n /**\n * Get the color input element\n * @return {HTMLElement}\n */\n getColorEl() {\n if (!this.colorEl) {\n const { em, model, opts } = this;\n const self = this;\n const ppfx = this.ppfx;\n const { onChange } = opts;\n\n var colorEl = $(`
`);\n var cpStyle = colorEl.get(0).style;\n var elToAppend = em && em.config ? em.config.el : '';\n var colorPickerConfig = (em && em.getConfig && em.getConfig('colorPicker')) || {};\n\n let changed = 0;\n let previousColor;\n this.$el.find(`[data-colorp-c]`).append(colorEl);\n colorEl.spectrum({\n color: model.getValue() || false,\n containerClassName: `${ppfx}one-bg ${ppfx}two-color`,\n appendTo: elToAppend || 'body',\n maxSelectionSize: 8,\n showPalette: true,\n showAlpha: true,\n chooseText: 'Ok',\n cancelText: '⨯',\n palette: [],\n\n // config expanded here so that the functions below are not overridden\n ...colorPickerConfig,\n ...(model.get('colorPicker') || {}),\n\n move(color) {\n const cl = getColor(color);\n cpStyle.backgroundColor = cl;\n onChange ? onChange(cl, true) : model.setValueFromInput(cl, 0);\n },\n change(color) {\n changed = 1;\n const cl = getColor(color);\n cpStyle.backgroundColor = cl;\n if (onChange) {\n onChange(cl);\n } else {\n model.setValueFromInput(0, 0); // for UndoManager\n model.setValueFromInput(cl);\n }\n self.noneColor = 0;\n },\n show(color) {\n changed = 0;\n previousColor = onChange ? model.getValue({ noDefault: true }) : getColor(color);\n },\n hide(color) {\n if (!changed && (previousColor || onChange)) {\n if (self.noneColor) {\n previousColor = '';\n }\n cpStyle.backgroundColor = previousColor;\n colorEl.spectrum('set', previousColor);\n onChange ? onChange(previousColor, true) : model.setValueFromInput(previousColor, 0);\n }\n },\n });\n\n if (em && em.on) {\n this.listenTo(em, 'component:selected', () => {\n changed = 1;\n colorEl.spectrum('hide');\n });\n }\n\n this.colorEl = colorEl;\n }\n return this.colorEl;\n }\n\n render() {\n Input.prototype.render.call(this);\n // This will make the color input available on render\n this.getColorEl();\n return this;\n }\n}\n","// Without jquery I have to update few stuff\n//\n// Spectrum Colorpicker v1.8.0\n// https://github.com/bgrins/spectrum\n// Author: Brian Grinstead\n// License: MIT\nimport { hasWin } from './mixins';\n\nexport default function ($, undefined) {\n 'use strict';\n if (!hasWin()) return;\n\n var defaultOpts = {\n // Callbacks\n beforeShow: noop,\n move: noop,\n change: noop,\n show: noop,\n hide: noop,\n\n // Options\n color: false,\n flat: false,\n showInput: false,\n allowEmpty: false,\n showButtons: true,\n clickoutFiresChange: true,\n showInitial: false,\n showPalette: false,\n showPaletteOnly: false,\n hideAfterPaletteSelect: false,\n togglePaletteOnly: false,\n showSelectionPalette: true,\n localStorageKey: false,\n appendTo: 'body',\n maxSelectionSize: 7,\n cancelText: 'cancel',\n chooseText: 'choose',\n togglePaletteMoreText: 'more',\n togglePaletteLessText: 'less',\n clearText: 'Clear Color Selection',\n noColorSelectedText: 'No Color Selected',\n preferredFormat: false,\n className: '', // Deprecated - use containerClassName and replacerClassName instead.\n containerClassName: '',\n replacerClassName: '',\n showAlpha: false,\n theme: 'sp-light',\n palette: [['#ffffff', '#000000', '#ff0000', '#ff8000', '#ffff00', '#008000', '#0000ff', '#4b0082', '#9400d3']],\n selectionPalette: [],\n disabled: false,\n offset: null,\n },\n spectrums = [],\n IE = !!/msie/i.exec(window.navigator.userAgent),\n rgbaSupport = (function () {\n function contains(str, substr) {\n return !!~('' + str).indexOf(substr);\n }\n\n var elem = document.createElement('div');\n var style = elem.style;\n style.cssText = 'background-color:rgba(0,0,0,.5)';\n return contains(style.backgroundColor, 'rgba') || contains(style.backgroundColor, 'hsla');\n })(),\n replaceInput = [\n \"
\",\n \"
\",\n \"
\",\n '
',\n ].join(''),\n markup = (function () {\n // IE does not support gradients with multiple stops, so we need to simulate\n // that for the rainbow slider with 8 divs that each have a single gradient\n var gradientFix = '';\n if (IE) {\n for (var i = 1; i <= 6; i++) {\n gradientFix += \"
\";\n }\n }\n\n return [\n \"
\",\n \"
\",\n \"
\",\n \"
\",\n \"\",\n '
',\n '
',\n \"
\",\n \"
\",\n \"
\",\n \"
\",\n \"
\",\n \"
\",\n \"
\",\n \"
\",\n '
',\n '
',\n '
',\n \"
\",\n '
',\n \"
\",\n \"
\",\n gradientFix,\n '
',\n '
',\n \"
\",\n '
',\n \"
\",\n \"\",\n '
',\n \"
\",\n \"
\",\n \"\",\n \"\",\n '
',\n '
',\n '
',\n ].join('');\n })();\n\n function paletteTemplate(p, color, className, opts) {\n var html = [];\n for (var i = 0; i < p.length; i++) {\n var current = p[i];\n if (current) {\n var tiny = tinycolor(current);\n var c = tiny.toHsl().l < 0.5 ? 'sp-thumb-el sp-thumb-dark' : 'sp-thumb-el sp-thumb-light';\n c += tinycolor.equals(color, current) ? ' sp-thumb-active' : '';\n var formattedString = tiny.toString(opts.preferredFormat || 'rgb');\n var swatchStyle = rgbaSupport ? 'background-color:' + tiny.toRgbString() : 'filter:' + tiny.toFilter();\n html.push(\n ''\n );\n } else {\n var cls = 'sp-clear-display';\n html.push(\n $('
')\n .append(\n $('').attr(\n 'title',\n opts.noColorSelectedText\n )\n )\n .html()\n );\n }\n }\n return \"
\" + html.join('') + '
';\n }\n\n function hideAll() {\n for (var i = 0; i < spectrums.length; i++) {\n if (spectrums[i]) {\n spectrums[i].hide();\n }\n }\n }\n\n function instanceOptions(o, callbackContext) {\n var opts = $.extend({}, defaultOpts, o);\n opts.callbacks = {\n move: bind(opts.move, callbackContext),\n change: bind(opts.change, callbackContext),\n show: bind(opts.show, callbackContext),\n hide: bind(opts.hide, callbackContext),\n beforeShow: bind(opts.beforeShow, callbackContext),\n };\n return opts;\n }\n\n function spectrum(element, o) {\n var opts = instanceOptions(o, element),\n flat = opts.flat,\n showSelectionPalette = opts.showSelectionPalette,\n localStorageKey = opts.localStorageKey,\n theme = opts.theme,\n callbacks = opts.callbacks,\n resize = throttle(reflow, 10),\n visible = false,\n isDragging = false,\n isDefault = true,\n dragWidth = 0,\n dragHeight = 0,\n dragHelperHeight = 0,\n slideHeight = 0,\n slideWidth = 0,\n alphaWidth = 0,\n alphaSlideHelperWidth = 0,\n slideHelperHeight = 0,\n currentHue = 0,\n currentSaturation = 0,\n currentValue = 0,\n currentAlpha = 1,\n palette = [],\n paletteArray = [],\n paletteLookup = {},\n selectionPalette = opts.selectionPalette.slice(0),\n maxSelectionSize = opts.maxSelectionSize,\n draggingClass = 'sp-dragging',\n shiftMovementDirection = null;\n\n var doc = element.ownerDocument,\n body = doc.body,\n boundElement = $(element),\n disabled = false,\n container = $(markup, doc).addClass(theme),\n pickerContainer = container.find('.sp-picker-container'),\n dragger = container.find('.sp-color'),\n dragHelper = container.find('.sp-dragger'),\n slider = container.find('.sp-hue'),\n slideHelper = container.find('.sp-slider'),\n alphaSliderInner = container.find('.sp-alpha-inner'),\n alphaSlider = container.find('.sp-alpha'),\n alphaSlideHelper = container.find('.sp-alpha-handle'),\n textInput = container.find('.sp-input'),\n paletteContainer = container.find('.sp-palette'),\n initialColorContainer = container.find('.sp-initial'),\n cancelButton = container.find('.sp-cancel'),\n clearButton = container.find('.sp-clear'),\n chooseButton = container.find('.sp-choose'),\n toggleButton = container.find('.sp-palette-toggle'),\n isInput = boundElement.is('input'),\n isInputTypeColor = isInput && boundElement.attr('type') === 'color' && inputTypeColorSupport(),\n shouldReplace = isInput && !flat,\n replacer = shouldReplace\n ? $(replaceInput).addClass(theme).addClass(opts.className).addClass(opts.replacerClassName)\n : $([]),\n offsetElement = shouldReplace ? replacer : boundElement,\n previewElement = replacer.find('.sp-preview-inner'),\n initialColor = opts.color || (isInput && boundElement.val()),\n colorOnShow = false,\n currentPreferredFormat = opts.preferredFormat,\n clickoutFiresChange = !opts.showButtons || opts.clickoutFiresChange,\n isEmpty = !initialColor,\n allowEmpty = opts.allowEmpty && !isInputTypeColor;\n\n function applyOptions() {\n if (opts.showPaletteOnly) {\n opts.showPalette = true;\n }\n\n toggleButton.text(opts.showPaletteOnly ? opts.togglePaletteMoreText : opts.togglePaletteLessText);\n\n if (opts.palette) {\n palette = opts.palette.slice(0);\n paletteArray = $.isArray(palette[0]) ? palette : [palette];\n paletteLookup = {};\n for (var i = 0; i < paletteArray.length; i++) {\n for (var j = 0; j < paletteArray[i].length; j++) {\n var rgb = tinycolor(paletteArray[i][j]).toRgbString();\n paletteLookup[rgb] = true;\n }\n }\n }\n\n container.toggleClass('sp-flat', flat);\n container.toggleClass('sp-input-disabled', !opts.showInput);\n container.toggleClass('sp-alpha-enabled', opts.showAlpha);\n container.toggleClass('sp-clear-enabled', allowEmpty);\n container.toggleClass('sp-buttons-disabled', !opts.showButtons);\n container.toggleClass('sp-palette-buttons-disabled', !opts.togglePaletteOnly);\n container.toggleClass('sp-palette-disabled', !opts.showPalette);\n container.toggleClass('sp-palette-only', opts.showPaletteOnly);\n container.toggleClass('sp-initial-disabled', !opts.showInitial);\n container.addClass(opts.className).addClass(opts.containerClassName);\n\n reflow();\n }\n\n function initialize() {\n if (IE) {\n container.find('*:not(input)').attr('unselectable', 'on');\n }\n\n applyOptions();\n\n if (shouldReplace) {\n boundElement.after(replacer).hide();\n }\n\n if (!allowEmpty) {\n clearButton.hide();\n }\n\n if (flat) {\n boundElement.after(container).hide();\n } else {\n var appendTo = opts.appendTo === 'parent' ? boundElement.parent() : $(opts.appendTo);\n if (appendTo.length !== 1) {\n appendTo = $('body');\n }\n\n appendTo.append(container);\n }\n\n updateSelectionPaletteFromStorage();\n\n offsetElement.bind('click.spectrum touchstart.spectrum', function (e) {\n if (!disabled) {\n toggle();\n }\n\n e.stopPropagation();\n\n if (!$(e.target).is('input')) {\n e.preventDefault();\n }\n });\n\n if (boundElement.is(':disabled') || opts.disabled === true) {\n disable();\n }\n\n // Prevent clicks from bubbling up to document. This would cause it to be hidden.\n container.click(stopPropagation);\n\n // Handle user typed input\n textInput.change(setFromTextInput);\n textInput.bind('paste', function () {\n setTimeout(setFromTextInput, 1);\n });\n textInput.keydown(function (e) {\n if (e.keyCode == 13) {\n setFromTextInput();\n }\n });\n\n cancelButton.text(opts.cancelText);\n cancelButton.bind('click.spectrum', function (e) {\n e.stopPropagation();\n e.preventDefault();\n revert();\n hide();\n });\n\n clearButton.attr('title', opts.clearText);\n clearButton.bind('click.spectrum', function (e) {\n e.stopPropagation();\n e.preventDefault();\n isEmpty = true;\n move();\n\n if (flat) {\n //for the flat style, this is a change event\n updateOriginalInput(true);\n }\n });\n\n chooseButton.text(opts.chooseText);\n chooseButton.bind('click.spectrum', function (e) {\n e.stopPropagation();\n e.preventDefault();\n\n if (IE && textInput.is(':focus')) {\n textInput.trigger('change');\n }\n\n if (isValid()) {\n updateOriginalInput(true);\n hide();\n }\n });\n\n toggleButton.text(opts.showPaletteOnly ? opts.togglePaletteMoreText : opts.togglePaletteLessText);\n toggleButton.bind('click.spectrum', function (e) {\n e.stopPropagation();\n e.preventDefault();\n\n opts.showPaletteOnly = !opts.showPaletteOnly;\n\n // To make sure the Picker area is drawn on the right, next to the\n // Palette area (and not below the palette), first move the Palette\n // to the left to make space for the picker, plus 5px extra.\n // The 'applyOptions' function puts the whole container back into place\n // and takes care of the button-text and the sp-palette-only CSS class.\n if (!opts.showPaletteOnly && !flat) {\n container.css('left', '-=' + (pickerContainer.outerWidth(true) + 5));\n }\n applyOptions();\n });\n\n draggable(\n alphaSlider,\n function (dragX, dragY, e) {\n currentAlpha = dragX / alphaWidth;\n isEmpty = false;\n if (e.shiftKey) {\n currentAlpha = Math.round(currentAlpha * 10) / 10;\n }\n\n move();\n },\n dragStart,\n dragStop\n );\n\n draggable(\n slider,\n function (dragX, dragY) {\n currentHue = parseFloat(dragY / slideHeight);\n isEmpty = false;\n if (!opts.showAlpha) {\n currentAlpha = 1;\n }\n move();\n },\n dragStart,\n dragStop\n );\n\n draggable(\n dragger,\n function (dragX, dragY, e) {\n // shift+drag should snap the movement to either the x or y axis.\n if (!e.shiftKey) {\n shiftMovementDirection = null;\n } else if (!shiftMovementDirection) {\n var oldDragX = currentSaturation * dragWidth;\n var oldDragY = dragHeight - currentValue * dragHeight;\n var furtherFromX = Math.abs(dragX - oldDragX) > Math.abs(dragY - oldDragY);\n\n shiftMovementDirection = furtherFromX ? 'x' : 'y';\n }\n\n var setSaturation = !shiftMovementDirection || shiftMovementDirection === 'x';\n var setValue = !shiftMovementDirection || shiftMovementDirection === 'y';\n\n if (setSaturation) {\n currentSaturation = parseFloat(dragX / dragWidth);\n }\n if (setValue) {\n currentValue = parseFloat((dragHeight - dragY) / dragHeight);\n }\n\n isEmpty = false;\n if (!opts.showAlpha) {\n currentAlpha = 1;\n }\n\n move();\n },\n dragStart,\n dragStop\n );\n\n if (!!initialColor) {\n set(initialColor);\n\n // In case color was black - update the preview UI and set the format\n // since the set function will not run (default color is black).\n updateUI();\n currentPreferredFormat = opts.preferredFormat || tinycolor(initialColor).getFormat();\n\n addColorToSelectionPalette(initialColor);\n } else {\n updateUI();\n }\n\n if (flat) {\n show();\n }\n\n function paletteElementClick(e) {\n if (e.data && e.data.ignore) {\n set($(e.target).closest('.sp-thumb-el').data('color'));\n move();\n } else {\n set($(e.target).closest('.sp-thumb-el').data('color'));\n move();\n if (opts.hideAfterPaletteSelect) {\n updateOriginalInput(true);\n hide();\n }\n }\n\n return false;\n }\n\n var paletteEvent = IE ? 'mousedown.spectrum' : 'click.spectrum touchstart.spectrum';\n paletteContainer.delegate('.sp-thumb-el', paletteEvent, paletteElementClick);\n initialColorContainer.delegate('.sp-thumb-el:nth-child(1)', paletteEvent, { ignore: true }, paletteElementClick);\n }\n\n function updateSelectionPaletteFromStorage() {\n if (localStorageKey && window.localStorage) {\n // Migrate old palettes over to new format. May want to remove this eventually.\n try {\n var oldPalette = window.localStorage[localStorageKey].split(',#');\n if (oldPalette.length > 1) {\n delete window.localStorage[localStorageKey];\n $.each(oldPalette, function (i, c) {\n addColorToSelectionPalette(c);\n });\n }\n } catch (e) {}\n\n try {\n selectionPalette = window.localStorage[localStorageKey].split(';');\n } catch (e) {}\n }\n }\n\n function addColorToSelectionPalette(color) {\n if (showSelectionPalette) {\n var rgb = tinycolor(color).toRgbString();\n if (!paletteLookup[rgb] && $.inArray(rgb, selectionPalette) === -1) {\n selectionPalette.push(rgb);\n while (selectionPalette.length > maxSelectionSize) {\n selectionPalette.shift();\n }\n }\n\n if (localStorageKey && window.localStorage) {\n try {\n window.localStorage[localStorageKey] = selectionPalette.join(';');\n } catch (e) {}\n }\n }\n }\n\n function getUniqueSelectionPalette() {\n var unique = [];\n if (opts.showPalette) {\n for (var i = 0; i < selectionPalette.length; i++) {\n var rgb = tinycolor(selectionPalette[i]).toRgbString();\n\n if (!paletteLookup[rgb]) {\n unique.push(selectionPalette[i]);\n }\n }\n }\n\n return unique.reverse().slice(0, opts.maxSelectionSize);\n }\n\n function drawPalette() {\n var currentColor = get();\n\n var html = $.map(paletteArray, function (palette, i) {\n return paletteTemplate(palette, currentColor, 'sp-palette-row sp-palette-row-' + i, opts);\n });\n\n updateSelectionPaletteFromStorage();\n\n if (selectionPalette) {\n html.push(\n paletteTemplate(getUniqueSelectionPalette(), currentColor, 'sp-palette-row sp-palette-row-selection', opts)\n );\n }\n\n paletteContainer.html(html.join(''));\n }\n\n function drawInitial() {\n if (opts.showInitial) {\n var initial = colorOnShow;\n var current = get();\n initialColorContainer.html(paletteTemplate([initial, current], current, 'sp-palette-row-initial', opts));\n }\n }\n\n function dragStart() {\n if (dragHeight <= 0 || dragWidth <= 0 || slideHeight <= 0) {\n reflow();\n }\n isDragging = true;\n container.addClass(draggingClass);\n shiftMovementDirection = null;\n boundElement.trigger('dragstart.spectrum', [get()]);\n }\n\n function dragStop() {\n isDragging = false;\n container.removeClass(draggingClass);\n boundElement.trigger('dragstop.spectrum', [get()]);\n }\n\n function setFromTextInput() {\n var value = textInput.val();\n\n if ((value === null || value === '') && allowEmpty) {\n set(null);\n updateOriginalInput(true);\n } else {\n var tiny = tinycolor(value);\n if (tiny.isValid()) {\n set(tiny);\n updateOriginalInput(true);\n } else {\n textInput.addClass('sp-validation-error');\n }\n }\n }\n\n function toggle() {\n if (visible) {\n hide();\n } else {\n show();\n }\n }\n\n function show() {\n var event = $.Event('beforeShow.spectrum');\n\n if (visible) {\n reflow();\n return;\n }\n\n boundElement.trigger('beforeShow.spectrum', [get()]);\n\n if (callbacks.beforeShow(get()) === false || event.isDefaultPrevented()) {\n return;\n }\n\n hideAll();\n visible = true;\n\n var $doc = $(doc);\n $doc.bind('keydown.spectrum', onkeydown);\n $doc.bind('click.spectrum', clickout);\n $(window).bind('resize.spectrum', resize);\n replacer.addClass('sp-active');\n container.removeClass('sp-hidden');\n\n reflow();\n updateUI();\n\n colorOnShow = get();\n\n drawInitial();\n callbacks.show(colorOnShow);\n boundElement.trigger('show.spectrum', [colorOnShow]);\n }\n\n function onkeydown(e) {\n // Close on ESC\n if (e.keyCode === 27) {\n hide();\n }\n }\n\n function clickout(e) {\n // Return on right click.\n if (e.button == 2) {\n return;\n }\n\n // If a drag event was happening during the mouseup, don't hide\n // on click.\n if (isDragging) {\n return;\n }\n\n if (clickoutFiresChange) {\n updateOriginalInput(true);\n } else {\n revert();\n }\n hide();\n }\n\n function hide() {\n // Return if hiding is unnecessary\n if (!visible || flat) {\n return;\n }\n visible = false;\n\n $(doc).unbind('keydown.spectrum', onkeydown);\n $(doc).unbind('click.spectrum', clickout);\n $(window).unbind('resize.spectrum', resize);\n\n replacer.removeClass('sp-active');\n container.addClass('sp-hidden');\n\n callbacks.hide(get());\n boundElement.trigger('hide.spectrum', [get()]);\n }\n\n function revert() {\n set(colorOnShow, true);\n }\n\n function set(color, ignoreFormatChange) {\n if (tinycolor.equals(color, get())) {\n // Update UI just in case a validation error needs\n // to be cleared.\n updateUI();\n return;\n }\n\n var newColor, newHsv;\n if (!color && allowEmpty) {\n isEmpty = true;\n } else {\n isEmpty = false;\n isDefault = !color; // if no color is available an empty string will be passed. tinycolor will then set it to #000\n newColor = tinycolor(color);\n newHsv = newColor.toHsv();\n\n currentHue = (newHsv.h % 360) / 360;\n currentSaturation = newHsv.s;\n currentValue = newHsv.v;\n currentAlpha = newHsv.a;\n }\n updateUI();\n\n if (newColor && newColor.isValid() && !ignoreFormatChange) {\n currentPreferredFormat = opts.preferredFormat || newColor.getFormat();\n }\n }\n\n function get(opts) {\n opts = opts || {};\n\n if (allowEmpty && isEmpty) {\n return null;\n }\n\n return tinycolor.fromRatio(\n {\n h: currentHue,\n s: currentSaturation,\n v: currentValue,\n a: Math.round(currentAlpha * 100) / 100,\n },\n { format: opts.format || currentPreferredFormat }\n );\n }\n\n function isValid() {\n return !textInput.hasClass('sp-validation-error');\n }\n\n function move() {\n updateUI();\n\n callbacks.move(get());\n boundElement.trigger('move.spectrum', [get()]);\n }\n\n function updateUI() {\n textInput.removeClass('sp-validation-error');\n\n updateHelperLocations();\n\n // Update dragger background color (gradients take care of saturation and value).\n var flatColor = tinycolor.fromRatio({ h: currentHue, s: 1, v: 1 });\n dragger.css('background-color', flatColor.toHexString());\n\n // Get a format that alpha will be included in (hex and names ignore alpha)\n var format = currentPreferredFormat;\n if (currentAlpha < 1 && !(currentAlpha === 0 && format === 'name')) {\n if (format === 'hex' || format === 'hex3' || format === 'hex6' || format === 'name') {\n format = 'rgb';\n }\n }\n\n var realColor = get({ format: format }),\n displayColor = '';\n\n //reset background info for preview element\n previewElement.removeClass('sp-clear-display');\n previewElement.css('background-color', 'transparent');\n\n if (!realColor && allowEmpty) {\n // Update the replaced elements background with icon indicating no color selection\n previewElement.addClass('sp-clear-display');\n } else {\n var realHex = realColor.toHexString(),\n realRgb = realColor.toRgbString();\n\n // Update the replaced elements background color (with actual selected color)\n if (rgbaSupport || realColor.alpha === 1) {\n previewElement.css('background-color', realRgb);\n } else {\n previewElement.css('background-color', 'transparent');\n previewElement.css('filter', realColor.toFilter());\n }\n\n if (opts.showAlpha) {\n var rgb = realColor.toRgb();\n rgb.a = 0;\n var realAlpha = tinycolor(rgb).toRgbString();\n var gradient = 'linear-gradient(left, ' + realAlpha + ', ' + realHex + ')';\n\n if (IE) {\n alphaSliderInner.css('filter', tinycolor(realAlpha).toFilter({ gradientType: 1 }, realHex));\n } else {\n alphaSliderInner.css('background', '-webkit-' + gradient);\n alphaSliderInner.css('background', '-moz-' + gradient);\n alphaSliderInner.css('background', '-ms-' + gradient);\n // Use current syntax gradient on unprefixed property.\n alphaSliderInner.css('background', 'linear-gradient(to right, ' + realAlpha + ', ' + realHex + ')');\n }\n }\n\n displayColor = realColor.toString(format);\n }\n\n // Update the text entry input as it changes happen\n if (opts.showInput) {\n textInput.val(displayColor);\n }\n\n if (opts.showPalette) {\n drawPalette();\n }\n\n drawInitial();\n }\n\n function updateHelperLocations() {\n var s = currentSaturation;\n var v = currentValue;\n\n if (allowEmpty && isEmpty) {\n //if selected color is empty, hide the helpers\n alphaSlideHelper.hide();\n slideHelper.hide();\n dragHelper.hide();\n } else {\n //make sure helpers are visible\n alphaSlideHelper.show();\n slideHelper.show();\n dragHelper.show();\n\n // Where to show the little circle in that displays your current selected color\n var dragX = s * dragWidth;\n var dragY = dragHeight - v * dragHeight;\n dragX = Math.max(-dragHelperHeight, Math.min(dragWidth - dragHelperHeight, dragX - dragHelperHeight));\n dragY = Math.max(-dragHelperHeight, Math.min(dragHeight - dragHelperHeight, dragY - dragHelperHeight));\n dragHelper.css({\n top: dragY + 'px',\n left: dragX + 'px',\n });\n\n var alphaX = currentAlpha * alphaWidth;\n alphaSlideHelper.css({\n left: alphaX - alphaSlideHelperWidth / 2 + 'px',\n });\n\n // Where to show the bar that displays your current selected hue\n var slideY = currentHue * slideHeight;\n slideHelper.css({\n top: slideY - slideHelperHeight + 'px',\n });\n }\n }\n\n function updateOriginalInput(fireCallback) {\n var color = get(),\n displayColor = '',\n hasChanged = isDefault ? true : !tinycolor.equals(color, colorOnShow);\n\n if (color) {\n displayColor = color.toString(currentPreferredFormat);\n // Update the selection palette with the current color\n !visible && addColorToSelectionPalette(color);\n }\n\n if (isInput) {\n boundElement.val(displayColor);\n }\n\n if (fireCallback && hasChanged) {\n callbacks.change(color);\n boundElement.trigger('change', [color]);\n }\n }\n\n function reflow() {\n if (!visible) {\n return; // Calculations would be useless and wouldn't be reliable anyways\n }\n dragWidth = dragger.width();\n dragHeight = dragger.height();\n dragHelperHeight = dragHelper.height();\n slideWidth = slider.width();\n slideHeight = slider.height();\n slideHelperHeight = slideHelper.height();\n alphaWidth = alphaSlider.width();\n alphaSlideHelperWidth = alphaSlideHelper.width();\n\n if (!flat) {\n container.css('position', 'absolute');\n if (opts.offset) {\n container.offset(opts.offset);\n } else {\n container.offset(getOffset(container, offsetElement));\n }\n }\n\n updateHelperLocations();\n\n if (opts.showPalette) {\n drawPalette();\n }\n\n boundElement.trigger('reflow.spectrum');\n }\n\n function destroy() {\n boundElement.show();\n offsetElement.unbind('click.spectrum touchstart.spectrum');\n container.remove();\n replacer.remove();\n spectrums[spect.id] = null;\n }\n\n function option(optionName, optionValue) {\n if (optionName === undefined) {\n return $.extend({}, opts);\n }\n if (optionValue === undefined) {\n return opts[optionName];\n }\n\n opts[optionName] = optionValue;\n\n if (optionName === 'preferredFormat') {\n currentPreferredFormat = opts.preferredFormat;\n }\n applyOptions();\n }\n\n function enable() {\n disabled = false;\n boundElement.attr('disabled', false);\n offsetElement.removeClass('sp-disabled');\n }\n\n function disable() {\n hide();\n disabled = true;\n boundElement.attr('disabled', true);\n offsetElement.addClass('sp-disabled');\n }\n\n function setOffset(coord) {\n opts.offset = coord;\n reflow();\n }\n\n initialize();\n\n var spect = {\n show: show,\n hide: hide,\n toggle: toggle,\n reflow: reflow,\n option: option,\n enable: enable,\n disable: disable,\n offset: setOffset,\n set: function (c) {\n set(c);\n updateOriginalInput();\n },\n get: get,\n destroy: destroy,\n container: container,\n };\n\n spect.id = spectrums.push(spect) - 1;\n\n return spect;\n }\n\n /**\n * checkOffset - get the offset below/above and left/right element depending on screen position\n * Thanks https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.datepicker.js\n */\n function getOffset(picker, input) {\n var extraY = 0;\n var dpWidth = picker.outerWidth();\n var dpHeight = picker.outerHeight();\n var inputHeight = input.outerHeight();\n var doc = picker[0].ownerDocument;\n var docElem = doc.documentElement;\n var cW = docElem.clientWidth;\n var cH = docElem.clientHeight;\n var scL = $(doc).scrollLeft();\n var scT = $(doc).scrollTop();\n var viewWidth = cW + scL;\n var viewHeight = cH + scT;\n var offset = input.offset();\n\n offset.top += inputHeight;\n\n offset.left -= Math.min(\n offset.left,\n offset.left + dpWidth > viewWidth && viewWidth > dpWidth ? Math.abs(offset.left + dpWidth - viewWidth) : 0\n );\n\n offset.top -= Math.min(\n offset.top,\n offset.top + dpHeight > viewHeight && viewHeight > dpHeight ? Math.abs(dpHeight + inputHeight - extraY) : extraY\n );\n\n return offset;\n }\n\n /**\n * noop - do nothing\n */\n function noop() {}\n\n /**\n * stopPropagation - makes the code only doing this a little easier to read in line\n */\n function stopPropagation(e) {\n e.stopPropagation();\n }\n\n /**\n * Create a function bound to a given object\n * Thanks to underscore.js\n */\n function bind(func, obj) {\n var slice = Array.prototype.slice;\n var args = slice.call(arguments, 2);\n return function () {\n return func.apply(obj, args.concat(slice.call(arguments)));\n };\n }\n\n /**\n * Lightweight drag helper. Handles containment within the element, so that\n * when dragging, the x is within [0,element.width] and y is within [0,element.height]\n */\n function draggable(element, onmove, onstart, onstop) {\n onmove = onmove || function () {};\n onstart = onstart || function () {};\n onstop = onstop || function () {};\n var doc = document;\n var dragging = false;\n var offset = {};\n var maxHeight = 0;\n var maxWidth = 0;\n var hasTouch = 'ontouchstart' in window;\n\n var duringDragEvents = {};\n duringDragEvents['selectstart'] = prevent;\n duringDragEvents['dragstart'] = prevent;\n duringDragEvents['touchmove mousemove'] = move;\n duringDragEvents['touchend mouseup'] = stop;\n\n function prevent(e) {\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n if (e.preventDefault) {\n e.preventDefault();\n }\n e.returnValue = false;\n }\n\n function move(e) {\n if (dragging) {\n // Mouseup happened outside of window\n if (IE && doc.documentMode < 9 && !e.button) {\n return stop();\n }\n\n var t0 = e && e.touches && e.touches[0];\n var pageX = (t0 && t0.pageX) || e.pageX;\n var pageY = (t0 && t0.pageY) || e.pageY;\n\n var dragX = Math.max(0, Math.min(pageX - offset.left, maxWidth));\n var dragY = Math.max(0, Math.min(pageY - offset.top, maxHeight));\n\n if (hasTouch) {\n // Stop scrolling in iOS\n prevent(e);\n }\n\n onmove.apply(element, [dragX, dragY, e]);\n }\n }\n\n function start(e) {\n var rightclick = e.which ? e.which == 3 : e.button == 2;\n\n if (!rightclick && !dragging) {\n if (onstart.apply(element, arguments) !== false) {\n dragging = true;\n maxHeight = $(element).height();\n maxWidth = $(element).width();\n offset = $(element).offset();\n\n $(doc).bind(duringDragEvents);\n $(doc.body).addClass('sp-dragging');\n\n move(e);\n\n prevent(e);\n }\n }\n }\n\n function stop() {\n if (dragging) {\n $(doc).unbind(duringDragEvents);\n $(doc.body).removeClass('sp-dragging');\n\n // Wait a tick before notifying observers to allow the click event\n // to fire in Chrome.\n setTimeout(function () {\n onstop.apply(element, arguments);\n }, 0);\n }\n dragging = false;\n }\n\n $(element).bind('touchstart mousedown', start);\n }\n\n function throttle(func, wait, debounce) {\n var timeout;\n return function () {\n var context = this,\n args = arguments;\n var throttler = function () {\n timeout = null;\n func.apply(context, args);\n };\n if (debounce) clearTimeout(timeout);\n if (debounce || !timeout) timeout = setTimeout(throttler, wait);\n };\n }\n\n function inputTypeColorSupport() {\n return $.fn.spectrum.inputTypeColorSupport();\n }\n\n /**\n * Define a jQuery plugin\n */\n var dataID = 'spectrum.id';\n $.fn.spectrum = function (opts, extra) {\n if (typeof opts == 'string') {\n var returnValue = this;\n var args = Array.prototype.slice.call(arguments, 1);\n\n this.each(function () {\n var spect = spectrums[$(this).data(dataID)];\n if (spect) {\n var method = spect[opts];\n if (!method) {\n throw new Error(\"Spectrum: no such method: '\" + opts + \"'\");\n }\n\n if (opts == 'get') {\n returnValue = spect.get();\n } else if (opts == 'container') {\n returnValue = spect.container;\n } else if (opts == 'option') {\n returnValue = spect.option.apply(spect, args);\n } else if (opts == 'destroy') {\n spect.destroy();\n $(this).removeData(dataID);\n } else {\n method.apply(spect, args);\n }\n }\n });\n\n return returnValue;\n }\n\n // Initializing a new instance of spectrum\n return this.spectrum('destroy').each(function () {\n var options = $.extend({}, opts, $(this).data());\n var spect = spectrum(this, options);\n $(this).data(dataID, spect.id);\n });\n };\n\n $.fn.spectrum.load = true;\n $.fn.spectrum.loadOpts = {};\n $.fn.spectrum.draggable = draggable;\n $.fn.spectrum.defaults = defaultOpts;\n $.fn.spectrum.inputTypeColorSupport = function inputTypeColorSupport() {\n if (typeof inputTypeColorSupport._cachedResult === 'undefined') {\n var colorInput = $(\"\")[0]; // if color element is supported, value will default to not null\n inputTypeColorSupport._cachedResult = colorInput.type === 'color' && colorInput.value !== '';\n }\n return inputTypeColorSupport._cachedResult;\n };\n\n $.spectrum = {};\n $.spectrum.localization = {};\n $.spectrum.palettes = {};\n\n $.fn.spectrum.processNativeColorInputs = function () {\n var colorInputs = $('input[type=color]');\n if (colorInputs.length && !inputTypeColorSupport()) {\n colorInputs.spectrum({\n preferredFormat: 'hex6',\n });\n }\n };\n\n // TinyColor v1.1.2\n // https://github.com/bgrins/TinyColor\n // Brian Grinstead, MIT License\n\n //(function() {\n\n var trimLeft = /^[\\s,#]+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n math = Math,\n mathRound = math.round,\n mathMin = math.min,\n mathMax = math.max,\n mathRandom = math.random;\n\n var tinycolor = function (color, opts) {\n color = color ? color : '';\n opts = opts || {};\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n (this._originalInput = color),\n (this._r = rgb.r),\n (this._g = rgb.g),\n (this._b = rgb.b),\n (this._a = rgb.a),\n (this._roundA = mathRound(100 * this._a) / 100),\n (this._format = opts.format || rgb.format);\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) {\n this._r = mathRound(this._r);\n }\n if (this._g < 1) {\n this._g = mathRound(this._g);\n }\n if (this._b < 1) {\n this._b = mathRound(this._b);\n }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n };\n\n tinycolor.prototype = {\n isDark: function () {\n return this.getBrightness() < 128;\n },\n isLight: function () {\n return !this.isDark();\n },\n isValid: function () {\n return this._ok;\n },\n getOriginalInput: function () {\n return this._originalInput;\n },\n getFormat: function () {\n return this._format;\n },\n getAlpha: function () {\n return this._a;\n },\n getBrightness: function () {\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n setAlpha: function (value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100 * this._a) / 100;\n return this;\n },\n toHsv: function () {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function () {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360),\n s = mathRound(hsv.s * 100),\n v = mathRound(hsv.v * 100);\n return this._a == 1\n ? 'hsv(' + h + ', ' + s + '%, ' + v + '%)'\n : 'hsva(' + h + ', ' + s + '%, ' + v + '%, ' + this._roundA + ')';\n },\n toHsl: function () {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function () {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360),\n s = mathRound(hsl.s * 100),\n l = mathRound(hsl.l * 100);\n return this._a == 1\n ? 'hsl(' + h + ', ' + s + '%, ' + l + '%)'\n : 'hsla(' + h + ', ' + s + '%, ' + l + '%, ' + this._roundA + ')';\n },\n toHex: function (allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function (allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function () {\n return rgbaToHex(this._r, this._g, this._b, this._a);\n },\n toHex8String: function () {\n return '#' + this.toHex8();\n },\n toRgb: function () {\n return {\n r: mathRound(this._r),\n g: mathRound(this._g),\n b: mathRound(this._b),\n a: this._a,\n };\n },\n toRgbString: function () {\n return this._a == 1\n ? 'rgb(' + mathRound(this._r) + ', ' + mathRound(this._g) + ', ' + mathRound(this._b) + ')'\n : 'rgba(' +\n mathRound(this._r) +\n ', ' +\n mathRound(this._g) +\n ', ' +\n mathRound(this._b) +\n ', ' +\n this._roundA +\n ')';\n },\n toPercentageRgb: function () {\n return {\n r: mathRound(bound01(this._r, 255) * 100) + '%',\n g: mathRound(bound01(this._g, 255) * 100) + '%',\n b: mathRound(bound01(this._b, 255) * 100) + '%',\n a: this._a,\n };\n },\n toPercentageRgbString: function () {\n return this._a == 1\n ? 'rgb(' +\n mathRound(bound01(this._r, 255) * 100) +\n '%, ' +\n mathRound(bound01(this._g, 255) * 100) +\n '%, ' +\n mathRound(bound01(this._b, 255) * 100) +\n '%)'\n : 'rgba(' +\n mathRound(bound01(this._r, 255) * 100) +\n '%, ' +\n mathRound(bound01(this._g, 255) * 100) +\n '%, ' +\n mathRound(bound01(this._b, 255) * 100) +\n '%, ' +\n this._roundA +\n ')';\n },\n toName: function () {\n if (this._a === 0) {\n return 'transparent';\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function (secondColor) {\n var hex8String = '#' + rgbaToHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? 'GradientType = 1, ' : '';\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = s.toHex8String();\n }\n\n return (\n 'progid:DXImageTransform.Microsoft.gradient(' +\n gradientType +\n 'startColorstr=' +\n hex8String +\n ',endColorstr=' +\n secondHex8String +\n ')'\n );\n },\n toString: function (format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat =\n !formatSet && hasAlpha && (format === 'hex' || format === 'hex6' || format === 'hex3' || format === 'name');\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === 'name' && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n if (format === 'prgb') {\n formattedString = this.toPercentageRgbString();\n }\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n if (format === 'name') {\n formattedString = this.toName();\n }\n if (format === 'hsl') {\n formattedString = this.toHslString();\n }\n if (format === 'hsv') {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n\n _applyModification: function (fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function () {\n return this._applyModification(lighten, arguments);\n },\n brighten: function () {\n return this._applyModification(brighten, arguments);\n },\n darken: function () {\n return this._applyModification(darken, arguments);\n },\n desaturate: function () {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function () {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function () {\n return this._applyModification(greyscale, arguments);\n },\n spin: function () {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function (fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function () {\n return this._applyCombination(analogous, arguments);\n },\n complement: function () {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function () {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function () {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function () {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function () {\n return this._applyCombination(tetrad, arguments);\n },\n };\n\n // If input is an object, force 1 into \"1.0\" to handle ratios properly\n // String input requires \"1.0\" as input, so 1 will be treated as 1\n tinycolor.fromRatio = function (color, opts) {\n if (typeof color == 'object') {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === 'a') {\n newColor[i] = color[i];\n } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n };\n\n // Given a string or object, convert that input to RGB\n // Possible string inputs:\n //\n // \"red\"\n // \"#f00\" or \"f00\"\n // \"#ff0000\" or \"ff0000\"\n // \"#ff000000\" or \"ff000000\"\n // \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n // \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n // \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n // \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n // \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n // \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n // \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n //\n function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var ok = false;\n var format = false;\n\n if (typeof color == 'string') {\n color = stringInputToObject(color);\n }\n\n if (typeof color == 'object') {\n if (color.hasOwnProperty('r') && color.hasOwnProperty('g') && color.hasOwnProperty('b')) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n } else if (color.hasOwnProperty('h') && color.hasOwnProperty('s') && color.hasOwnProperty('v')) {\n color.s = convertToPercentage(color.s);\n color.v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, color.s, color.v);\n ok = true;\n format = 'hsv';\n } else if (color.hasOwnProperty('h') && color.hasOwnProperty('s') && color.hasOwnProperty('l')) {\n color.s = convertToPercentage(color.s);\n color.l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, color.s, color.l);\n ok = true;\n format = 'hsl';\n }\n\n if (color.hasOwnProperty('a')) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a,\n };\n }\n\n // Conversion Functions\n // --------------------\n\n // `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n // \n\n // `rgbToRgb`\n // Handle bounds / percentage checking to conform to CSS color spec\n // \n // *Assumes:* r, g, b in [0, 255] or [0, 1]\n // *Returns:* { r, g, b } in [0, 255]\n function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n }\n\n // `rgbToHsl`\n // Converts an RGB color value to HSL.\n // *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n // *Returns:* { h, s, l } in [0,1]\n function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b),\n min = mathMin(r, g, b);\n var h,\n s,\n l = (max + min) / 2;\n\n if (max == min) {\n h = s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n }\n\n // `hslToRgb`\n // Converts an HSL color value to RGB.\n // *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n // *Returns:* { r, g, b } in the set [0, 255]\n function hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n }\n\n // `rgbToHsv`\n // Converts an RGB color value to HSV\n // *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n // *Returns:* { h, s, v } in [0,1]\n function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b),\n min = mathMin(r, g, b);\n var h,\n s,\n v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if (max == min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n }\n\n // `hsvToRgb`\n // Converts an HSV color value to RGB.\n // *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n // *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n }\n\n // `rgbToHex`\n // Converts an RGB color to hex\n // Assumes r, g, and b are contained in the set [0, 255]\n // Returns a 3 or 6 character hex\n function rgbToHex(r, g, b, allow3Char) {\n var hex = [pad2(mathRound(r).toString(16)), pad2(mathRound(g).toString(16)), pad2(mathRound(b).toString(16))];\n\n // Return a 3 character hex if possible\n if (\n allow3Char &&\n hex[0].charAt(0) == hex[0].charAt(1) &&\n hex[1].charAt(0) == hex[1].charAt(1) &&\n hex[2].charAt(0) == hex[2].charAt(1)\n ) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join('');\n }\n // `rgbaToHex`\n // Converts an RGBA color plus alpha transparency to hex\n // Assumes r, g, b and a are contained in the set [0, 255]\n // Returns an 8 character hex\n function rgbaToHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n ];\n\n return hex.join('');\n }\n\n // `equals`\n // Can be called with any tinycolor input\n tinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) {\n return false;\n }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n };\n tinycolor.random = function () {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom(),\n });\n };\n\n // Modification Functions\n // ----------------------\n // Thanks to less.js for some of the basics here\n // \n\n function desaturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n }\n\n function saturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n }\n\n function greyscale(color) {\n return tinycolor(color).desaturate(100);\n }\n\n function lighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n }\n\n function brighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * -(amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * -(amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * -(amount / 100))));\n return tinycolor(rgb);\n }\n\n function darken(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n }\n\n // Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n // Values outside of this range will be wrapped into this range.\n function spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (mathRound(hsl.h) + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n }\n\n // Combination Functions\n // ---------------------\n // Thanks to jQuery xColor for some of the ideas behind these\n // \n\n function complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n }\n\n function triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l }),\n ];\n }\n\n function tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l }),\n ];\n }\n\n function splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n }\n\n function analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n }\n\n function monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h,\n s = hsv.s,\n v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n\n return ret;\n }\n\n // Utility Functions\n // ---------------------\n\n tinycolor.mix = function (color1, color2, amount) {\n amount = amount === 0 ? 0 : amount || 50;\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n var w = p * 2 - 1;\n var a = rgb2.a - rgb1.a;\n\n var w1;\n\n if (w * a == -1) {\n w1 = w;\n } else {\n w1 = (w + a) / (1 + w * a);\n }\n\n w1 = (w1 + 1) / 2;\n\n var w2 = 1 - w1;\n\n var rgba = {\n r: rgb2.r * w1 + rgb1.r * w2,\n g: rgb2.g * w1 + rgb1.g * w2,\n b: rgb2.b * w1 + rgb1.b * w2,\n a: rgb2.a * p + rgb1.a * (1 - p),\n };\n\n return tinycolor(rgba);\n };\n\n // Readability Functions\n // ---------------------\n // \n\n // `readability`\n // Analyze the 2 colors and returns an object with the following properties:\n // `brightness`: difference in brightness between the two colors\n // `color`: difference in color/hue between the two colors\n tinycolor.readability = function (color1, color2) {\n var c1 = tinycolor(color1);\n var c2 = tinycolor(color2);\n var rgb1 = c1.toRgb();\n var rgb2 = c2.toRgb();\n var brightnessA = c1.getBrightness();\n var brightnessB = c2.getBrightness();\n var colorDiff =\n Math.max(rgb1.r, rgb2.r) -\n Math.min(rgb1.r, rgb2.r) +\n Math.max(rgb1.g, rgb2.g) -\n Math.min(rgb1.g, rgb2.g) +\n Math.max(rgb1.b, rgb2.b) -\n Math.min(rgb1.b, rgb2.b);\n\n return {\n brightness: Math.abs(brightnessA - brightnessB),\n color: colorDiff,\n };\n };\n\n // `readable`\n // http://www.w3.org/TR/AERT#color-contrast\n // Ensure that foreground and background color combinations provide sufficient contrast.\n // *Example*\n // tinycolor.isReadable(\"#000\", \"#111\") => false\n tinycolor.isReadable = function (color1, color2) {\n var readability = tinycolor.readability(color1, color2);\n return readability.brightness > 125 && readability.color > 500;\n };\n\n // `mostReadable`\n // Given a base color and a list of possible foreground or background\n // colors for that base, returns the most readable color.\n // *Example*\n // tinycolor.mostReadable(\"#123\", [\"#fff\", \"#000\"]) => \"#000\"\n tinycolor.mostReadable = function (baseColor, colorList) {\n var bestColor = null;\n var bestScore = 0;\n var bestIsReadable = false;\n for (var i = 0; i < colorList.length; i++) {\n // We normalize both around the \"acceptable\" breaking point,\n // but rank brightness constrast higher than hue.\n\n var readability = tinycolor.readability(baseColor, colorList[i]);\n var readable = readability.brightness > 125 && readability.color > 500;\n var score = 3 * (readability.brightness / 125) + readability.color / 500;\n\n if (\n (readable && !bestIsReadable) ||\n (readable && bestIsReadable && score > bestScore) ||\n (!readable && !bestIsReadable && score > bestScore)\n ) {\n bestIsReadable = readable;\n bestScore = score;\n bestColor = tinycolor(colorList[i]);\n }\n }\n return bestColor;\n };\n\n // Big List of Colors\n // ------------------\n // \n var names = (tinycolor.names = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '0ff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000',\n blanchedalmond: 'ffebcd',\n blue: '00f',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n burntsienna: 'ea7e5d',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '0ff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkgrey: 'a9a9a9',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkslategrey: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dimgrey: '696969',\n dodgerblue: '1e90ff',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'f0f',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n grey: '808080',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred: 'cd5c5c',\n indigo: '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgray: 'd3d3d3',\n lightgreen: '90ee90',\n lightgrey: 'd3d3d3',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslategray: '789',\n lightslategrey: '789',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '0f0',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'f0f',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370db',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'db7093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '663399',\n red: 'f00',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n slategrey: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n wheat: 'f5deb3',\n white: 'fff',\n whitesmoke: 'f5f5f5',\n yellow: 'ff0',\n yellowgreen: '9acd32',\n });\n\n // Make it easy to access colors via `hexNames[hex]`\n var hexNames = (tinycolor.hexNames = flip(names));\n\n // Utilities\n // ---------\n\n // `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\n function flip(o) {\n var flipped = {};\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n }\n\n // Return a valid alpha value [0,1] with all invalid values being set to 1\n function boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n }\n\n // Take input from [0, n] and return it as [0, 1]\n function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if (math.abs(n - max) < 0.000001) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n }\n\n // Force a number between 0 and 1\n function clamp01(val) {\n return mathMin(1, mathMax(0, val));\n }\n\n // Parse a base-16 hex value into a base-10 integer\n function parseIntFromHex(val) {\n return parseInt(val, 16);\n }\n\n // Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n // \n function isOnePointZero(n) {\n return typeof n == 'string' && n.indexOf('.') != -1 && parseFloat(n) === 1;\n }\n\n // Check to see if string passed in is a percentage\n function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') != -1;\n }\n\n // Force a hex value to have 2 characters\n function pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n }\n\n // Replace a decimal with it's percentage value\n function convertToPercentage(n) {\n if (n <= 1) {\n n = n * 100 + '%';\n }\n\n return n;\n }\n\n // Converts a decimal to a hex value\n function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n }\n // Converts a hex value to a decimal\n function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n }\n\n var matchers = (function () {\n // \n var CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n\n // \n var CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = '(?:' + CSS_NUMBER + ')|(?:' + CSS_INTEGER + ')';\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = '[\\\\s|\\\\(]+(' + CSS_UNIT + ')[,|\\\\s]+(' + CSS_UNIT + ')[,|\\\\s]+(' + CSS_UNIT + ')\\\\s*\\\\)?';\n var PERMISSIVE_MATCH4 =\n '[\\\\s|\\\\(]+(' +\n CSS_UNIT +\n ')[,|\\\\s]+(' +\n CSS_UNIT +\n ')[,|\\\\s]+(' +\n CSS_UNIT +\n ')[,|\\\\s]+(' +\n CSS_UNIT +\n ')\\\\s*\\\\)?';\n\n return {\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex8: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n };\n })();\n\n // `stringInputToObject`\n // Permissive string parsing. Take in a number of formats, and output an object\n // based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n function stringInputToObject(color) {\n color = color.replace(trimLeft, '').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n a: convertHexToDecimal(match[1]),\n r: parseIntFromHex(match[2]),\n g: parseIntFromHex(match[3]),\n b: parseIntFromHex(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n\n return false;\n }\n\n window.tinycolor = tinycolor;\n //})();\n\n $(function () {\n if ($.fn.spectrum.load) {\n $.fn.spectrum.processNativeColorInputs();\n }\n });\n}\n","import Backbone from 'backbone';\nimport { bindAll, isUndefined, indexOf } from 'underscore';\nimport { on, off } from '../../utils/mixins';\nimport Input from './Input';\n\nconst $ = Backbone.$;\n\nexport default class InputNumber extends Input {\n template() {\n const ppfx = this.ppfx;\n return `\n \n \n
\n
\n
\n
\n `;\n }\n\n inputClass() {\n const ppfx = this.ppfx;\n return this.opts.contClass || `${ppfx}field ${ppfx}field-integer`;\n }\n\n constructor(opts = {}) {\n super(opts);\n bindAll(this, 'moveIncrement', 'upIncrement');\n this.doc = document;\n this.listenTo(this.model, 'change:unit', this.handleModelChange);\n }\n\n /**\n * Set value to the model\n * @param {string} value\n * @param {Object} opts\n */\n setValue(value, opts) {\n var opt = opts || {};\n var valid = this.validateInputValue(value, { deepCheck: 1 });\n var validObj = { value: valid.value };\n\n // If found some unit value\n if (valid.unit || valid.force) {\n validObj.unit = valid.unit;\n }\n\n this.model.set(validObj, opt);\n\n // Generally I get silent when I need to reflect data to view without\n // reupdating the target\n if (opt.silent) {\n this.handleModelChange();\n }\n }\n\n /**\n * Handled when the view is changed\n */\n handleChange(e) {\n e.stopPropagation();\n this.setValue(this.getInputEl().value);\n this.elementUpdated();\n }\n\n /**\n * Handled when the view is changed\n */\n handleUnitChange(e) {\n e.stopPropagation();\n var value = this.getUnitEl().value;\n this.model.set('unit', value);\n this.elementUpdated();\n }\n\n /**\n * Handled when user uses keyboard\n */\n handleKeyDown(e) {\n if (e.key === 'ArrowUp') {\n e.preventDefault();\n this.upArrowClick();\n }\n\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n this.downArrowClick();\n }\n }\n\n /**\n * Fired when the element of the property is updated\n */\n elementUpdated() {\n this.model.trigger('el:change');\n }\n\n /**\n * Updates the view when the model is changed\n * */\n handleModelChange() {\n const model = this.model;\n this.getInputEl().value = model.get('value');\n const unitEl = this.getUnitEl();\n unitEl && (unitEl.value = model.get('unit') || '');\n }\n\n /**\n * Get the unit element\n * @return {HTMLElement}\n */\n getUnitEl() {\n if (!this.unitEl) {\n const model = this.model;\n const units = model.get('units') || [];\n\n if (units.length) {\n const options = [''];\n\n units.forEach(unit => {\n const selected = unit == model.get('unit') ? 'selected' : '';\n options.push(``);\n });\n\n const temp = document.createElement('div');\n temp.innerHTML = ``;\n this.unitEl = temp.firstChild;\n }\n }\n\n return this.unitEl;\n }\n\n /**\n * Invoked when the up arrow is clicked\n * */\n upArrowClick() {\n const { model } = this;\n const step = model.get('step');\n let value = parseFloat(model.get('value'));\n this.setValue(this.normalizeValue(value + step));\n this.elementUpdated();\n }\n\n /**\n * Invoked when the down arrow is clicked\n * */\n downArrowClick() {\n const { model } = this;\n const step = model.get('step');\n const value = parseFloat(model.get('value'));\n this.setValue(this.normalizeValue(value - step));\n this.elementUpdated();\n }\n\n /**\n * Change easily integer input value with click&drag method\n * @param Event\n *\n * @return void\n * */\n downIncrement(e) {\n e.preventDefault();\n this.moved = 0;\n var value = this.model.get('value') || 0;\n value = this.normalizeValue(value);\n this.current = { y: e.pageY, val: value };\n on(this.doc, 'mousemove', this.moveIncrement);\n on(this.doc, 'mouseup', this.upIncrement);\n }\n\n /** While the increment is clicked, moving the mouse will update input value\n * @param Object\n *\n * @return bool\n * */\n moveIncrement(ev) {\n this.moved = 1;\n const model = this.model;\n const step = model.get('step');\n const data = this.current;\n var pos = this.normalizeValue(data.val + (data.y - ev.pageY) * step);\n const { value, unit } = this.validateInputValue(pos);\n this.prValue = value;\n model.set({ value, unit }, { avoidStore: 1 });\n return false;\n }\n\n /**\n * Stop moveIncrement method\n * */\n upIncrement() {\n const model = this.model;\n const step = model.get('step');\n off(this.doc, 'mouseup', this.upIncrement);\n off(this.doc, 'mousemove', this.moveIncrement);\n\n if (this.prValue && this.moved) {\n var value = this.prValue - step;\n model.set('value', value, { avoidStore: 1 }).set('value', value + step);\n this.elementUpdated();\n }\n }\n\n normalizeValue(value, defValue = 0) {\n const model = this.model;\n const step = model.get('step');\n let stepDecimals = 0;\n\n if (isNaN(value)) {\n return defValue;\n }\n\n value = parseFloat(value);\n\n if (Math.floor(value) !== value) {\n const side = step.toString().split('.')[1];\n stepDecimals = side ? side.length : 0;\n }\n\n return stepDecimals ? parseFloat(value.toFixed(stepDecimals)) : value;\n }\n\n /**\n * Validate input value\n * @param {String} value Raw value\n * @param {Object} opts Options\n * @return {Object} Validated string\n */\n validateInputValue(value, opts = {}) {\n var force = 0;\n var opt = opts || {};\n var model = this.model;\n const defValue = ''; //model.get('defaults');\n var val = !isUndefined(value) ? value : defValue;\n var units = opts.units || model.get('units') || [];\n var unit = model.get('unit') || (units.length && units[0]) || '';\n var max = !isUndefined(opts.max) ? opts.max : model.get('max');\n var min = !isUndefined(opts.min) ? opts.min : model.get('min');\n var limitlessMax = !!model.get('limitlessMax');\n var limitlessMin = !!model.get('limitlessMin');\n\n if (opt.deepCheck) {\n var fixed = model.get('fixedValues') || [];\n\n if (val === '') unit = '';\n\n if (val) {\n // If the value is one of the fixed values I leave it as it is\n var regFixed = new RegExp('^' + fixed.join('|'), 'g');\n if (fixed.length && regFixed.test(val)) {\n val = val.match(regFixed)[0];\n unit = '';\n force = 1;\n } else {\n var valCopy = val + '';\n val += ''; // Make it suitable for replace\n val = parseFloat(val.replace(',', '.'));\n val = !isNaN(val) ? val : defValue;\n var uN = valCopy.replace(val, '');\n // Check if exists as unit\n if (indexOf(units, uN) >= 0) unit = uN;\n }\n }\n }\n\n if (!limitlessMax && !isUndefined(max) && max !== '') val = val > max ? max : val;\n if (!limitlessMin && !isUndefined(min) && min !== '') val = val < min ? min : val;\n\n return {\n force,\n value: val,\n unit,\n };\n }\n\n render() {\n Input.prototype.render.call(this);\n this.unitEl = null;\n const unit = this.getUnitEl();\n unit && this.$el.find(`.${this.ppfx}field-units`).get(0).appendChild(unit);\n return this;\n }\n}\n\nInputNumber.prototype.events = {\n 'change input': 'handleChange',\n 'change select': 'handleUnitChange',\n 'click [data-arrow-up]': 'upArrowClick',\n 'click [data-arrow-down]': 'downArrowClick',\n 'mousedown [data-arrows]': 'downIncrement',\n keydown: 'handleKeyDown',\n};\n","import { includes } from 'underscore';\nimport Backbone from 'backbone';\n\nexport default class DomainViews extends Backbone.View {\n // Defines the View per type\n itemsView = '';\n\n itemType = 'type';\n\n reuseView = false;\n\n constructor(opts = {}, config, autoAdd = false) {\n super(opts);\n this.config = config || opts.config || {};\n autoAdd && this.listenTo(this.collection, 'add', this.addTo);\n this.items = [];\n }\n\n /**\n * Add new model to the collection\n * @param {Model} model\n * @private\n * */\n addTo(model) {\n this.add(model);\n }\n\n itemViewNotFound(type) {\n const { config, ns } = this;\n const { em } = config;\n const warn = `${ns ? `[${ns}]: ` : ''}'${type}' type not found`;\n em && em.logWarning(warn);\n }\n\n /**\n * Render new model inside the view\n * @param {Model} model\n * @param {Object} fragment Fragment collection\n * @private\n * */\n add(model, fragment) {\n const { config, reuseView, items, itemsView = {} } = this;\n const inputTypes = [\n 'button',\n 'checkbox',\n 'color',\n 'date',\n 'datetime-local',\n 'email',\n 'file',\n 'hidden',\n 'image',\n 'month',\n 'number',\n 'password',\n 'radio',\n 'range',\n 'reset',\n 'search',\n 'submit',\n 'tel',\n 'text',\n 'time',\n 'url',\n 'week',\n ];\n var frag = fragment || null;\n var itemView = this.itemView;\n var typeField = model.get(this.itemType);\n let view;\n\n if (itemsView[typeField]) {\n itemView = itemsView[typeField];\n } else if (typeField && !itemsView[typeField] && !includes(inputTypes, typeField)) {\n this.itemViewNotFound(typeField);\n }\n\n if (model.view && reuseView) {\n view = model.view;\n } else {\n view = new itemView({ model, config }, config);\n }\n\n items && items.push(view);\n const rendered = view.render().el;\n\n if (frag) frag.appendChild(rendered);\n else this.$el.append(rendered);\n }\n\n render() {\n var frag = document.createDocumentFragment();\n this.clearItems();\n this.$el.empty();\n\n if (this.collection.length)\n this.collection.each(function (model) {\n this.add(model, frag);\n }, this);\n\n this.$el.append(frag);\n this.onRender();\n return this;\n }\n\n onRender() {}\n\n onRemoveBefore() {}\n onRemove() {}\n\n remove(opts = {}) {\n const { items } = this;\n this.onRemoveBefore(items, opts);\n this.clearItems();\n Backbone.View.prototype.remove.apply(this, arguments);\n this.onRemove(items, opts);\n }\n\n clearItems() {\n const items = this.items || [];\n // TODO Traits do not update the target anymore\n // items.forEach(item => item.remove());\n // this.items = [];\n }\n}\n\n// Default view\nDomainViews.prototype.itemView = '';\n","const traitInputAttr = { placeholder: 'eg. Text here' };\n\nexport default {\n assetManager: {\n addButton: 'Add image',\n inputPlh: 'http://path/to/the/image.jpg',\n modalTitle: 'Select Image',\n uploadTitle: 'Drop files here or click to upload',\n },\n // Here just as a reference, GrapesJS core doesn't contain any block,\n // so this should be omitted from other local files\n blockManager: {\n labels: {\n // 'block-id': 'Block Label',\n },\n categories: {\n // 'category-id': 'Category Label',\n },\n },\n domComponents: {\n names: {\n '': 'Box',\n wrapper: 'Body',\n text: 'Text',\n comment: 'Comment',\n image: 'Image',\n video: 'Video',\n label: 'Label',\n link: 'Link',\n map: 'Map',\n tfoot: 'Table foot',\n tbody: 'Table body',\n thead: 'Table head',\n table: 'Table',\n row: 'Table row',\n cell: 'Table cell',\n },\n },\n deviceManager: {\n device: 'Device',\n devices: {\n desktop: 'Desktop',\n tablet: 'Tablet',\n mobileLandscape: 'Mobile Landscape',\n mobilePortrait: 'Mobile Portrait',\n },\n },\n panels: {\n buttons: {\n titles: {\n preview: 'Preview',\n fullscreen: 'Fullscreen',\n 'sw-visibility': 'View components',\n 'export-template': 'View code',\n 'open-sm': 'Open Style Manager',\n 'open-tm': 'Settings',\n 'open-layers': 'Open Layer Manager',\n 'open-blocks': 'Open Blocks',\n },\n },\n },\n selectorManager: {\n label: 'Classes',\n selected: 'Selected',\n emptyState: '- State -',\n states: {\n hover: 'Hover',\n active: 'Click',\n 'nth-of-type(2n)': 'Even/Odd',\n },\n },\n styleManager: {\n empty: 'Select an element before using Style Manager',\n layer: 'Layer',\n fileButton: 'Images',\n sectors: {\n general: 'General',\n layout: 'Layout',\n typography: 'Typography',\n decorations: 'Decorations',\n extra: 'Extra',\n flex: 'Flex',\n dimension: 'Dimension',\n },\n // Default names for sub properties in Composite and Stack types.\n // Other labels are generated directly from their property names (eg. 'font-size' will be 'Font size').\n properties: {\n 'text-shadow-h': 'X',\n 'text-shadow-v': 'Y',\n 'text-shadow-blur': 'Blur',\n 'text-shadow-color': 'Color',\n 'box-shadow-h': 'X',\n 'box-shadow-v': 'Y',\n 'box-shadow-blur': 'Blur',\n 'box-shadow-spread': 'Spread',\n 'box-shadow-color': 'Color',\n 'box-shadow-type': 'Type',\n 'margin-top-sub': 'Top',\n 'margin-right-sub': 'Right',\n 'margin-bottom-sub': 'Bottom',\n 'margin-left-sub': 'Left',\n 'padding-top-sub': 'Top',\n 'padding-right-sub': 'Right',\n 'padding-bottom-sub': 'Bottom',\n 'padding-left-sub': 'Left',\n 'border-width-sub': 'Width',\n 'border-style-sub': 'Style',\n 'border-color-sub': 'Color',\n 'border-top-left-radius-sub': 'Top Left',\n 'border-top-right-radius-sub': 'Top Right',\n 'border-bottom-right-radius-sub': 'Bottom Right',\n 'border-bottom-left-radius-sub': 'Bottom Left',\n 'transform-rotate-x': 'Rotate X',\n 'transform-rotate-y': 'Rotate Y',\n 'transform-rotate-z': 'Rotate Z',\n 'transform-scale-x': 'Scale X',\n 'transform-scale-y': 'Scale Y',\n 'transform-scale-z': 'Scale Z',\n 'transition-property-sub': 'Property',\n 'transition-duration-sub': 'Duration',\n 'transition-timing-function-sub': 'Timing',\n 'background-image-sub': 'Image',\n 'background-repeat-sub': 'Repeat',\n 'background-position-sub': 'Position',\n 'background-attachment-sub': 'Attachment',\n 'background-size-sub': 'Size',\n },\n // Translate options in style properties\n // options: {\n // float: { // Id of the property\n // ...\n // left: 'Left', // {option id}: {Option label}\n // }\n // }\n },\n traitManager: {\n empty: 'Select an element before using Trait Manager',\n label: 'Component settings',\n traits: {\n // The core library generates the name by their `name` property\n labels: {\n // id: 'Id',\n // alt: 'Alt',\n // title: 'Title',\n // href: 'Href',\n },\n // In a simple trait, like text input, these are used on input attributes\n attributes: {\n id: traitInputAttr,\n alt: traitInputAttr,\n title: traitInputAttr,\n href: { placeholder: 'eg. https://google.com' },\n },\n // In a trait like select, these are used to translate option names\n options: {\n target: {\n false: 'This window',\n _blank: 'New window',\n },\n },\n },\n },\n storageManager: {\n recover: 'Do you want to recover unsaved changes?',\n },\n};\n","import en from './locale/en';\n\nexport default {\n // Locale value\n locale: 'en',\n\n // Fallback locale\n localeFallback: 'en',\n\n // Detect locale by checking browser language\n detectLocale: true,\n\n // Show warnings when some of the i18n resources are missing\n debug: false,\n\n // Messages to translate\n messages: {\n en,\n },\n\n // Additional messages. This allows extending the default `messages` set directly from the configuration.\n messagesAdd: null,\n};\n","/**\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/i18n/config.js)\n * ```js\n * const editor = grapesjs.init({\n * i18n: {\n * locale: 'en',\n * localeFallback: 'en',\n * messages: {\n * it: { hello: 'Ciao', ... },\n * ...\n * }\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\n *\n * ```js\n * const i18n = editor.I18n;\n * ```\n *\n * ### Events\n * * `i18n:add` - New set of messages is added\n * * `i18n:update` - The set of messages is updated\n * * `i18n:locale` - Locale changed\n *\n * @module I18n\n */\nimport { isUndefined, isString } from 'underscore';\nimport { hasWin } from '../utils/mixins';\nimport config from './config';\n\nconst isObj = el => !Array.isArray(el) && el !== null && typeof el === 'object';\n\nconst deepAssign = (...args) => {\n const target = { ...args[0] };\n\n for (let i = 1; i < args.length; i++) {\n const source = { ...args[i] };\n\n for (let key in source) {\n const targValue = target[key];\n const srcValue = source[key];\n\n if (isObj(targValue) && isObj(srcValue)) {\n target[key] = deepAssign(targValue, srcValue);\n } else {\n target[key] = srcValue;\n }\n }\n }\n\n return target;\n};\n\nexport default () => {\n return {\n name: 'I18n',\n\n config,\n\n /**\n * Initialize module\n * @param {Object} config Configurations\n * @private\n */\n init(opts = {}) {\n this.config = {\n ...config,\n ...opts,\n messages: {\n ...config.messages,\n ...(opts.messages || {}),\n },\n };\n const add = this.config.messagesAdd;\n add && this.addMessages(add);\n\n if (this.config.detectLocale) {\n this.config.locale = this._localLang();\n }\n\n this.em = opts.em;\n return this;\n },\n\n /**\n * Get module configurations\n * @returns {Object} Configuration object\n */\n getConfig() {\n return this.config;\n },\n\n /**\n * Update current locale\n * @param {String} locale Locale value\n * @returns {this}\n * @example\n * i18n.setLocale('it');\n */\n setLocale(locale) {\n const { em, config } = this;\n const evObj = { value: locale, valuePrev: config.locale };\n em && em.trigger('i18n:locale', evObj);\n config.locale = locale;\n return this;\n },\n\n /**\n * Get current locale\n * @returns {String} Current locale value\n */\n getLocale() {\n return this.config.locale;\n },\n\n /**\n * Get all messages\n * @param {String} [lang] Specify the language of messages to return\n * @param {Object} [opts] Options\n * @param {Boolean} [opts.debug] Show warnings in case of missing language\n * @returns {Object}\n * @example\n * i18n.getMessages();\n * // -> { en: { hello: '...' }, ... }\n * i18n.getMessages('en');\n * // -> { hello: '...' }\n */\n getMessages(lang, opts = {}) {\n const { messages } = this.config;\n lang && !messages[lang] && this._debug(`'${lang}' i18n lang not found`, opts);\n return lang ? messages[lang] : messages;\n },\n\n /**\n * Set new set of messages\n * @param {Object} msg Set of messages\n * @returns {this}\n * @example\n * i18n.getMessages();\n * // -> { en: { msg1: 'Msg 1', msg2: 'Msg 2', } }\n * i18n.setMessages({ en: { msg2: 'Msg 2 up', msg3: 'Msg 3', } });\n * // Set replaced\n * i18n.getMessages();\n * // -> { en: { msg2: 'Msg 2 up', msg3: 'Msg 3', } }\n */\n setMessages(msg) {\n const { em, config } = this;\n config.messages = msg;\n em && em.trigger('i18n:update', msg);\n return this;\n },\n\n /**\n * Update messages\n * @param {Object} msg Set of messages to add\n * @returns {this}\n * @example\n * i18n.getMessages();\n * // -> { en: { msg1: 'Msg 1', msg2: 'Msg 2', } }\n * i18n.addMessages({ en: { msg2: 'Msg 2 up', msg3: 'Msg 3', } });\n * // Set updated\n * i18n.getMessages();\n * // -> { en: { msg1: 'Msg 1', msg2: 'Msg 2 up', msg3: 'Msg 3', } }\n */\n addMessages(msg) {\n const { em } = this;\n const { messages } = this.config;\n em && em.trigger('i18n:add', msg);\n this.setMessages(deepAssign(messages, msg));\n\n return this;\n },\n\n /**\n * Translate the locale message\n * @param {String} key Label to translate\n * @param {Object} [opts] Options for the translation\n * @param {Object} [opts.params] Params for the translation\n * @param {Boolean} [opts.debug] Show warnings in case of missing resources\n * @returns {String}\n * @example\n * obj.setMessages({\n * en: { msg: 'Msg', msg2: 'Msg {test}'},\n * it: { msg2: 'Msg {test} it'},\n * });\n * obj.t('msg');\n * // -> outputs `Msg`\n * obj.t('msg2', { params: { test: 'hello' } }); // use params\n * // -> outputs `Msg hello`\n * obj.t('msg2', { l: 'it', params: { test: 'hello' } }); // custom local\n * // -> outputs `Msg hello it`\n */\n t(key, opts = {}) {\n const { config } = this;\n const param = opts.params || {};\n const locale = opts.l || this.getLocale();\n const localeFlb = opts.lFlb || config.localeFallback;\n let result = this._getMsg(key, locale, opts);\n\n // Try with fallback\n if (!result) result = this._getMsg(key, localeFlb, opts);\n\n !result && this._debug(`'${key}' i18n key not found in '${locale}' lang`, opts);\n result = result && isString(result) ? this._addParams(result, param) : result;\n\n return result;\n },\n\n _localLang() {\n const nav = (hasWin() && window.navigator) || {};\n const lang = nav.language || nav.userLanguage;\n return lang ? lang.split('-')[0] : 'en';\n },\n\n _addParams(str, params) {\n const reg = new RegExp(`\\{([\\\\w\\\\d-]*)\\}`, 'g');\n return str.replace(reg, (m, val) => params[val] || '').trim();\n },\n\n _getMsg(key, locale, opts = {}) {\n const msgSet = this.getMessages(locale, opts);\n\n // Lang set is missing\n if (!msgSet) return;\n\n let result = msgSet[key];\n\n // Check for nested getter\n if (!result && key.indexOf('.') > 0) {\n result = key.split('.').reduce((lang, key) => {\n if (isUndefined(lang)) return;\n return lang[key];\n }, msgSet);\n }\n\n return result;\n },\n\n _debug(str, opts = {}) {\n const { em, config } = this;\n (opts.debug || config.debug) && em && em.logWarning(str);\n },\n\n destroy() {\n this.config = config;\n this.em = {};\n },\n };\n};\n","// The initial version of this library was borrowed from https://github.com/madrobby/keymaster\n// and adapted to the GrapesJS's need\n\nvar k,\n _handlers = {},\n _mods = {\n 16: false,\n 18: false,\n 17: false,\n 91: false,\n },\n _scope = 'all',\n // modifier keys\n _MODIFIERS = {\n '⇧': 16,\n shift: 16,\n '⌥': 18,\n alt: 18,\n option: 18,\n '⌃': 17,\n ctrl: 17,\n control: 17,\n '⌘': 91,\n command: 91,\n },\n // special keys\n _MAP = {\n backspace: 8,\n tab: 9,\n clear: 12,\n enter: 13,\n return: 13,\n esc: 27,\n escape: 27,\n space: 32,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n del: 46,\n delete: 46,\n home: 36,\n end: 35,\n pageup: 33,\n pagedown: 34,\n ',': 188,\n '.': 190,\n '/': 191,\n '`': 192,\n '-': 189,\n '=': 187,\n ';': 186,\n \"'\": 222,\n '[': 219,\n ']': 221,\n '\\\\': 220,\n },\n code = function (x) {\n return _MAP[x] || x.toUpperCase().charCodeAt(0);\n },\n _downKeys = [];\n\nfor (k = 1; k < 20; k++) _MAP['f' + k] = 111 + k;\n\n// IE doesn't support Array#indexOf, so have a simple replacement\nfunction index(array, item) {\n var i = array.length;\n while (i--) if (array[i] === item) return i;\n return -1;\n}\n\n// for comparing mods before unassignment\nfunction compareArray(a1, a2) {\n if (a1.length != a2.length) return false;\n for (var i = 0; i < a1.length; i++) {\n if (a1[i] !== a2[i]) return false;\n }\n return true;\n}\n\nvar modifierMap = {\n 16: 'shiftKey',\n 18: 'altKey',\n 17: 'ctrlKey',\n 91: 'metaKey',\n};\n\nfunction updateModifierKey(event) {\n for (k in _mods) _mods[k] = event[modifierMap[k]];\n}\n\n// handle keydown event\nfunction dispatch(event) {\n var key, handler, k, i, modifiersMatch, scope;\n key = event.keyCode;\n\n if (index(_downKeys, key) == -1) {\n _downKeys.push(key);\n }\n\n // if a modifier key, set the key. property to true and return\n if (key == 93 || key == 224) key = 91; // right command on webkit, command on Gecko\n if (key in _mods) {\n _mods[key] = true;\n // 'assignKey' from inside this closure is exported to window.key\n for (k in _MODIFIERS) if (_MODIFIERS[k] == key) assignKey[k] = true;\n return;\n }\n updateModifierKey(event);\n\n // see if we need to ignore the keypress (filter() can can be overridden)\n // by default ignore key presses if a select, textarea, or input is focused\n if (!assignKey.filter.call(this, event)) return;\n\n // abort if no potentially matching shortcuts found\n if (!(key in _handlers)) return;\n\n scope = getScope();\n\n // for each potential shortcut\n for (i = 0; i < _handlers[key].length; i++) {\n handler = _handlers[key][i];\n\n // see if it's in the current scope\n if (handler.scope == scope || handler.scope == 'all') {\n // check if modifiers match if any\n modifiersMatch = handler.mods.length > 0;\n for (k in _mods)\n if ((!_mods[k] && index(handler.mods, +k) > -1) || (_mods[k] && index(handler.mods, +k) == -1))\n modifiersMatch = false;\n // call the handler and stop the event if neccessary\n if ((handler.mods.length == 0 && !_mods[16] && !_mods[18] && !_mods[17] && !_mods[91]) || modifiersMatch) {\n if (handler.method(event, handler) === false) {\n if (event.preventDefault) event.preventDefault();\n else event.returnValue = false;\n if (event.stopPropagation) event.stopPropagation();\n if (event.cancelBubble) event.cancelBubble = true;\n }\n }\n }\n }\n}\n\n// unset modifier keys on keyup\nfunction clearModifier(event) {\n var key = event.keyCode,\n k,\n i = index(_downKeys, key);\n\n // remove key from _downKeys\n if (i >= 0) {\n _downKeys.splice(i, 1);\n }\n\n if (key == 93 || key == 224) key = 91;\n if (key in _mods) {\n _mods[key] = false;\n for (k in _MODIFIERS) if (_MODIFIERS[k] == key) assignKey[k] = false;\n }\n}\n\nfunction resetModifiers() {\n for (k in _mods) _mods[k] = false;\n for (k in _MODIFIERS) assignKey[k] = false;\n}\n\n// parse and assign shortcut\nfunction assignKey(key, scope, method) {\n var keys, mods;\n keys = getKeys(key);\n if (method === undefined) {\n method = scope;\n scope = 'all';\n }\n\n // for each shortcut\n for (var i = 0; i < keys.length; i++) {\n // set modifier keys if any\n mods = [];\n key = keys[i].split('+');\n if (key.length > 1) {\n mods = getMods(key);\n key = [key[key.length - 1]];\n }\n // convert to keycode and...\n key = key[0];\n key = code(key);\n // ...store handler\n if (!(key in _handlers)) _handlers[key] = [];\n _handlers[key].push({\n shortcut: keys[i],\n scope: scope,\n method: method,\n key: keys[i],\n mods: mods,\n });\n }\n}\n\n// unbind all handlers for given key in current scope\nfunction unbindKey(key, scope) {\n var multipleKeys,\n keys,\n mods = [],\n i,\n j,\n obj;\n\n multipleKeys = getKeys(key);\n\n for (j = 0; j < multipleKeys.length; j++) {\n keys = multipleKeys[j].split('+');\n\n if (keys.length > 1) {\n mods = getMods(keys);\n }\n\n key = keys[keys.length - 1];\n key = code(key);\n\n if (scope === undefined) {\n scope = getScope();\n }\n if (!_handlers[key]) {\n return;\n }\n for (i = 0; i < _handlers[key].length; i++) {\n obj = _handlers[key][i];\n // only clear handlers if correct scope and mods match\n if (obj.scope === scope && compareArray(obj.mods, mods)) {\n _handlers[key][i] = {};\n }\n }\n }\n}\n\n// Returns true if the key with code 'keyCode' is currently down\n// Converts strings into key codes.\nfunction isPressed(keyCode) {\n if (typeof keyCode == 'string') {\n keyCode = code(keyCode);\n }\n return index(_downKeys, keyCode) != -1;\n}\n\nfunction getPressedKeyCodes() {\n return _downKeys.slice(0);\n}\n\nfunction filter(event) {\n var tagName = (event.target || event.srcElement).tagName;\n // ignore keypressed in any elements that support keyboard data input\n return !(tagName == 'INPUT' || tagName == 'SELECT' || tagName == 'TEXTAREA');\n}\n\n// initialize key. to false\nfor (k in _MODIFIERS) assignKey[k] = false;\n\n// set current scope (default 'all')\nfunction setScope(scope) {\n _scope = scope || 'all';\n}\n\nfunction getScope() {\n return _scope || 'all';\n}\n\n// delete all handlers for a given scope\nfunction deleteScope(scope) {\n var key, handlers, i;\n\n for (key in _handlers) {\n handlers = _handlers[key];\n for (i = 0; i < handlers.length; ) {\n if (handlers[i].scope === scope) handlers.splice(i, 1);\n else i++;\n }\n }\n}\n\n// abstract key logic for assign and unassign\nfunction getKeys(key) {\n var keys;\n key = key.replace(/\\s/g, '');\n keys = key.split(',');\n if (keys[keys.length - 1] == '') {\n keys[keys.length - 2] += ',';\n }\n return keys;\n}\n\n// abstract mods logic for assign and unassign\nfunction getMods(key) {\n var mods = key.slice(0, key.length - 1);\n for (var mi = 0; mi < mods.length; mi++) mods[mi] = _MODIFIERS[mods[mi]];\n return mods;\n}\n\n// cross-browser events\nfunction addEvent(object, event, method) {\n if (object.addEventListener) object.addEventListener(event, method, false);\n else if (object.attachEvent)\n object.attachEvent('on' + event, function () {\n method(window.event);\n });\n}\n\n// set window.key and window.key.set/get/deleteScope, and the default filter\nassignKey.setScope = setScope;\nassignKey.getScope = getScope;\nassignKey.deleteScope = deleteScope;\nassignKey.filter = filter;\nassignKey.isPressed = isPressed;\nassignKey.getPressedKeyCodes = getPressedKeyCodes;\nassignKey.unbind = unbindKey;\nassignKey.handlers = _handlers;\nassignKey.init = win => {\n // set the handlers globally on document\n // Passing _scope to a callback to ensure it remains the same by execution. Fixes #48\n addEvent(win.document, 'keydown', function (event) {\n dispatch(event);\n });\n addEvent(win.document, 'keyup', clearModifier);\n addEvent(win, 'focus', resetModifiers);\n};\n\nexport default assignKey;\n","/**\n * You can customize the initial state of the module from the editor initialization\n * ```js\n * const editor = grapesjs.init({\n * keymaps: {\n * // Object of keymaps\n * defaults: {\n * 'your-namespace:keymap-name' {\n * keys: '⌘+z, ctrl+z',\n * handler: 'some-command-id'\n * },\n * ...\n * }\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API and listen to its events. Before using these methods, you should get the module from the instance.\n *\n * ```js\n * // Listen to events\n * editor.on('keymap:add', () => { ... });\n *\n * // Use the API\n * const keymaps = editor.Keymaps;\n * keymaps.add(...);\n * ```\n *\n * ## Available Events\n * * `keymap:add` - New keymap added. The new keyamp object is passed as an argument\n * * `keymap:remove` - Keymap removed. The removed keyamp object is passed as an argument\n * * `keymap:emit` - Some keymap emitted, in arguments you get keymapId, shortcutUsed, Event\n * * `keymap:emit:{keymapId}` - `keymapId` emitted, in arguments you get keymapId, shortcutUsed, Event\n *\n * ## Methods\n * * [getConfig](#getconfig)\n * * [add](#add)\n * * [get](#get)\n * * [getAll](#getAll)\n * * [remove](#remove)\n * * [removeAll](#removeall)\n *\n * @module Keymaps\n */\n\nimport { isString } from 'underscore';\nimport { hasWin } from '../utils/mixins';\nimport keymaster from '../utils/keymaster';\n\nhasWin() && keymaster.init(window);\n\nexport default () => {\n const configDef = {\n defaults: {\n 'core:undo': {\n keys: '⌘+z, ctrl+z',\n handler: 'core:undo',\n },\n 'core:redo': {\n keys: '⌘+shift+z, ctrl+shift+z',\n handler: 'core:redo',\n },\n 'core:copy': {\n keys: '⌘+c, ctrl+c',\n handler: 'core:copy',\n },\n 'core:paste': {\n keys: '⌘+v, ctrl+v',\n handler: 'core:paste',\n },\n 'core:component-next': {\n keys: 's',\n handler: 'core:component-next',\n },\n 'core:component-prev': {\n keys: 'w',\n handler: 'core:component-prev',\n },\n 'core:component-enter': {\n keys: 'd',\n handler: 'core:component-enter',\n },\n 'core:component-exit': {\n keys: 'a',\n handler: 'core:component-exit',\n },\n 'core:component-delete': {\n keys: 'backspace, delete',\n handler: 'core:component-delete',\n opts: { prevent: 1 },\n },\n },\n };\n\n return {\n keymaster,\n\n name: 'Keymaps',\n\n /**\n * Get module configurations\n * @return {Object} Configuration object\n */\n getConfig() {\n return this.config;\n },\n\n /**\n * Initialize module\n * @param {Object} config Configurations\n * @private\n */\n init(opts = {}) {\n this.config = { ...configDef, ...opts };\n this.em = this.config.em;\n this.keymaps = {};\n return this;\n },\n\n onLoad() {\n const defKeys = this.config.defaults;\n\n for (let id in defKeys) {\n const value = defKeys[id];\n this.add(id, value.keys, value.handler, value.opts || {});\n }\n },\n\n /**\n * Add new keymap\n * @param {string} id Keymap id\n * @param {string} keys Keymap keys, eg. `ctrl+a`, `⌘+z, ctrl+z`\n * @param {Function|string} handler Keymap handler, might be a function\n * @param {Object} [opts={}] Options\n * @return {Object} Added keymap\n * or just a command id as a string\n * @example\n * // 'ns' is just a custom namespace\n * keymaps.add('ns:my-keymap', '⌘+j, ⌘+u, ctrl+j, alt+u', editor => {\n * console.log('do stuff');\n * });\n * // or\n * keymaps.add('ns:my-keymap', '⌘+s, ctrl+s', 'some-gjs-command');\n *\n * // listen to events\n * editor.on('keymap:emit', (id, shortcut, e) => {\n * // ...\n * })\n */\n add(id, keys, handler, opts = {}) {\n const { em } = this;\n const cmd = em.get('Commands');\n const editor = em.getEditor();\n const canvas = em.get('Canvas');\n const keymap = { id, keys, handler };\n const pk = this.keymaps[id];\n pk && this.remove(id);\n this.keymaps[id] = keymap;\n keymaster(keys, (e, h) => {\n // It's safer putting handlers resolution inside the callback\n const opt = { event: e, h };\n handler = isString(handler) ? cmd.get(handler) : handler;\n const ableTorun = !em.isEditing() && !editor.Canvas.isInputFocused();\n if (ableTorun || opts.force) {\n opts.prevent && canvas.getCanvasView().preventDefault(e);\n typeof handler == 'object' ? cmd.runCommand(handler, opt) : handler(editor, 0, opt);\n const args = [id, h.shortcut, e];\n em.trigger('keymap:emit', ...args);\n em.trigger(`keymap:emit:${id}`, ...args);\n }\n });\n em.trigger('keymap:add', keymap);\n return keymap;\n },\n\n /**\n * Get the keymap by id\n * @param {string} id Keymap id\n * @return {Object} Keymap object\n * @example\n * keymaps.get('ns:my-keymap');\n * // -> {keys, handler};\n */\n get(id) {\n return this.keymaps[id];\n },\n\n /**\n * Get all keymaps\n * @return {Object}\n * @example\n * keymaps.getAll();\n * // -> {id1: {}, id2: {}};\n */\n getAll() {\n return this.keymaps;\n },\n\n /**\n * Remove the keymap by id\n * @param {string} id Keymap id\n * @return {Object} Removed keymap\n * @example\n * keymaps.remove('ns:my-keymap');\n * // -> {keys, handler};\n */\n remove(id) {\n const em = this.em;\n const keymap = this.get(id);\n\n if (keymap) {\n delete this.keymaps[id];\n keymap.keys.split(', ').forEach(k => keymaster.unbind(k.trim()));\n em && em.trigger('keymap:remove', keymap);\n return keymap;\n }\n },\n\n /**\n * Remove all binded keymaps\n * @return {this}\n */\n removeAll() {\n Object.keys(this.keymaps).forEach(keymap => this.remove(keymap));\n keymaster.handlers = {};\n return this;\n },\n\n destroy() {\n this.removeAll();\n this.keymaps = {};\n this.em = {};\n },\n };\n};\n","export default {\n stylePrefix: 'mdl-',\n\n title: '',\n\n content: '',\n\n backdrop: true,\n\n // Avoid rendering the default modal.\n custom: false,\n\n /**\n * Extend ModalView object (view/ModalView.js)\n * @example\n * extend: {\n * template() {\n * return '
...New modal template...
';\n * },\n * },\n */\n extend: {}\n};\n","import { Model } from '../../common';\n\nexport default class Modal extends Model {\n defaults() {\n return {\n title: '',\n content: '',\n attributes: {},\n open: false,\n };\n }\n\n open() {\n this.set('open', true);\n }\n\n close() {\n this.set('open', false);\n }\n}\n","import { View } from '../../common';\n\nexport default class ModalView extends View {\n template({ pfx, ppfx, content, title }) {\n return `
\n
\n
${title}
\n
\n
\n
\n
${content}
\n
\n
\n
\n
`;\n }\n\n events() {\n return {\n click: 'onClick',\n 'click [data-close-modal]': 'hide',\n };\n }\n\n initialize(o) {\n const model = this.model;\n const config = o.config || {};\n const pfx = config.stylePrefix || '';\n this.config = config;\n this.pfx = pfx;\n this.ppfx = config.pStylePrefix || '';\n this.listenTo(model, 'change:open', this.updateOpen);\n this.listenTo(model, 'change:title', this.updateTitle);\n this.listenTo(model, 'change:content', this.updateContent);\n }\n\n onClick(e) {\n const bkd = this.config.backdrop;\n bkd && e.target === this.el && this.hide();\n }\n\n /**\n * Returns collector element\n * @return {HTMLElement}\n * @private\n */\n getCollector() {\n if (!this.$collector) this.$collector = this.$el.find('.' + this.pfx + 'collector');\n return this.$collector;\n }\n\n /**\n * Returns content element\n * @return {HTMLElement}\n * @private\n */\n getContent() {\n const pfx = this.pfx;\n\n if (!this.$content) {\n this.$content = this.$el.find(`.${pfx}content #${pfx}c`);\n }\n\n return this.$content;\n }\n\n /**\n * Returns title element\n * @return {HTMLElement}\n * @private\n */\n getTitle(opts = {}) {\n if (!this.$title) this.$title = this.$el.find('.' + this.pfx + 'title');\n return opts.$ ? this.$title : this.$title.get(0);\n }\n\n /**\n * Update content\n * @private\n * */\n updateContent() {\n var content = this.getContent();\n const children = content.children();\n const coll = this.getCollector();\n const body = this.model.get('content');\n children.length && coll.append(children);\n content.empty().append(body);\n }\n\n /**\n * Update title\n * @private\n * */\n updateTitle() {\n const title = this.getTitle({ $: true });\n title && title.empty().append(this.model.get('title'));\n }\n\n /**\n * Update open\n * @private\n * */\n updateOpen() {\n this.el.style.display = this.model.get('open') ? '' : 'none';\n }\n\n /**\n * Hide modal\n * @private\n * */\n hide() {\n this.model.close();\n }\n\n /**\n * Show modal\n * @private\n * */\n show() {\n this.model.open();\n }\n\n updateAttr(attr) {\n const { pfx, $el, el } = this;\n const currAttr = [].slice.call(el.attributes).map(i => i.name);\n $el.removeAttr(currAttr.join(' '));\n $el.attr({\n ...(attr || {}),\n class: `${pfx}container ${(attr && attr.class) || ''}`.trim(),\n });\n }\n\n render() {\n const el = this.$el;\n const obj = this.model.toJSON();\n obj.pfx = this.pfx;\n obj.ppfx = this.ppfx;\n el.html(this.template(obj));\n this.updateAttr();\n this.updateOpen();\n return this;\n }\n}\n","/**\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/modal_dialog/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * modal: {\n * // options\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\n *\n * ```js\n * const modal = editor.Modal;\n * ```\n *\n * ## Available Events\n * * `modal:open` - Modal is opened\n * * `modal:close` - Modal is closed\n * * `modal` - Event triggered on any change related to the modal. An object containing all the available data about the triggered event is passed as an argument to the callback.\n *\n * ## Methods\n * * [open](#open)\n * * [close](#close)\n * * [isOpen](#isopen)\n * * [setTitle](#settitle)\n * * [getTitle](#gettitle)\n * * [setContent](#setcontent)\n * * [getContent](#getcontent)\n * * [onceClose](#onceclose)\n * * [onceOpen](#onceopen)\n *\n * @module Modal\n */\n\nimport { debounce, isFunction, isString } from 'underscore';\nimport { createText } from '../utils/dom';\nimport defaults from './config/config';\nimport ModalM from './model/Modal';\nimport ModalView from './view/ModalView';\n\nexport default () => {\n var c = {};\n var model, modal;\n\n const triggerEvent = (enable, em) => {\n em && em.trigger(`modal:${enable ? 'open' : 'close'}`);\n };\n\n return {\n /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'Modal',\n\n getConfig() {\n return c;\n },\n\n /**\n * Initialize module. Automatically called with a new instance of the editor\n * @param {Object} config Configurations\n * @private\n */\n init(config = {}) {\n c = {\n ...defaults,\n ...config\n };\n\n const em = c.em;\n this.em = em;\n var ppfx = c.pStylePrefix;\n if (ppfx) c.stylePrefix = ppfx + c.stylePrefix;\n\n model = new ModalM(c);\n model.on('change:open', (m, enb) => triggerEvent(enb, em));\n model.on(\n 'change',\n debounce(() => {\n const data = this._evData();\n const { custom } = this.getConfig();\n isFunction(custom) && custom(data);\n em.trigger('modal', data);\n })\n );\n\n return this;\n },\n\n _evData() {\n const titl = this.getTitle();\n const cnt = this.getContent();\n const { open, attributes } = model.attributes;\n return {\n open,\n attributes,\n title: isString(titl) ? createText(titl) : titl,\n content: isString(cnt) ? createText(cnt) : cnt.get ? cnt.get(0) : cnt,\n close: () => this.close()\n };\n },\n\n postRender(view) {\n const el = view.model.getConfig().el || view.el;\n const res = this.render();\n res && res.appendTo(el);\n },\n\n /**\n * Open the modal window\n * @param {Object} [opts={}] Options\n * @param {String|HTMLElement} [opts.title] Title to set for the modal\n * @param {String|HTMLElement} [opts.content] Content to set for the modal\n * @param {Object} [opts.attributes] Updates the modal wrapper with custom attributes\n * @returns {this}\n * @example\n * modal.open({\n * title: 'My title',\n * content: 'My content',\n * attributes: { class: 'my-class' },\n * });\n */\n open(opts = {}) {\n const attr = opts.attributes || {};\n opts.title && this.setTitle(opts.title);\n opts.content && this.setContent(opts.content);\n model.set('attributes', attr);\n model.open();\n modal && modal.updateAttr(attr);\n return this;\n },\n\n /**\n * Close the modal window\n * @returns {this}\n * @example\n * modal.close();\n */\n close() {\n model.close();\n return this;\n },\n\n /**\n * Execute callback when the modal will be closed.\n * The callback will be called one only time\n * @param {Function} clb Callback to call\n * @returns {this}\n * @example\n * modal.onceClose(() => {\n * console.log('The modal is closed');\n * });\n */\n onceClose(clb) {\n this.em.once('modal:close', clb);\n return this;\n },\n\n /**\n * Execute callback when the modal will be opened.\n * The callback will be called one only time\n * @param {Function} clb Callback to call\n * @returns {this}\n * @example\n * modal.onceOpen(() => {\n * console.log('The modal is opened');\n * });\n */\n onceOpen(clb) {\n this.em.once('modal:open', clb);\n return this;\n },\n\n /**\n * Checks if the modal window is open\n * @returns {Boolean}\n * @example\n * modal.isOpen(); // true | false\n */\n isOpen() {\n return !!model.get('open');\n },\n\n /**\n * Set the title to the modal window\n * @param {string | HTMLElement} title Title\n * @returns {this}\n * @example\n * // pass a string\n * modal.setTitle('Some title');\n * // or an HTMLElement\n * const el = document.createElement('div');\n * el.innerText = 'New title';\n * modal.setTitle(el);\n */\n setTitle(title) {\n model.set('title', title);\n return this;\n },\n\n /**\n * Returns the title of the modal window\n * @returns {string | HTMLElement}\n * @example\n * modal.getTitle();\n */\n getTitle() {\n return model.get('title');\n },\n\n /**\n * Set the content of the modal window\n * @param {string | HTMLElement} content Content\n * @returns {this}\n * @example\n * // pass a string\n * modal.setContent('Some content');\n * // or an HTMLElement\n * const el = document.createElement('div');\n * el.innerText = 'New content';\n * modal.setContent(el);\n */\n setContent(content) {\n model.set('content', ' ');\n model.set('content', content);\n return this;\n },\n\n /**\n * Get the content of the modal window\n * @returns {string | HTMLElement}\n * @example\n * modal.getContent();\n */\n getContent() {\n return model.get('content');\n },\n\n /**\n * Returns content element\n * @return {HTMLElement}\n * @private\n */\n getContentEl() {\n return modal.getContent().get(0);\n },\n\n /**\n * Returns modal model\n * @return {Model}\n * @private\n */\n getModel() {\n return model;\n },\n\n /**\n * Render the modal window\n * @return {HTMLElement}\n * @private\n */\n render() {\n if (this.getConfig().custom) return;\n const View = ModalView.extend(c.extend);\n const el = modal && modal.el;\n modal = new View({\n el,\n model,\n config: c\n });\n return modal.render().$el;\n },\n\n destroy() {\n modal && modal.remove();\n [c, model, modal].forEach(i => (i = {}));\n this.em = {};\n }\n };\n};\n","export default {\n stylePrefix: '',\n\n // Specify the element to use as a container, string (query) or HTMLElement\n // With the empty value, nothing will be rendered\n appendTo: '',\n\n // Enable/Disable globally the possibility to sort layers\n sortable: 1,\n\n // Enable/Disable globally the possibility to hide layers\n hidable: 1,\n\n // Hide textnodes\n hideTextnode: 1,\n\n // Indicate a query string of the element to be selected as the root of layers.\n // By default the root is the wrapper\n root: '',\n\n // Indicates if the wrapper is visible in layers\n showWrapper: 1,\n\n // Show hovered components in canvas\n showHover: 1,\n\n // Scroll to selected component in Canvas when it's selected in Layers\n // true, false or `scrollIntoView`-like options,\n // `block: 'nearest'` avoids the issue of window scrolling\n scrollCanvas: { behavior: 'smooth', block: 'nearest' },\n\n // Scroll to selected component in Layers when it's selected in Canvas\n // true, false or `scrollIntoView`-like options\n scrollLayers: { behavior: 'auto', block: 'nearest' },\n\n // Highlight when a layer component is hovered\n highlightHover: 1,\n\n /**\n * WARNING: Experimental option\n * A callback triggered once the component layer is initialized.\n * Useful to trigger updates on some component prop change.\n * @example\n * onInit({ component, render, listenTo }) {\n * listenTo(component, 'change:some-prop', render);\n * };\n */\n onInit: () => {},\n\n /**\n * WARNING: Experimental option\n * A callback triggered once the component layer is rendered.\n * A callback useful to update the layer DOM on some component change\n * @example\n * onRender({ component, el }) { // el is the DOM of the layer\n * if (component.get('some-prop')) {\n * // do changes using the `el` DOM\n * }\n * }\n */\n onRender: () => {},\n\n /**\n * Extend Layer view object (view/ItemView.js)\n * @example\n * extend: {\n * setName(name) {\n * // this.model is the component of the layer\n * this.model.set('another-prop-for-name', name);\n * },\n * },\n */\n extend: {}\n};\n","import { isUndefined, isString, bindAll } from 'underscore';\nimport { View } from '../../common';\nimport { getModel, isEscKey, isEnterKey } from '../../utils/mixins';\nimport ComponentView from '../../dom_components/view/ComponentView';\nimport { eventDrag } from '../../dom_components/model/Component';\n\nconst inputProp = 'contentEditable';\nconst styleOpts = { mediaText: '' };\nconst isStyleHidden = (style = {}) => {\n return (style.display || '').trim().indexOf('none') === 0;\n};\nlet ItemsView;\n\nexport default class ItemView extends View {\n events() {\n return {\n 'mousedown [data-toggle-move]': 'startSort',\n 'touchstart [data-toggle-move]': 'startSort',\n 'click [data-toggle-visible]': 'toggleVisibility',\n 'click [data-toggle-open]': 'toggleOpening',\n 'click [data-toggle-select]': 'handleSelect',\n 'mouseover [data-toggle-select]': 'handleHover',\n 'mouseout [data-toggle-select]': 'handleHoverOut',\n 'dblclick [data-name]': 'handleEdit',\n 'keydown [data-name]': 'handleEditKey',\n 'focusout [data-name]': 'handleEditEnd',\n };\n }\n\n template(model) {\n const { pfx, ppfx, config, clsNoEdit } = this;\n const { hidable } = config;\n const count = this.countChildren(model);\n const addClass = !count ? this.clsNoChild : '';\n const clsTitle = `${this.clsTitle} ${addClass}`;\n const clsTitleC = `${this.clsTitleC} ${ppfx}one-bg`;\n const clsCaret = `${this.clsCaret} fa fa-chevron-right`;\n const clsInput = `${this.inputNameCls} ${clsNoEdit} ${ppfx}no-app`;\n const level = this.level + 1;\n const gut = `${30 + level * 10}px`;\n const name = model.getName();\n const icon = model.getIcon();\n const clsBase = `${pfx}layer`;\n\n return `\n ${\n hidable\n ? ``\n : ''\n }\n
\n
\n
\n \n ${icon ? `${icon}` : ''}\n ${name}\n
\n
\n
\n
${count || ''}
\n
\n \n
\n
`;\n }\n\n initialize(o = {}) {\n bindAll(this, '__render');\n this.opt = o;\n this.level = o.level;\n const config = o.config || {};\n const { onInit } = config;\n this.config = config;\n this.em = o.config.em;\n this.ppfx = this.em.get('Config').stylePrefix;\n this.sorter = o.sorter || '';\n this.pfx = this.config.stylePrefix;\n this.parentView = o.parentView;\n const pfx = this.pfx;\n const ppfx = this.ppfx;\n const model = this.model;\n const components = model.get('components');\n const type = model.get('type') || 'default';\n model.set('open', false);\n this.listenTo(components, 'remove add reset', this.checkChildren);\n [\n ['change:status', this.updateStatus],\n ['change:open', this.updateOpening],\n ['change:layerable', this.updateLayerable],\n ['change:style:display', this.updateVisibility],\n ['rerender:layer', this.render],\n ['change:name change:custom-name', this.updateName],\n ].forEach(item => this.listenTo(model, item[0], item[1]));\n this.className = `${pfx}layer ${pfx}layer__t-${type} no-select ${ppfx}two-color`;\n this.inputNameCls = `${ppfx}layer-name`;\n this.clsTitleC = `${pfx}layer-title-c`;\n this.clsTitle = `${pfx}layer-title`;\n this.clsCaret = `${pfx}layer-caret`;\n this.clsCount = `${pfx}layer-count`;\n this.clsMove = `${pfx}layer-move`;\n this.clsChildren = `${pfx}layer-children`;\n this.clsNoChild = `${pfx}layer-no-chld`;\n this.clsEdit = `${this.inputNameCls}--edit`;\n this.clsNoEdit = `${this.inputNameCls}--no-edit`;\n this.$el.data('model', model);\n this.$el.data('collection', components);\n model.viewLayer = this;\n onInit.bind(this)({\n component: model,\n render: this.__render,\n listenTo: this.listenTo,\n });\n }\n\n updateName() {\n this.getInputName().innerText = this.model.getName();\n }\n\n getVisibilityEl() {\n if (!this.eyeEl) {\n this.eyeEl = this.$el.children(`.${this.pfx}layer-vis`);\n }\n\n return this.eyeEl;\n }\n\n updateVisibility() {\n const pfx = this.pfx;\n const model = this.model;\n const hClass = `${pfx}layer-hidden`;\n const hideIcon = 'fa-eye-slash';\n const hidden = isStyleHidden(model.getStyle(styleOpts));\n const method = hidden ? 'addClass' : 'removeClass';\n this.$el[method](hClass);\n this.getVisibilityEl()[method](hideIcon);\n }\n\n /**\n * Toggle visibility\n * @param\tEvent\n *\n * @return \tvoid\n * */\n toggleVisibility(e) {\n e && e.stopPropagation();\n const { model, em } = this;\n const prevDspKey = '__prev-display';\n const prevDisplay = model.get(prevDspKey);\n const style = model.getStyle(styleOpts);\n const { display } = style;\n const hidden = isStyleHidden(style);\n\n if (hidden) {\n delete style.display;\n\n if (prevDisplay) {\n style.display = prevDisplay;\n model.unset(prevDspKey);\n }\n } else {\n display && model.set(prevDspKey, display);\n style.display = 'none';\n }\n\n model.setStyle(style, styleOpts);\n em && em.trigger('component:toggled'); // Updates Style Manager #2938\n }\n\n /**\n * Handle the edit of the component name\n */\n handleEdit(e) {\n e && e.stopPropagation();\n const { em, $el, clsNoEdit, clsEdit } = this;\n const inputEl = this.getInputName();\n inputEl[inputProp] = true;\n inputEl.focus();\n document.execCommand('selectAll', false, null);\n em && em.setEditing(1);\n $el.find(`.${this.inputNameCls}`).removeClass(clsNoEdit).addClass(clsEdit);\n }\n\n handleEditKey(ev) {\n ev.stopPropagation();\n (isEscKey(ev) || isEnterKey(ev)) && this.handleEditEnd(ev);\n }\n\n /**\n * Handle with the end of editing of the component name\n */\n handleEditEnd(e) {\n e && e.stopPropagation();\n const { em, $el, clsNoEdit, clsEdit } = this;\n const inputEl = this.getInputName();\n const name = inputEl.textContent;\n inputEl.scrollLeft = 0;\n inputEl[inputProp] = false;\n this.setName(name, { component: this.model, propName: 'custom-name' });\n em && em.setEditing(0);\n $el.find(`.${this.inputNameCls}`).addClass(clsNoEdit).removeClass(clsEdit);\n }\n\n setName(name, { propName }) {\n this.model.set(propName, name);\n }\n\n /**\n * Get the input containing the name of the component\n * @return {HTMLElement}\n */\n getInputName() {\n if (!this.inputName) {\n this.inputName = this.el.querySelector(`.${this.inputNameCls}`);\n }\n return this.inputName;\n }\n\n /**\n * Update item opening\n *\n * @return void\n * */\n updateOpening() {\n var opened = this.opt.opened || {};\n var model = this.model;\n const chvDown = 'fa-chevron-down';\n\n if (model.get('open')) {\n this.$el.addClass('open');\n this.getCaret().addClass(chvDown);\n opened[model.cid] = model;\n } else {\n this.$el.removeClass('open');\n this.getCaret().removeClass(chvDown);\n delete opened[model.cid];\n }\n }\n\n /**\n * Toggle item opening\n * @param {Object}\te\n *\n * @return void\n * */\n toggleOpening(e) {\n const { model } = this;\n e.stopImmediatePropagation();\n\n if (!model.get('components').length) return;\n\n model.set('open', !model.get('open'));\n }\n\n /**\n * Handle component selection\n */\n handleSelect(e) {\n e.stopPropagation();\n const { em, config, model } = this;\n\n if (em) {\n em.setSelected(model, { fromLayers: 1, event: e });\n const scroll = config.scrollCanvas;\n scroll && model.views.forEach(view => view.scrollIntoView(scroll));\n }\n }\n\n /**\n * Handle component selection\n */\n handleHover(e) {\n e.stopPropagation();\n const { em, config, model } = this;\n em && config.showHover && em.setHovered(model, { fromLayers: 1 });\n }\n\n handleHoverOut(ev) {\n ev.stopPropagation();\n const { em, config } = this;\n em && config.showHover && em.setHovered(0, { fromLayers: 1 });\n }\n\n /**\n * Delegate to sorter\n * @param\tEvent\n * */\n startSort(e) {\n e.stopPropagation();\n const { em, sorter } = this;\n // Right or middel click\n if (e.button && e.button !== 0) return;\n\n if (sorter) {\n sorter.onStart = data => em.trigger(`${eventDrag}:start`, data);\n sorter.onMoveClb = data => em.trigger(eventDrag, data);\n sorter.startSort(e.target);\n }\n }\n\n /**\n * Freeze item\n * @return\tvoid\n * */\n freeze() {\n this.$el.addClass(this.pfx + 'opac50');\n this.model.set('open', 0);\n }\n\n /**\n * Unfreeze item\n * @return\tvoid\n * */\n unfreeze() {\n this.$el.removeClass(this.pfx + 'opac50');\n }\n\n /**\n * Update item on status change\n * @param\tEvent\n * */\n updateStatus(e) {\n ComponentView.prototype.updateStatus.apply(this, [\n {\n avoidHover: !this.config.highlightHover,\n noExtHl: 1,\n },\n ]);\n }\n\n /**\n * Check if component is visible\n *\n * @return boolean\n * */\n isVisible() {\n return !isStyleHidden(this.model.getStyle());\n }\n\n /**\n * Update item aspect after children changes\n *\n * @return void\n * */\n checkChildren() {\n const { model, clsNoChild } = this;\n const count = this.countChildren(model);\n const title = this.$el.children(`.${this.clsTitleC}`).children(`.${this.clsTitle}`);\n let { cnt } = this;\n\n if (!cnt) {\n cnt = this.$el.children('[data-count]').get(0);\n this.cnt = cnt;\n }\n\n title[count ? 'removeClass' : 'addClass'](clsNoChild);\n if (cnt) cnt.innerHTML = count || '';\n !count && model.set('open', 0);\n }\n\n /**\n * Count children inside model\n * @param {Object} model\n * @return {number}\n * @private\n */\n countChildren(model) {\n var count = 0;\n model.get('components').each(function (m) {\n var isCountable = this.opt.isCountable;\n var hide = this.config.hideTextnode;\n if (isCountable && !isCountable(m, hide)) return;\n count++;\n }, this);\n return count;\n }\n\n getCaret() {\n if (!this.caret || !this.caret.length) {\n const pfx = this.pfx;\n this.caret = this.$el.children(`.${this.clsTitleC}`).find(`.${this.clsCaret}`);\n }\n\n return this.caret;\n }\n\n setRoot(el) {\n el = isString(el) ? this.em.getWrapper().find(el)[0] : el;\n const model = getModel(el);\n if (!model) return;\n this.stopListening();\n this.model = model;\n this.initialize(this.opt);\n this._rendered && this.render();\n }\n\n updateLayerable() {\n const { parentView } = this;\n const toRerender = parentView || this;\n toRerender.render();\n }\n\n __clearItems() {\n const { items } = this;\n items && items.remove();\n }\n\n remove() {\n View.prototype.remove.apply(this, arguments);\n this.__clearItems();\n }\n\n render() {\n const { model, config, pfx, ppfx, opt } = this;\n this.__clearItems();\n const { isCountable } = opt;\n const hidden = isCountable && !isCountable(model, config.hideTextnode);\n const vis = this.isVisible();\n const el = this.$el.empty();\n const level = this.level + 1;\n this.inputName = 0;\n\n if (isUndefined(ItemsView)) {\n ItemsView = require('./ItemsView').default;\n }\n\n this.items = new ItemsView({\n ItemView: opt.ItemView,\n collection: model.get('components'),\n config: this.config,\n sorter: this.sorter,\n opened: this.opt.opened,\n parentView: this,\n parent: model,\n level,\n });\n const children = this.items.render().$el;\n\n if (!this.config.showWrapper && level === 1) {\n el.append(children);\n } else {\n el.html(this.template(model));\n el.find(`.${this.clsChildren}`).append(children);\n }\n\n if (!model.get('draggable') || !this.config.sortable) {\n el.children(`.${this.clsMove}`).remove();\n }\n\n !vis && (this.className += ` ${pfx}hide`);\n hidden && (this.className += ` ${ppfx}hidden`);\n el.attr('class', this.className);\n this.updateOpening();\n this.updateStatus();\n this.updateVisibility();\n this.__render();\n this._rendered = 1;\n return this;\n }\n\n __render() {\n const { model, config, el } = this;\n const { onRender } = config;\n const opt = { component: model, el };\n onRender.bind(this)(opt);\n this.em.trigger('layer:render', opt);\n }\n}\n","import { isElement } from 'underscore';\nimport defaults from './config/config';\nimport View from './view/ItemView';\n\nexport default () => {\n let em;\n let layers;\n let config = {};\n\n return {\n name: 'LayerManager',\n\n init(opts = {}) {\n config = { ...defaults, ...opts };\n config.stylePrefix = opts.pStylePrefix;\n em = config.em;\n return this;\n },\n\n getConfig() {\n return config;\n },\n\n onLoad() {\n em && em.on('component:selected', this.componentChanged);\n this.componentChanged();\n },\n\n postRender() {\n const elTo = config.appendTo;\n const root = config.root;\n root && this.setRoot(root);\n\n if (elTo) {\n const el = isElement(elTo) ? elTo : document.querySelector(elTo);\n el.appendChild(this.render());\n }\n },\n\n /**\n * Set new root for layers\n * @param {HTMLElement|Component|String} el Component to be set as the root\n * @return {self}\n */\n setRoot(el) {\n layers && layers.setRoot(el);\n return this;\n },\n\n /**\n * Get the root of layers\n * @return {Component}\n */\n getRoot() {\n return layers && layers.model;\n },\n\n /**\n * Return the view of layers\n * @return {View}\n */\n getAll() {\n return layers;\n },\n\n /**\n * Triggered when the selected component is changed\n * @private\n */\n componentChanged(selected, opts = {}) {\n if (opts.fromLayers) return;\n const opened = em.get('opened');\n const model = em.getSelected();\n const scroll = config.scrollLayers;\n let parent = model && model.collection ? model.collection.parent : null;\n for (let cid in opened) opened[cid].set('open', 0);\n\n while (parent) {\n parent.set('open', 1);\n opened[parent.cid] = parent;\n parent = parent.collection ? parent.collection.parent : null;\n }\n\n if (model && scroll) {\n const el = model.viewLayer && model.viewLayer.el;\n el && el.scrollIntoView(scroll);\n }\n },\n\n render() {\n const ItemView = View.extend(config.extend);\n layers && layers.remove();\n layers = new ItemView({\n ItemView,\n level: 0,\n config,\n opened: config.opened || {},\n model: em.get('DomComponents').getWrapper(),\n });\n return layers.render().el;\n },\n\n destroy() {\n layers && layers.remove();\n [em, layers, config].forEach(i => (i = {}));\n },\n };\n};\n","import { View } from '../../common';\nimport { eventDrag } from '../../dom_components/model/Component';\n\nexport default class ItemsView extends View {\n initialize(o = {}) {\n this.items = [];\n this.opt = o;\n const config = o.config || {};\n this.level = o.level;\n this.config = config;\n this.preview = o.preview;\n this.ppfx = config.pStylePrefix || '';\n this.pfx = config.stylePrefix || '';\n this.parent = o.parent;\n this.parentView = o.parentView;\n const pfx = this.pfx;\n const ppfx = this.ppfx;\n const parent = this.parent;\n const coll = this.collection;\n this.listenTo(coll, 'add', this.addTo);\n this.listenTo(coll, 'reset resetNavigator', this.render);\n this.listenTo(coll, 'remove', this.removeChildren);\n this.className = `${pfx}layers`;\n const em = config.em;\n\n if (config.sortable && !this.opt.sorter) {\n const utils = em.get('Utils');\n this.opt.sorter = new utils.Sorter({\n container: config.sortContainer || this.el,\n containerSel: `.${this.className}`,\n itemSel: `.${pfx}layer`,\n ignoreViewChildren: 1,\n onEndMove(created, sorter, data) {\n const srcModel = sorter.getSourceModel();\n em.setSelected(srcModel, { forceChange: 1 });\n em.trigger(`${eventDrag}:end`, data);\n },\n avoidSelectOnEnd: 1,\n nested: 1,\n ppfx,\n pfx,\n });\n }\n\n this.sorter = this.opt.sorter || '';\n\n // For the sorter\n this.$el.data('collection', coll);\n parent && this.$el.data('model', parent);\n }\n\n removeChildren(removed) {\n const view = removed.viewLayer;\n if (!view) return;\n view.remove();\n removed.viewLayer = 0;\n }\n\n /**\n * Add to collection\n * @param Object Model\n *\n * @return Object\n * */\n addTo(model) {\n var i = this.collection.indexOf(model);\n this.addToCollection(model, null, i);\n }\n\n /**\n * Add new object to collection\n * @param Object Model\n * @param Object Fragment collection\n * @param integer Index of append\n *\n * @return Object Object created\n * */\n addToCollection(model, fragmentEl, index) {\n const { level, parentView, opt } = this;\n const { ItemView } = opt;\n const fragment = fragmentEl || null;\n const item = new ItemView({\n ItemView,\n level,\n model,\n parentView,\n config: this.config,\n sorter: this.sorter,\n isCountable: this.isCountable,\n opened: this.opt.opened,\n });\n const rendered = item.render().el;\n\n if (fragment) {\n fragment.appendChild(rendered);\n } else {\n if (typeof index != 'undefined') {\n var method = 'before';\n // If the added model is the last of collection\n // need to change the logic of append\n if (this.$el.children().length == index) {\n index--;\n method = 'after';\n }\n // In case the added is new in the collection index will be -1\n if (index < 0) {\n this.$el.append(rendered);\n } else this.$el.children().eq(index)[method](rendered);\n } else this.$el.append(rendered);\n }\n this.items.push(item);\n return rendered;\n }\n\n remove() {\n View.prototype.remove.apply(this, arguments);\n this.items.map(i => i.remove());\n }\n\n /**\n * Check if the model could be count by the navigator\n * @param {Object} model\n * @return {Boolean}\n * @private\n */\n isCountable(model, hide) {\n var type = model.get('type');\n var tag = model.get('tagName');\n if (((type == 'textnode' || tag == 'br') && hide) || !model.get('layerable')) {\n return false;\n }\n return true;\n }\n\n render() {\n const frag = document.createDocumentFragment();\n const el = this.el;\n el.innerHTML = '';\n this.collection.each(model => this.addToCollection(model, frag));\n el.appendChild(frag);\n el.className = this.className;\n return this;\n }\n}\n","import { result, forEach } from 'underscore';\nimport { Model } from '../../common';\nimport Frames from '../../canvas/model/Frames';\n\nexport default class Page extends Model {\n defaults() {\n return {\n frames: [],\n _undo: true,\n };\n }\n\n initialize(props, opts = {}) {\n const { config = {} } = opts;\n const { em } = config;\n const defFrame = {};\n this.em = em;\n if (!props.frames) {\n defFrame.component = props.component;\n defFrame.styles = props.styles;\n ['component', 'styles'].map(i => this.unset(i));\n }\n const frms = props.frames || [defFrame];\n const frames = new Frames(frms, config);\n frames.page = this;\n this.set('frames', frames);\n const um = em && em.get('UndoManager');\n um && um.add(frames);\n }\n\n onRemove() {\n this.get('frames').reset();\n }\n\n getFrames() {\n return this.get('frames');\n }\n\n /**\n * Get page id\n * @returns {String}\n */\n getId() {\n return this.id;\n }\n\n /**\n * Get page name\n * @returns {String}\n */\n getName() {\n return this.get('name');\n }\n\n /**\n * Update page name\n * @param {String} name New page name\n * @example\n * page.setName('New name');\n */\n setName(name) {\n return this.get({ name });\n }\n\n /**\n * Get all frames\n * @returns {Array}\n * @example\n * const arrayOfFrames = page.getAllFrames();\n */\n getAllFrames() {\n return this.getFrames().models || [];\n }\n\n /**\n * Get the first frame of the page (identified always as the main one)\n * @returns {Frame}\n * @example\n * const mainFrame = page.getMainFrame();\n */\n getMainFrame() {\n return this.getFrames().at(0);\n }\n\n /**\n * Get the root component (usually is the `wrapper` component) from the main frame\n * @returns {Component}\n * @example\n * const rootComponent = page.getMainComponent();\n * console.log(rootComponent.toHTML());\n */\n getMainComponent() {\n const frame = this.getMainFrame();\n return frame && frame.getComponent();\n }\n\n toJSON(opts = {}) {\n const obj = Model.prototype.toJSON.call(this, opts);\n const defaults = result(this, 'defaults');\n\n // Remove private keys\n forEach(obj, (value, key) => {\n key.indexOf('_') === 0 && delete obj[key];\n });\n\n forEach(defaults, (value, key) => {\n if (obj[key] === value) delete obj[key];\n });\n\n return obj;\n }\n}\n","import { Collection } from '../../common';\nimport Page from './Page';\n\nexport default class Pages extends Collection {\n initialize(models, config = {}) {\n this.config = config;\n this.on('reset', this.onReset);\n this.on('remove', this.onRemove);\n }\n\n onReset(m, opts = {}) {\n const prev = opts.previousModels || [];\n prev.map(p => this.onRemove(p));\n }\n\n onRemove(removed) {\n removed && removed.onRemove();\n }\n\n add(m, o = {}) {\n const { config } = this;\n return Collection.prototype.add.call(this, m, { ...o, config });\n }\n}\n\nPages.prototype.model = Page;\n","/**\n * You can customize the initial state of the module from the editor initialization\n * ```js\n * const editor = grapesjs.init({\n * ....\n * pageManager: {\n * pages: [\n * {\n * id: 'page-id',\n * styles: `.my-class { color: red }`, // or a JSON of styles\n * component: '
My element
', // or a JSON of components\n * }\n * ]\n * },\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\n *\n * ```js\n * const pageManager = editor.Pages;\n * ```\n *\n * ## Available Events\n * * `page:add` - Added new page. The page is passed as an argument to the callback\n * * `page:remove` - Page removed. The page is passed as an argument to the callback\n * * `page:select` - New page selected. The newly selected page and the previous one, are passed as arguments to the callback\n * * `page:update` - Page updated. The updated page and the object containing changes are passed as arguments to the callback\n * * `page` - Catch-all event for all the events mentioned above. An object containing all the available data about the triggered event is passed as an argument to the callback\n *\n * ## Methods\n * * [add](#add)\n * * [get](#get)\n * * [getAll](#getall)\n * * [getAllWrappers](#getallwrappers)\n * * [getMain](#getmain)\n * * [remove](#remove)\n * * [select](#select)\n * * [getSelected](#getselected)\n *\n * [Page]: page.html\n * [Component]: component.html\n *\n * @module Pages\n */\n\nimport { isString, bindAll, unique, flatten } from 'underscore';\nimport { createId } from '../utils/mixins';\nimport { Model, Module } from '../common';\nimport Pages from './model/Pages';\nimport Page from './model/Page';\n\nexport const evAll = 'page';\nexport const evPfx = `${evAll}:`;\nexport const evPageSelect = `${evPfx}select`;\nexport const evPageSelectBefore = `${evPageSelect}:before`;\nexport const evPageUpdate = `${evPfx}update`;\nexport const evPageAdd = `${evPfx}add`;\nexport const evPageAddBefore = `${evPageAdd}:before`;\nexport const evPageRemove = `${evPfx}remove`;\nexport const evPageRemoveBefore = `${evPageRemove}:before`;\nconst chnSel = 'change:selected';\nconst typeMain = 'main';\n\nexport default () => {\n return {\n ...Module,\n\n name: 'PageManager',\n\n storageKey: 'pages',\n\n Page,\n\n Pages,\n\n events: {\n all: evAll,\n select: evPageSelect,\n selectBefore: evPageSelectBefore,\n update: evPageUpdate,\n add: evPageAdd,\n addBefore: evPageAddBefore,\n remove: evPageRemove,\n removeBefore: evPageRemoveBefore,\n },\n\n /**\n * Initialize module\n * @param {Object} config Configurations\n * @private\n */\n init(opts = {}) {\n bindAll(this, '_onPageChange');\n const { em } = opts;\n const cnf = { ...opts };\n this.config = cnf;\n this.em = em;\n const pages = new Pages([], cnf);\n this.pages = pages;\n this.all = pages;\n const model = new Model({ _undo: true });\n this.model = model;\n pages.on('add', (p, c, o) => em.trigger(evPageAdd, p, o));\n pages.on('remove', (p, c, o) => em.trigger(evPageRemove, p, o));\n pages.on('change', (p, c) => {\n em.trigger(evPageUpdate, p, p.changedAttributes(), c);\n });\n pages.on('reset', coll => coll.at(0) && this.select(coll.at(0)));\n pages.on('all', this.__onChange, this);\n model.on(chnSel, this._onPageChange);\n\n return this;\n },\n\n __onChange(event, page, coll, opts) {\n const options = opts || coll;\n this.em.trigger(evAll, { event, page, options });\n },\n\n onLoad() {\n const { pages } = this;\n const opt = { silent: true };\n pages.add(this.config.pages || [], opt);\n const mainPage = !pages.length ? this.add({ type: typeMain }, opt) : this.getMain();\n this.select(mainPage, opt);\n },\n\n _onPageChange(m, page, opts) {\n const { em } = this;\n const lm = em.get('LayerManager');\n const mainComp = page.getMainComponent();\n lm && mainComp && lm.setRoot(mainComp);\n em.trigger(evPageSelect, page, m.previous('selected'));\n this.__onChange(chnSel, page, opts);\n },\n\n postLoad() {\n const { em, model } = this;\n const um = em.get('UndoManager');\n um && um.add(model);\n um && um.add(this.pages);\n },\n\n /**\n * Add new page\n * @param {Object} props Page properties\n * @param {Object} [opts] Options\n * @returns {[Page]}\n * @example\n * const newPage = pageManager.add({\n * id: 'new-page-id', // without an explicit ID, a random one will be created\n * styles: `.my-class { color: red }`, // or a JSON of styles\n * component: '
My element
', // or a JSON of components\n * });\n */\n add(props, opts = {}) {\n const { em } = this;\n props.id = props.id || this._createId();\n const add = () => {\n const page = this.pages.add(props, opts);\n opts.select && this.select(page);\n return page;\n };\n !opts.silent && em.trigger(evPageAddBefore, props, add, opts);\n return !opts.abort && add();\n },\n\n /**\n * Remove page\n * @param {String|[Page]} page Page or page id\n * @returns {[Page]} Removed Page\n * @example\n * const removedPage = pageManager.remove('page-id');\n * // or by passing the page\n * const somePage = pageManager.get('page-id');\n * pageManager.remove(somePage);\n */\n remove(page, opts = {}) {\n const { em } = this;\n const pg = isString(page) ? this.get(page) : page;\n const rm = () => {\n pg && this.pages.remove(pg, opts);\n return pg;\n };\n !opts.silent && em.trigger(evPageRemoveBefore, pg, rm, opts);\n return !opts.abort && rm();\n },\n\n /**\n * Get page by id\n * @param {String} id Page id\n * @returns {[Page]}\n * @example\n * const somePage = pageManager.get('page-id');\n */\n get(id) {\n return this.pages.filter(p => p.get('id') === id)[0];\n },\n\n /**\n * Get main page (the first one available)\n * @returns {[Page]}\n * @example\n * const mainPage = pageManager.getMain();\n */\n getMain() {\n const { pages } = this;\n return pages.filter(p => p.get('type') === typeMain)[0] || pages.at(0);\n },\n\n /**\n * Get all pages\n * @returns {Array<[Page]>}\n * @example\n * const arrayOfPages = pageManager.getAll();\n */\n getAll() {\n return [...this.pages.models];\n },\n\n /**\n * Get wrapper components (aka body) from all pages and frames.\n * @returns {Array<[Component]>}\n * @example\n * const wrappers = pageManager.getAllWrappers();\n * // Get all `image` components from the project\n * const allImages = wrappers.map(wrp => wrp.findType('image')).flat();\n */\n getAllWrappers() {\n const pages = this.getAll();\n return unique(flatten(pages.map(page => page.getAllFrames().map(frame => frame.getComponent()))));\n },\n\n getAllMap() {\n return this.getAll().reduce((acc, i) => {\n acc[i.get('id')] = i;\n return acc;\n }, {});\n },\n\n /**\n * Change the selected page. This will switch the page rendered in canvas\n * @param {String|[Page]} page Page or page id\n * @returns {this}\n * @example\n * pageManager.select('page-id');\n * // or by passing the page\n * const somePage = pageManager.get('page-id');\n * pageManager.select(somePage);\n */\n select(page, opts = {}) {\n const pg = isString(page) ? this.get(page) : page;\n if (pg) {\n this.em.trigger(evPageSelectBefore, pg, opts);\n this.model.set('selected', pg, opts);\n }\n return this;\n },\n\n /**\n * Get the selected page\n * @returns {[Page]}\n * @example\n * const selectedPage = pageManager.getSelected();\n */\n getSelected() {\n return this.model.get('selected');\n },\n\n destroy() {\n this.pages.off().reset();\n this.model.stopListening();\n this.model.clear({ silent: true });\n ['selected', 'config', 'em', 'pages', 'model'].map(i => (this[i] = 0));\n },\n\n store() {\n return this.getProjectData();\n },\n\n load(data) {\n return this.loadProjectData(data, { all: this.pages, reset: true });\n },\n\n _createId() {\n const pages = this.getAll();\n const len = pages.length + 16;\n const pagesMap = this.getAllMap();\n let id;\n\n do {\n id = createId(len);\n } while (pagesMap[id]);\n\n return id;\n },\n };\n};\n","const swv = 'sw-visibility';\nconst expt = 'export-template';\nconst osm = 'open-sm';\nconst otm = 'open-tm';\nconst ola = 'open-layers';\nconst obl = 'open-blocks';\nconst ful = 'fullscreen';\nconst prv = 'preview';\n\nexport default {\n stylePrefix: 'pn-',\n\n // Default panels fa-sliders for features\n defaults: [\n {\n id: 'commands',\n buttons: [{}]\n },\n {\n id: 'options',\n buttons: [\n {\n active: true,\n id: swv,\n className: 'fa fa-square-o',\n command: swv,\n context: swv,\n attributes: { title: 'View components' }\n },\n {\n id: prv,\n className: 'fa fa-eye',\n command: prv,\n context: prv,\n attributes: { title: 'Preview' }\n },\n {\n id: ful,\n className: 'fa fa-arrows-alt',\n command: ful,\n context: ful,\n attributes: { title: 'Fullscreen' }\n },\n {\n id: expt,\n className: 'fa fa-code',\n command: expt,\n attributes: { title: 'View code' }\n }\n ]\n },\n {\n id: 'views',\n buttons: [\n {\n id: osm,\n className: 'fa fa-paint-brush',\n command: osm,\n active: true,\n togglable: 0,\n attributes: { title: 'Open Style Manager' }\n },\n {\n id: otm,\n className: 'fa fa-cog',\n command: otm,\n togglable: 0,\n attributes: { title: 'Settings' }\n },\n {\n id: ola,\n className: 'fa fa-bars',\n command: ola,\n togglable: 0,\n attributes: { title: 'Open Layer Manager' }\n },\n {\n id: obl,\n className: 'fa fa-th-large',\n command: obl,\n togglable: 0,\n attributes: { title: 'Open Blocks' }\n }\n ]\n }\n ],\n\n // Editor model\n em: null,\n\n // Delay before show children buttons (in milliseconds)\n delayBtnsShow: 300\n};\n","import { Model } from '../../common';\nimport Buttons from './Buttons';\n\nexport default class Panel extends Model {\n defaults() {\n return {\n id: '',\n content: '',\n visible: true,\n buttons: [],\n attributes: {},\n };\n }\n\n initialize(options) {\n this.btn = this.get('buttons') || [];\n this.buttons = new Buttons(this.btn);\n this.set('buttons', this.buttons);\n }\n}\n","import { Collection } from '../../common';\nimport Panel from './Panel';\n\nexport default class Panels extends Collection {}\n\nPanels.prototype.model = Panel;\n","import { isString, isObject, isFunction } from 'underscore';\nimport { View } from '../../common';\n\nexport default class ButtonView extends View {\n tagName() {\n return this.model.get('tagName');\n }\n\n events() {\n return {\n click: 'clicked',\n };\n }\n\n initialize(o) {\n const { model } = this;\n const cls = model.get('className');\n const { command, listen } = model.attributes;\n const config = o.config || {};\n const { em } = config;\n this.config = config;\n this.em = em;\n const pfx = this.config.stylePrefix || '';\n const ppfx = this.config.pStylePrefix || '';\n this.pfx = pfx;\n this.ppfx = this.config.pStylePrefix || '';\n this.id = pfx + model.get('id');\n this.activeCls = `${pfx}active ${ppfx}four-color`;\n this.disableCls = `${ppfx}disabled`;\n this.btnsVisCls = `${pfx}visible`;\n this.className = pfx + 'btn' + (cls ? ' ' + cls : '');\n this.listenTo(model, 'change', this.render);\n this.listenTo(model, 'change:active updateActive', this.updateActive);\n this.listenTo(model, 'checkActive', this.checkActive);\n this.listenTo(model, 'change:bntsVis', this.updateBtnsVis);\n this.listenTo(model, 'change:attributes', this.updateAttributes);\n this.listenTo(model, 'change:className', this.updateClassName);\n this.listenTo(model, 'change:disable', this.updateDisable);\n\n if (em && isString(command) && listen) {\n const chnOpt = { fromListen: 1 };\n this.listenTo(em, `run:${command}`, () => model.set('active', true, chnOpt));\n this.listenTo(em, `stop:${command}`, () => model.set('active', false, chnOpt));\n }\n\n if (em && em.get) this.commands = em.get('Commands');\n }\n\n /**\n * Updates class name of the button\n *\n * @return void\n * */\n updateClassName() {\n const { model, pfx } = this;\n const cls = model.get('className');\n const attrCls = model.get('attributes').class;\n const classStr = `${attrCls ? attrCls : ''} ${pfx}btn ${cls ? cls : ''}`;\n this.$el.attr('class', classStr.trim());\n }\n\n /**\n * Updates attributes of the button\n *\n * @return void\n * */\n updateAttributes() {\n const { em, model, $el } = this;\n const attr = model.get('attributes') || {};\n const title = em && em.t && em.t(`panels.buttons.titles.${model.id}`);\n $el.attr(attr);\n title && $el.attr({ title });\n\n this.updateClassName();\n }\n\n /**\n * Updates visibility of children buttons\n *\n * @return void\n * */\n updateBtnsVis() {\n if (!this.$buttons) return;\n\n if (this.model.get('bntsVis')) this.$buttons.addClass(this.btnsVisCls);\n else this.$buttons.removeClass(this.btnsVisCls);\n }\n\n /**\n * Update active status of the button\n *\n * @return void\n * */\n updateActive(m, v, opts = {}) {\n const { model, commands, $el, activeCls } = this;\n const { fromCollection, fromListen } = opts;\n const context = model.get('context');\n const options = model.get('options');\n const commandName = model.get('command');\n let command = {};\n\n if (!commandName) return;\n\n if (commands && isString(commandName)) {\n command = commands.get(commandName) || {};\n } else if (isFunction(commandName)) {\n command = commands.create({ run: commandName });\n } else if (commandName !== null && isObject(commandName)) {\n command = commands.create(commandName);\n }\n\n if (model.get('active')) {\n !fromCollection && model.collection.deactivateAll(context, model);\n model.set('active', true, { silent: true }).trigger('checkActive');\n !fromListen && commands.runCommand(command, { ...options, sender: model });\n\n // Disable button if the command has no stop method\n command.noStop && model.set('active', false);\n } else {\n $el.removeClass(activeCls);\n !fromListen && commands.stopCommand(command, { ...options, sender: model, force: 1 });\n }\n }\n\n updateDisable() {\n const { disableCls, model } = this;\n const disable = model.get('disable');\n this.$el[disable ? 'addClass' : 'removeClass'](disableCls);\n }\n\n /**\n * Update active style status\n *\n * @return void\n * */\n checkActive() {\n const { model, $el, activeCls } = this;\n model.get('active') ? $el.addClass(activeCls) : $el.removeClass(activeCls);\n }\n\n /**\n * Triggered when button is clicked\n * @param {Object} e Event\n *\n * @return void\n * */\n clicked(e) {\n const { model } = this;\n\n if (model.get('bntsVis') || model.get('disable') || !model.get('command')) return;\n\n this.toggleActive();\n }\n\n toggleActive() {\n const { model, em } = this;\n const { active, togglable } = model.attributes;\n\n if (active && !togglable) return;\n\n model.set('active', !active);\n\n // If the stop is requested\n if (active) {\n if (model.get('runDefaultCommand')) em.runDefault();\n } else {\n if (model.get('stopDefaultCommand')) em.stopDefault();\n }\n }\n\n render() {\n const { model } = this;\n const label = model.get('label');\n const { $el } = this;\n !model.get('el') && $el.empty();\n this.updateAttributes();\n label && $el.append(label);\n this.checkActive();\n this.updateDisable();\n\n return this;\n }\n}\n","import { result } from 'underscore';\nimport { View } from '../../common';\nimport ButtonView from './ButtonView';\n\nexport default class ButtonsView extends View {\n initialize(o) {\n this.opt = o || {};\n this.config = this.opt.config || {};\n this.pfx = this.config.stylePrefix || '';\n this.parentM = this.opt.parentM || null;\n this.listenTo(this.collection, 'add', this.addTo);\n this.listenTo(this.collection, 'reset remove', this.render);\n this.className = this.pfx + 'buttons';\n }\n\n /**\n * Add to collection\n * @param Object Model\n *\n * @return Object\n * */\n addTo(model) {\n this.addToCollection(model);\n }\n\n /**\n * Add new object to collection\n * @param Object Model\n * @param Object Fragment collection\n *\n * @return Object Object created\n * */\n addToCollection(model, fragmentEl) {\n const fragment = fragmentEl || null;\n const viewObject = ButtonView;\n const el = model.get('el');\n const view = new viewObject({\n el,\n model,\n config: this.config,\n parentM: this.parentM,\n });\n const rendered = view.render().el;\n\n if (fragment) {\n fragment.appendChild(rendered);\n } else {\n this.$el.append(rendered);\n }\n\n return rendered;\n }\n\n render() {\n var fragment = document.createDocumentFragment();\n this.$el.empty();\n\n this.collection.each(function (model) {\n this.addToCollection(model, fragment);\n }, this);\n\n this.$el.append(fragment);\n this.$el.attr('class', result(this, 'className'));\n return this;\n }\n}\n","import { View } from '../../common';\nimport ButtonsView from './ButtonsView';\n\nexport default class PanelView extends View {\n initialize(o) {\n const config = o.config || {};\n const model = this.model;\n this.config = config;\n this.pfx = config.stylePrefix || '';\n this.ppfx = config.pStylePrefix || '';\n this.buttons = model.get('buttons');\n this.className = this.pfx + 'panel';\n this.id = this.pfx + model.get('id');\n this.listenTo(model, 'change:appendContent', this.appendContent);\n this.listenTo(model, 'change:content', this.updateContent);\n this.listenTo(model, 'change:visible', this.toggleVisible);\n model.view = this;\n }\n\n /**\n * Append content of the panel\n * */\n appendContent() {\n this.$el.append(this.model.get('appendContent'));\n }\n\n /**\n * Update content\n * */\n updateContent() {\n this.$el.html(this.model.get('content'));\n }\n\n toggleVisible() {\n if (!this.model.get('visible')) {\n this.$el.addClass(`${this.ppfx}hidden`);\n return;\n }\n this.$el.removeClass(`${this.ppfx}hidden`);\n }\n\n attributes() {\n return this.model.get('attributes');\n }\n\n initResize() {\n const em = this.config.em;\n const editor = em ? em.get('Editor') : '';\n const resizable = this.model.get('resizable');\n\n if (editor && resizable) {\n var resz = resizable === true ? [1, 1, 1, 1] : resizable;\n var resLen = resz.length;\n var tc,\n cr,\n bc,\n cl = 0;\n\n // Choose which sides of the panel are resizable\n if (resLen == 2) {\n tc = resz[0];\n bc = resz[0];\n cr = resz[1];\n cl = resz[1];\n } else if (resLen == 4) {\n tc = resz[0];\n cr = resz[1];\n bc = resz[2];\n cl = resz[3];\n }\n\n var resizer = editor.Utils.Resizer.init({\n tc,\n cr,\n bc,\n cl,\n tl: 0,\n tr: 0,\n bl: 0,\n br: 0,\n appendTo: this.el,\n silentFrames: 1,\n avoidContainerUpdate: 1,\n prefix: editor.getConfig().stylePrefix,\n onEnd() {\n em && em.trigger('change:canvasOffset');\n },\n posFetcher: (el, { target }) => {\n const style = el.style;\n const config = resizer.getConfig();\n const keyWidth = config.keyWidth;\n const keyHeight = config.keyHeight;\n const rect = el.getBoundingClientRect();\n const forContainer = target == 'container';\n const styleWidth = style[keyWidth];\n const styleHeight = style[keyHeight];\n const width = styleWidth && !forContainer ? parseFloat(styleWidth) : rect.width;\n const height = styleHeight && !forContainer ? parseFloat(styleHeight) : rect.height;\n return {\n left: 0,\n top: 0,\n width,\n height,\n };\n },\n ...resizable,\n });\n resizer.blur = () => {};\n resizer.focus(this.el);\n }\n }\n\n render() {\n const $el = this.$el;\n const ppfx = this.ppfx;\n const cls = `${this.className} ${this.id} ${ppfx}one-bg ${ppfx}two-color`;\n $el.addClass(cls);\n\n this.toggleVisible();\n\n if (this.buttons.length) {\n var buttons = new ButtonsView({\n collection: this.buttons,\n config: this.config,\n });\n $el.append(buttons.render().el);\n }\n\n $el.append(this.model.get('content'));\n return this;\n }\n}\n","import { View } from '../../common';\nimport PanelView from './PanelView';\n\nexport default class PanelsView extends View {\n initialize(o) {\n this.opt = o || {};\n this.config = this.opt.config || {};\n this.pfx = this.config.stylePrefix || '';\n const items = this.collection;\n this.listenTo(items, 'add', this.addTo);\n this.listenTo(items, 'reset', this.render);\n this.listenTo(items, 'remove', this.onRemove);\n this.className = this.pfx + 'panels';\n }\n\n onRemove(model) {\n const view = model.view;\n view && view.remove();\n }\n\n /**\n * Add to collection\n * @param Object Model\n *\n * @return Object\n * @private\n * */\n addTo(model) {\n this.addToCollection(model);\n }\n\n /**\n * Add new object to collection\n * @param Object Model\n * @param Object Fragment collection\n * @param integer Index of append\n *\n * @return Object Object created\n * @private\n * */\n addToCollection(model, fragmentEl) {\n const fragment = fragmentEl || null;\n const config = this.config;\n const el = model.get('el');\n const view = new PanelView({\n el,\n model,\n config,\n });\n const rendered = view.render().el;\n const appendTo = model.get('appendTo');\n\n // Do nothing if the panel was requested to be another element\n if (el) {\n } else if (appendTo) {\n var appendEl = document.querySelector(appendTo);\n appendEl.appendChild(rendered);\n } else {\n if (fragment) {\n fragment.appendChild(rendered);\n } else {\n this.$el.append(rendered);\n }\n }\n\n view.initResize();\n return rendered;\n }\n\n render() {\n const $el = this.$el;\n const frag = document.createDocumentFragment();\n $el.empty();\n this.collection.each(model => this.addToCollection(model, frag));\n $el.append(frag);\n $el.attr('class', this.className);\n return this;\n }\n}\n","/**\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/panels/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * panels: {\n * // options\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\n *\n * ```js\n * const panelManager = editor.Panels;\n * ```\n *\n * * [addPanel](#addpanel)\n * * [addButton](#addbutton)\n * * [getButton](#getbutton)\n * * [getPanel](#getpanel)\n * * [getPanels](#getpanels)\n * * [getPanelsEl](#getpanelsel)\n * * [removePanel](#removepanel)\n * * [removeButton](#removebutton)\n *\n * @module Panels\n */\nimport defaults from './config/config';\nimport Panel from './model/Panel';\nimport Panels from './model/Panels';\nimport PanelsView from './view/PanelsView';\n\nexport default () => {\n var c = {};\n var panels, PanelsViewObj;\n\n return {\n /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'Panels',\n\n /**\n * Initialize module. Automatically called with a new instance of the editor\n * @param {Object} config Configurations\n * @private\n */\n init(config) {\n c = config || {};\n for (var name in defaults) {\n if (!(name in c)) c[name] = defaults[name];\n }\n\n var ppfx = c.pStylePrefix;\n if (ppfx) c.stylePrefix = ppfx + c.stylePrefix;\n\n panels = new Panels(c.defaults);\n return this;\n },\n\n /**\n * Returns the collection of panels\n * @return {Collection} Collection of panel\n */\n getPanels() {\n return panels;\n },\n\n /**\n * Returns panels element\n * @return {HTMLElement}\n */\n getPanelsEl() {\n return PanelsViewObj && PanelsViewObj.el;\n },\n\n /**\n * Add new panel to the collection\n * @param {Object|Panel} panel Object with right properties or an instance of Panel\n * @return {Panel} Added panel. Useful in case passed argument was an Object\n * @example\n * var newPanel = panelManager.addPanel({\n * id: 'myNewPanel',\n * visible : true,\n * buttons : [...],\n * });\n */\n addPanel(panel) {\n return panels.add(panel);\n },\n\n /**\n * Remove a panel from the collection\n * @param {Object|Panel|String} panel Object with right properties or an instance of Panel or Painel id\n * @return {Panel} Removed panel. Useful in case passed argument was an Object\n * @example\n * const newPanel = panelManager.removePanel({\n * id: 'myNewPanel',\n * visible : true,\n * buttons : [...],\n * });\n *\n * const newPanel = panelManager.removePanel('myNewPanel');\n *\n */\n removePanel(panel) {\n return panels.remove(panel);\n },\n\n /**\n * Get panel by ID\n * @param {string} id Id string\n * @return {Panel|null}\n * @example\n * var myPanel = panelManager.getPanel('myNewPanel');\n */\n getPanel(id) {\n var res = panels.where({ id });\n return res.length ? res[0] : null;\n },\n\n /**\n * Add button to the panel\n * @param {string} panelId Panel's ID\n * @param {Object|Button} button Button object or instance of Button\n * @return {Button|null} Added button. Useful in case passed button was an Object\n * @example\n * var newButton = panelManager.addButton('myNewPanel',{\n * id: 'myNewButton',\n * className: 'someClass',\n * command: 'someCommand',\n * attributes: { title: 'Some title'},\n * active: false,\n * });\n * // It's also possible to pass the command as an object\n * // with .run and .stop methods\n * ...\n * command: {\n * run: function(editor) {\n * ...\n * },\n * stop: function(editor) {\n * ...\n * }\n * },\n * // Or simply like a function which will be evaluated as a single .run command\n * ...\n * command: function(editor) {\n * ...\n * }\n */\n addButton(panelId, button) {\n var pn = this.getPanel(panelId);\n return pn ? pn.get('buttons').add(button) : null;\n },\n\n /**\n * Remove button from the panel\n * @param {String} panelId Panel's ID\n * @param {String} buttonId Button's ID\n * @return {Button|null} Removed button.\n * @example\n * const removedButton = panelManager.addButton('myNewPanel',{\n * id: 'myNewButton',\n * className: 'someClass',\n * command: 'someCommand',\n * attributes: { title: 'Some title'},\n * active: false,\n * });\n *\n * const removedButton = panelManager.removeButton('myNewPanel', 'myNewButton');\n *\n */\n removeButton(panelId, button) {\n var pn = this.getPanel(panelId);\n return pn && pn.get('buttons').remove(button);\n },\n\n /**\n * Get button from the panel\n * @param {string} panelId Panel's ID\n * @param {string} id Button's ID\n * @return {Button|null}\n * @example\n * var button = panelManager.getButton('myPanel','myButton');\n */\n getButton(panelId, id) {\n var pn = this.getPanel(panelId);\n if (pn) {\n var res = pn.get('buttons').where({ id });\n return res.length ? res[0] : null;\n }\n return null;\n },\n\n /**\n * Render panels and buttons\n * @return {HTMLElement}\n * @private\n */\n render() {\n PanelsViewObj && PanelsViewObj.remove();\n PanelsViewObj = new PanelsView({\n collection: panels,\n config: c\n });\n return PanelsViewObj.render().el;\n },\n\n /**\n * Active activable buttons\n * @private\n */\n active() {\n this.getPanels().each(p => {\n p.get('buttons').each(btn => {\n btn.get('active') && btn.trigger('updateActive');\n });\n });\n },\n\n /**\n * Disable buttons flagged as disabled\n * @private\n */\n disableButtons() {\n this.getPanels().each(p => {\n p.get('buttons').each(btn => {\n if (btn.get('disable')) btn.trigger('change:disable');\n });\n });\n },\n\n destroy() {\n panels.reset();\n panels.stopListening();\n PanelsViewObj && PanelsViewObj.remove();\n [c, panels, PanelsViewObj].forEach(i => (i = {}));\n },\n\n Panel\n };\n};\n","import { Model } from '../../common';\n\nexport default class Button extends Model {\n defaults() {\n return {\n id: '',\n label: '',\n tagName: 'span',\n className: '',\n command: '',\n context: '',\n buttons: [],\n attributes: {},\n options: {},\n active: false,\n dragDrop: false,\n togglable: true,\n runDefaultCommand: true,\n stopDefaultCommand: false,\n disable: false,\n };\n }\n\n initialize(options) {\n if (this.get('buttons').length) {\n var Buttons = require('./Buttons').default;\n this.set('buttons', new Buttons(this.get('buttons')));\n }\n }\n}\n","import { Collection } from '../../common';\nimport Button from './Button';\n\nexport default class Buttons extends Collection {\n /**\n * Deactivate all buttons, except one passed\n * @param {Object} except Model to ignore\n * @param {Boolean} r Recursive flag\n *\n * @return void\n * */\n deactivateAllExceptOne(except, r) {\n this.forEach((model, index) => {\n if (model !== except) {\n model.set('active', false);\n if (r && model.get('buttons').length) model.get('buttons').deactivateAllExceptOne(except, r);\n }\n });\n }\n\n /**\n * Deactivate all buttons\n * @param {String} ctx Context string\n *\n * @return void\n * */\n deactivateAll(ctx, sender) {\n const context = ctx || '';\n this.forEach(model => {\n if (model.get('context') == context && model !== sender) {\n model.set('active', false, { fromCollection: 1 });\n }\n });\n }\n\n /**\n * Disables all buttons\n * @param {String} ctx Context string\n *\n * @return void\n * */\n disableAllButtons(ctx) {\n var context = ctx || '';\n this.forEach((model, index) => {\n if (model.get('context') == context) {\n model.set('disable', true);\n }\n });\n }\n\n /**\n * Disables all buttons, except one passed\n * @param {Object} except Model to ignore\n * @param {Boolean} r Recursive flag\n *\n * @return void\n * */\n disableAllButtonsExceptOne(except, r) {\n this.forEach((model, index) => {\n if (model !== except) {\n model.set('disable', true);\n if (r && model.get('buttons').length) model.get('buttons').disableAllButtonsExceptOne(except, r);\n }\n });\n }\n}\n\nButtons.prototype.model = Button;\n","export default {\n textTags: ['br', 'b', 'i', 'u', 'a', 'ul', 'ol'],\n\n // Custom CSS parser\n // @see https://grapesjs.com/docs/guides/Custom-CSS-parser.html\n parserCss: null,\n\n // Custom HTML parser\n // At the moment, the custom HTML parser should rely on DOM Node instance as the result\n // @example\n // The return should be an instance of an Node as the root to traverse\n // https://developer.mozilla.org/en-US/docs/Web/API/Node\n // parserHtml: (input, opts = {}) => (new DOMParser()).parseFromString(input, 'text/xml')\n // Here the result will be XMLDocument, which extends Node\n parserHtml: null,\n\n // Default HTML parser options (used in `parserModule.parseHtml(' tags\n allowScripts: false,\n\n // Allow unsafe HTML attributes (eg. `on*` inline event handlers)\n allowUnsafeAttr: false,\n },\n};\n","import { keys } from 'underscore';\n\n// At-rules\n// https://developer.mozilla.org/it/docs/Web/API/CSSRule#Type_constants\nconst atRules = {\n 4: 'media',\n 5: 'font-face',\n 6: 'page',\n 7: 'keyframes',\n 11: 'counter-style',\n 12: 'supports',\n 13: 'document',\n 14: 'font-feature-values',\n 15: 'viewport'\n};\nconst atRuleKeys = keys(atRules);\nconst singleAtRules = ['5', '6', '11', '15'];\nconst singleAtRulesNames = ['font-face', 'page', 'counter-style', 'viewport'];\n\n/**\n * Parse selector string to array.\n * Only classe based are valid as CSS rules inside editor, not valid\n * selectors will be dropped as additional\n * It's ok with the last part of the string as state (:hover, :active)\n * @param {string} str Selectors string\n * @return {Object}\n * @example\n * var res = parseSelector('.test1, .test1.test2, .test2 .test3');\n * console.log(res);\n * // {\n * //result: [['test1'], ['test1', 'test2']],\n * //add: ['.test2 .test3']\n * //}\n */\nexport const parseSelector = (str = '') => {\n const add = [];\n const result = [];\n const sels = str.split(',');\n\n for (var i = 0, len = sels.length; i < len; i++) {\n var sel = sels[i].trim();\n\n // Will accept only concatenated classes and last\n // class might be with state (eg. :hover), nothing else.\n // Can also accept SINGLE ID selectors, eg. `#myid`, `#myid:hover`\n // Composed are not valid: `#myid.some-class`, `#myid.some-class:hover`\n if (\n /^(\\.{1}[\\w\\-]+)+(:{1,2}[\\w\\-()]+)?$/gi.test(sel) ||\n /^(#{1}[\\w\\-]+){1}(:{1,2}[\\w\\-()]+)?$/gi.test(sel)\n ) {\n var cls = sel.split('.').filter(Boolean);\n result.push(cls);\n } else {\n add.push(sel);\n }\n }\n\n return {\n result,\n add\n };\n};\n\n/**\n * Parse style declarations of the node\n * @param {CSSRule} node\n * @return {Object}\n */\nexport const parseStyle = node => {\n const stl = node.style;\n const style = {};\n\n for (var i = 0, len = stl.length; i < len; i++) {\n const propName = stl[i];\n const propValue = stl.getPropertyValue(propName);\n const important = stl.getPropertyPriority(propName);\n style[propName] = `${propValue}${important ? ` !${important}` : ''}`;\n }\n\n return style;\n};\n\n/**\n * Get the condition when possible\n * @param {CSSRule} node\n * @return {string}\n */\nexport const parseCondition = node => {\n const condition =\n node.conditionText ||\n (node.media && node.media.mediaText) ||\n node.name ||\n node.selectorText ||\n '';\n return condition.trim();\n};\n\n/**\n * Create node for the editor\n * @param {Array} selectors Array containing strings of classes\n * @param {Object} style Key-value object of style declarations\n * @return {Object}\n */\nexport const createNode = (selectors, style = {}, opts = {}) => {\n const node = {};\n const selLen = selectors.length;\n const lastClass = selectors[selLen - 1];\n const stateArr = lastClass ? lastClass.split(/:(.+)/) : [];\n const state = stateArr[1];\n const { atRule, selectorsAdd, mediaText } = opts;\n const singleAtRule = singleAtRulesNames.indexOf(atRule) >= 0;\n singleAtRule && (node.singleAtRule = 1);\n atRule && (node.atRuleType = atRule);\n selectorsAdd && (node.selectorsAdd = selectorsAdd);\n mediaText && (node.mediaText = mediaText);\n\n // Isolate the state from selectors\n if (state) {\n selectors[selLen - 1] = stateArr[0];\n node.state = state;\n stateArr.splice(stateArr.length - 1, 1);\n }\n\n node.selectors = selectors;\n node.style = style;\n\n return node;\n};\n\n/**\n * Fetch data from node\n * @param {StyleSheet|CSSRule} el\n * @return {Array}\n */\nexport const parseNode = el => {\n var result = [];\n var nodes = el.cssRules || [];\n\n for (var i = 0, len = nodes.length; i < len; i++) {\n const node = nodes[i];\n const type = node.type.toString();\n let singleAtRule = 0;\n let atRuleType = '';\n let condition = '';\n // keyText is for CSSKeyframeRule\n let sels = node.selectorText || node.keyText;\n const isSingleAtRule = singleAtRules.indexOf(type) >= 0;\n\n // Check if the node is an at-rule\n if (isSingleAtRule) {\n singleAtRule = 1;\n atRuleType = atRules[type];\n condition = parseCondition(node);\n } else if (atRuleKeys.indexOf(type) >= 0) {\n var subRules = parseNode(node);\n condition = parseCondition(node);\n\n for (var s = 0, lens = subRules.length; s < lens; s++) {\n var subRule = subRules[s];\n condition && (subRule.mediaText = condition);\n subRule.atRuleType = atRules[type];\n }\n result = result.concat(subRules);\n }\n\n if (!sels && !isSingleAtRule) continue;\n const style = parseStyle(node);\n const selsParsed = parseSelector(sels);\n const selsAdd = selsParsed.add;\n sels = selsParsed.result;\n\n let lastRule;\n // For each group of selectors\n for (var k = 0, len3 = sels.length; k < len3; k++) {\n const model = createNode(sels[k], style, {\n atRule: atRules[type]\n });\n result.push(model);\n lastRule = model;\n }\n\n // Need to push somewhere not class-based selectors, if some rule was\n // created will push them there, otherwise will create a new rule\n if (selsAdd.length) {\n var selsAddStr = selsAdd.join(', ');\n if (lastRule) {\n lastRule.selectorsAdd = selsAddStr;\n } else {\n const model = {\n selectors: [],\n selectorsAdd: selsAddStr,\n style\n };\n singleAtRule && (model.singleAtRule = singleAtRule);\n atRuleType && (model.atRuleType = atRuleType);\n condition && (model.mediaText = condition);\n result.push(model);\n }\n }\n }\n\n return result;\n};\n\n/**\n * Parse CSS string and return the array of objects\n * @param {String} str CSS string\n * @return {Array} Array of objects for the definition of CSSRules\n */\nexport default str => {\n const el = document.createElement('style');\n el.innerHTML = str;\n\n // There is no .sheet before adding it to the \n document.head.appendChild(el);\n const sheet = el.sheet;\n document.head.removeChild(el);\n\n return parseNode(sheet);\n};\n","import { isString } from 'underscore';\nimport BrowserCssParser, {\n parseSelector,\n createNode\n} from './BrowserParserCss';\n\nexport default (config = {}) => ({\n /**\n * Parse CSS string to a desired model object\n * @param {String} str CSS string\n * @return {Array}\n */\n parse(str) {\n let result = [];\n const { parserCss, em } = config;\n const editor = em && em.get && em.get('Editor');\n const nodes = parserCss ? parserCss(str, editor) : BrowserCssParser(str);\n nodes.forEach(node => (result = result.concat(this.checkNode(node))));\n em && em.trigger('parse:css', { input: str, output: result });\n\n return result;\n },\n\n /**\n * Check the returned node from a custom parser and transforms it to\n * a valid object for the CSS composer\n * @return {[type]}\n */\n checkNode(node) {\n const { selectors, style } = node;\n\n if (isString(selectors)) {\n const nodes = [];\n const selsParsed = parseSelector(selectors);\n const classSets = selsParsed.result;\n const selectorsAdd = selsParsed.add.join(', ');\n const opts = {\n atRule: node.atRule,\n mediaText: node.params\n };\n\n if (classSets.length) {\n classSets.forEach(classSet => {\n nodes.push(createNode(classSet, style, opts));\n });\n } else {\n nodes.push(createNode([], style, opts));\n }\n\n if (selectorsAdd) {\n const lastNode = nodes[nodes.length - 1];\n lastNode.selectorsAdd = selectorsAdd;\n }\n\n node = nodes;\n }\n\n return node;\n }\n});\n","/**\n * You can customize the initial state of the module from the editor initialization, by passing the following [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/parser/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * parser: {\n * // options\n * }\n * })\n * ```\n *\n * Once the editor is instantiated you can use its API. Before using these methods you should get the module from the instance\n *\n * ```js\n * const { Parser } = editor;\n * ```\n * ## Available Events\n * * `parse:html` - On HTML parse, an object containing the input and the output of the parser is passed as an argument\n * * `parse:css` - On CSS parse, an object containing the input and the output of the parser is passed as an argument\n *\n * ## Methods\n * * [getConfig](#getconfig)\n * * [parseHtml](#parsehtml)\n * * [parseCss](#parsecss)\n *\n * @module Parser\n */\nimport defaults from './config/config';\nimport parserCss from './model/ParserCss';\nimport parserHtml from './model/ParserHtml';\n\nexport default () => {\n let conf = {};\n let pHtml, pCss;\n\n return {\n compTypes: '',\n\n parserCss: null,\n\n parserHtml: null,\n\n name: 'Parser',\n\n init(config = {}) {\n conf = { ...defaults, ...config };\n conf.Parser = this;\n pHtml = new parserHtml(conf);\n pCss = new parserCss(conf);\n this.em = conf.em;\n this.parserCss = pCss;\n this.parserHtml = pHtml;\n return this;\n },\n\n /**\n * Get the configuration object\n * @returns {Object} Configuration object\n * @example\n * console.log(Parser.getConfig())\n */\n getConfig() {\n return conf;\n },\n\n /**\n * Parse HTML string and return the object containing the Component Definition\n * @param {String} input HTML string to parse\n * @param {Object} [options] Options\n * @param {String} [options.htmlType] [HTML mime type](https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02) to parse\n * @param {Boolean} [options.allowScripts=false] Allow `` : '';\n return html;\n }\n\n /**\n * Returns CSS built inside canvas\n * @param {Object} [opts={}] Options\n * @returns {string} CSS string\n * @private\n */\n getCss(opts = {}) {\n const config = this.config;\n const { optsCss } = config;\n const avoidProt = opts.avoidProtected;\n const keepUnusedStyles = !isUndefined(opts.keepUnusedStyles) ? opts.keepUnusedStyles : config.keepUnusedStyles;\n const cssc = this.get('CssComposer');\n const wrp = opts.component || this.get('DomComponents').getComponent();\n const protCss = !avoidProt ? config.protectedCss : '';\n const css =\n wrp &&\n this.get('CodeManager').getCode(wrp, 'css', {\n cssc,\n keepUnusedStyles,\n ...optsCss,\n ...opts,\n });\n return wrp ? (opts.json ? css : protCss + css) : '';\n }\n\n /**\n * Returns JS of all components\n * @return {string} JS string\n * @private\n */\n getJs(opts = {}) {\n var wrp = opts.component || this.get('DomComponents').getWrapper();\n return wrp ? this.get('CodeManager').getCode(wrp, 'js').trim() : '';\n }\n\n /**\n * Store data to the current storage.\n * @private\n */\n async store(options) {\n const data = this.storeData();\n await this.get('StorageManager').store(data, options);\n this.clearDirtyCount();\n return data;\n }\n\n /**\n * Load data from the current storage.\n * @private\n */\n async load(options) {\n const result = await this.get('StorageManager').load(options);\n this.loadData(result);\n return result;\n }\n\n storeData() {\n let result = {};\n // Sync content if there is an active RTE\n const editingCmp = this.getEditing();\n editingCmp && editingCmp.trigger('sync:content', { noCount: true });\n\n this.get('storables').forEach(m => {\n result = { ...result, ...m.store(1) };\n });\n return JSON.parse(JSON.stringify(result));\n }\n\n loadData(data = {}) {\n this.get('storables').forEach(module => module.load(data));\n return data;\n }\n\n /**\n * Returns device model by name\n * @return {Device|null}\n * @private\n */\n getDeviceModel() {\n var name = this.get('device');\n return this.get('DeviceManager').get(name);\n }\n\n /**\n * Run default command if setted\n * @param {Object} [opts={}] Options\n * @private\n */\n runDefault(opts = {}) {\n var command = this.get('Commands').get(this.config.defaultCommand);\n if (!command || this.defaultRunning) return;\n command.stop(this, this, opts);\n command.run(this, this, opts);\n this.defaultRunning = 1;\n }\n\n /**\n * Stop default command\n * @param {Object} [opts={}] Options\n * @private\n */\n stopDefault(opts = {}) {\n const commands = this.get('Commands');\n const command = commands.get(this.config.defaultCommand);\n if (!command || !this.defaultRunning) return;\n command.stop(this, this, opts);\n this.defaultRunning = 0;\n }\n\n /**\n * Update canvas dimensions and refresh data useful for tools positioning\n * @private\n */\n refreshCanvas(opts = {}) {\n this.set('canvasOffset', null);\n this.set('canvasOffset', this.get('Canvas').getOffset());\n opts.tools && this.trigger('canvas:updateTools');\n }\n\n /**\n * Clear all selected stuf inside the window, sometimes is useful to call before\n * doing some dragging opearation\n * @param {Window} win If not passed the current one will be used\n * @private\n */\n clearSelection(win) {\n var w = win || window;\n w.getSelection().removeAllRanges();\n }\n\n /**\n * Get the current media text\n * @return {string}\n */\n getCurrentMedia() {\n const config = this.config;\n const device = this.getDeviceModel();\n const condition = config.mediaCondition;\n const preview = config.devicePreviewMode;\n const width = device && device.get('widthMedia');\n return device && width && !preview ? `(${condition}: ${width})` : '';\n }\n\n /**\n * Return the component wrapper\n * @return {Component}\n */\n getWrapper() {\n return this.get('DomComponents').getWrapper();\n }\n\n setCurrentFrame(frameView) {\n return this.set('currentFrame', frameView);\n }\n\n getCurrentFrame() {\n return this.get('currentFrame');\n }\n\n getCurrentFrameModel() {\n return (this.getCurrentFrame() || {}).model;\n }\n\n getIcon(icon) {\n const icons = this.getConfig('icons') || {};\n return icons[icon] || '';\n }\n\n /**\n * Return the count of changes made to the content and not yet stored.\n * This count resets at any `store()`\n * @return {number}\n */\n getDirtyCount() {\n return this.get('changesCount');\n }\n\n clearDirtyCount() {\n return this.set('changesCount', 0);\n }\n\n getZoomDecimal() {\n return this.get('Canvas').getZoomDecimal();\n }\n\n getZoomMultiplier() {\n return this.get('Canvas').getZoomMultiplier();\n }\n\n setDragMode(value) {\n return this.set('dmode', value);\n }\n\n t(...args) {\n const i18n = this.get('I18n');\n return i18n?.t(...args);\n }\n\n /**\n * Returns true if the editor is in absolute mode\n * @returns {Boolean}\n */\n inAbsoluteMode() {\n return this.get('dmode') === 'absolute';\n }\n\n /**\n * Destroy editor\n */\n destroyAll() {\n const { config, view } = this;\n const editor = this.getEditor();\n const { editors = [] } = config.grapesjs || {};\n const shallow = this.get('shallow');\n shallow?.destroyAll();\n this.stopListening();\n this.stopDefault();\n this.get('modules')\n .slice()\n .reverse()\n .forEach(mod => mod.destroy());\n view && view.remove();\n this.clear({ silent: true });\n this.destroyed = 1;\n ['config', 'view', '_previousAttributes', '_events', '_listeners'].forEach(i => (this[i] = {}));\n editors.splice(editors.indexOf(editor), 1);\n hasWin() && $(config.el).empty().attr(this.attrsOrig);\n }\n\n getEditing() {\n const res = this.get('editing');\n return (res && res.model) || null;\n }\n\n setEditing(value) {\n this.set('editing', value);\n return this;\n }\n\n isEditing() {\n return !!this.get('editing');\n }\n\n log(msg, opts = {}) {\n const { ns, level = 'debug' } = opts;\n this.trigger('log', msg, opts);\n level && this.trigger(`log:${level}`, msg, opts);\n\n if (ns) {\n const logNs = `log-${ns}`;\n this.trigger(logNs, msg, opts);\n level && this.trigger(`${logNs}:${level}`, msg, opts);\n }\n }\n\n logInfo(msg, opts) {\n this.log(msg, { ...opts, level: 'info' });\n }\n\n logWarning(msg, opts) {\n this.log(msg, { ...opts, level: 'warning' });\n }\n\n logError(msg, opts) {\n this.log(msg, { ...opts, level: 'error' });\n }\n\n initBaseColorPicker(el, opts = {}) {\n const config = this.getConfig();\n const { colorPicker = {} } = config;\n const elToAppend = config.el;\n const ppfx = config.stylePrefix;\n\n return $(el).spectrum({\n containerClassName: `${ppfx}one-bg ${ppfx}two-color`,\n appendTo: elToAppend || 'body',\n maxSelectionSize: 8,\n showPalette: true,\n palette: [],\n showAlpha: true,\n chooseText: 'Ok',\n cancelText: '⨯',\n ...opts,\n ...colorPicker,\n });\n }\n\n /**\n * Execute actions without triggering the storage and undo manager.\n * @param {Function} clb\n * @private\n */\n skip(clb) {\n this.__skip = true;\n const um = this.get('UndoManager');\n um ? um.skip(clb) : clb();\n this.__skip = false;\n }\n\n /**\n * Set/get data from the HTMLElement\n * @param {HTMLElement} el\n * @param {string} name Data name\n * @param {any} value Date value\n * @return {any}\n * @private\n */\n data(el, name, value) {\n const varName = '_gjs-data';\n\n if (!el[varName]) {\n el[varName] = {};\n }\n\n if (isUndefined(value)) {\n return el[varName][name];\n } else {\n el[varName][name] = value;\n }\n }\n}\n","import { isObject } from 'underscore';\n\nexport default ({ $ }) => {\n if ($ && $.prototype && $.prototype.constructor.name !== 'jQuery') {\n const fn = $.fn;\n\n // Additional helpers\n\n fn.hide = function () {\n return this.css('display', 'none');\n };\n\n fn.show = function () {\n return this.css('display', 'block');\n };\n\n fn.focus = function () {\n const el = this.get(0);\n el && el.focus();\n return this;\n };\n\n // For SVGs in IE\n // (fn.removeClass = function(c) {\n // if (!arguments.length) {\n // return this.attr('class', '');\n // }\n // const classes = isString(c) && c.match(/\\S+/g);\n // return classes\n // ? this.each(function(el) {\n // each(classes, function(c) {\n // if (el.classList) {\n // el.classList.remove(c);\n // } else {\n // const val = el.className;\n // const bval = el.className.baseVal;\n\n // if (!isUndefined(bval)) {\n // val.baseVal = bval.replace(c, '');\n // } else {\n // el.className = val.replace(c, '');\n // }\n // }\n // });\n // })\n // : this;\n // }),\n // (fn.remove = function() {\n // return this.each(node => {\n // return node.parentNode && node.parentNode.removeChild(node);\n // });\n // }),\n\n // For spectrum compatibility\n\n fn.bind = function (ev, h) {\n return this.on(ev, h);\n };\n\n fn.unbind = function (ev, h) {\n if (isObject(ev)) {\n for (let name in ev) {\n ev.hasOwnProperty(name) && this.off(name, ev[name]);\n }\n\n return this;\n } else {\n return this.off(ev, h);\n }\n };\n\n fn.click = function (h) {\n return h ? this.on('click', h) : this.trigger('click');\n };\n\n fn.change = function (h) {\n return h ? this.on('change', h) : this.trigger('change');\n };\n\n fn.keydown = function (h) {\n return h ? this.on('keydown', h) : this.trigger('keydown');\n };\n\n fn.delegate = function (selector, events, data, handler) {\n if (!handler) {\n handler = data;\n }\n\n return this.on(events, selector, function (e) {\n e.data = data;\n handler(e);\n });\n };\n\n fn.scrollLeft = function () {\n let el = this.get(0);\n el = el.nodeType == 9 ? el.defaultView : el;\n let win = el instanceof Window ? el : null;\n return win ? win.pageXOffset : el.scrollLeft || 0;\n };\n\n fn.scrollTop = function () {\n let el = this.get(0);\n el = el.nodeType == 9 ? el.defaultView : el;\n let win = el instanceof Window ? el : null;\n return win ? win.pageYOffset : el.scrollTop || 0;\n };\n\n const offset = $.prototype.offset;\n fn.offset = function (coords) {\n let top, left;\n\n if (coords) {\n top = coords.top;\n left = coords.left;\n }\n\n if (typeof top != 'undefined') {\n this.css('top', `${top}px`);\n }\n if (typeof left != 'undefined') {\n this.css('left', `${left}px`);\n }\n\n return offset.call(this);\n };\n\n $.map = function (items, clb) {\n const ar = [];\n\n for (var i = 0; i < items.length; i++) {\n ar.push(clb(items[i], i));\n }\n\n return ar;\n };\n\n const indexOf = Array.prototype.indexOf;\n\n $.inArray = function (val, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, val, i);\n };\n\n $.Event = function (src, props) {\n if (!(this instanceof $.Event)) {\n return new $.Event(src, props);\n }\n\n this.type = src;\n this.isDefaultPrevented = () => false;\n };\n }\n};\n","import Backbone from 'backbone';\nimport { View } from '../../common';\nimport { appendStyles } from '../../utils/mixins';\n\nconst $ = Backbone.$;\n\nexport default class EditorView extends View {\n initialize() {\n const { model } = this;\n const { Panels, UndoManager } = model.attributes;\n model.view = this;\n model.once('change:ready', () => {\n Panels.active();\n Panels.disableButtons();\n UndoManager.clear();\n setTimeout(() => {\n model.trigger('load', model.get('Editor'));\n model.clearDirtyCount();\n });\n });\n }\n\n render() {\n const { $el, model } = this;\n const { Panels, Canvas, modules } = model.attributes;\n const conf = model.getConfig();\n const pfx = conf.stylePrefix;\n const contEl = $(conf.el || `body ${conf.container}`);\n appendStyles(conf.cssIcons, { unique: 1, prepand: 1 });\n $el.empty();\n\n if (conf.width) contEl.css('width', conf.width);\n if (conf.height) contEl.css('height', conf.height);\n\n $el.append(Canvas.render());\n $el.append(Panels.render());\n\n // Load shallow editor\n const shallow = model.get('shallow');\n const shallowCanvasEl = shallow.get('Canvas').render();\n shallowCanvasEl.style.display = 'none';\n $el.append(shallowCanvasEl);\n\n $el.attr('class', `${pfx}editor ${pfx}one-bg ${pfx}two-color`);\n contEl.addClass(`${pfx}editor-cont`).empty().append($el);\n modules.forEach(md => md.postRender && md.postRender(this));\n\n return this;\n }\n}\n","/**\n * Editor contains the top level API which you'll probably use to customize the editor or extend it with plugins.\n * You get the Editor instance on init method and you can pass options via its [Configuration Object](https://github.com/artf/grapesjs/blob/master/src/editor/config/config.js)\n *\n * ```js\n * const editor = grapesjs.init({\n * // options\n * });\n * ```\n *\n * ## Available Events\n *\n * You can make use of available events in this way\n * ```js\n * editor.on('EVENT-NAME', (some, argument) => {\n * // do something\n * })\n * ```\n *\n * * `update` - The structure of the template is updated (its HTML/CSS)\n * * `undo` - Undo executed\n * * `redo` - Redo executed\n * * `load` - Editor is loaded\n *\n * ### Components\n * Check the [Components](/api/components.html) module.\n * ### Keymaps\n * Check the [Keymaps](/api/keymaps.html) module.\n * ### Style Manager\n * Check the [Style Manager](/api/style_manager.html) module.\n * ### Storage\n * Check the [Storage](/api/storage_manager.html) module.\n * ### Canvas\n * Check the [Canvas](/api/canvas.html) module.\n * ### RTE\n * Check the [Rich Text Editor](/api/rich_text_editor.html) module.\n * ### Commands\n * Check the [Commands](/api/commands.html) module.\n * ### Selectors\n * Check the [Selectors](/api/selector_manager.html) module.\n * ### Blocks\n * Check the [Blocks](/api/block_manager.html) module.\n * ### Assets\n * Check the [Assets](/api/assets.html) module.\n * ### Modal\n * Check the [Modal](/api/modal_dialog.html) module.\n * ### Devices\n * Check the [Devices](/api/device_manager.html) module.\n * ### Parser\n * Check the [Parser](/api/parser.html) module.\n * ### Pages\n * Check the [Pages](/api/pages.html) module.\n *\n * ## Methods\n * @module Editor\n */\nimport html from '../utils/html';\nimport defaults from './config/config';\nimport EditorModel from './model/Editor';\nimport EditorView from './view/EditorView';\n\nexport default (config = {}, opts = {}) => {\n const { $ } = opts;\n let c = {\n ...defaults,\n ...config,\n };\n\n c.pStylePrefix = c.stylePrefix;\n let em = new EditorModel(c);\n let editorView;\n\n return {\n $,\n\n /**\n * @property {EditorModel}\n * @private\n */\n editor: em,\n\n modules: [],\n\n /**\n * Initialize editor model\n * @return {this}\n * @private\n */\n init(opts = {}) {\n em.init(this, { ...c, ...opts });\n\n this.modules = [\n 'I18n',\n 'Utils',\n 'Config',\n 'Commands',\n 'Keymaps',\n 'Modal',\n 'Panels',\n 'Canvas',\n 'Parser',\n 'CodeManager',\n 'UndoManager',\n 'RichTextEditor',\n ['Pages', 'PageManager'],\n 'DomComponents',\n ['Components', 'DomComponents'],\n 'LayerManager',\n ['Layers', 'LayerManager'],\n 'CssComposer',\n ['Css', 'CssComposer'],\n 'StorageManager',\n ['Storage', 'StorageManager'],\n 'AssetManager',\n ['Assets', 'AssetManager'],\n 'BlockManager',\n ['Blocks', 'BlockManager'],\n 'TraitManager',\n ['Traits', 'TraitManager'],\n 'SelectorManager',\n ['Selectors', 'SelectorManager'],\n 'StyleManager',\n ['Styles', 'StyleManager'],\n 'DeviceManager',\n ['Devices', 'DeviceManager'],\n ];\n\n this.modules.forEach(prop => {\n if (Array.isArray(prop)) {\n this[prop[0]] = em.get(prop[1]);\n } else {\n this[prop] = em.get(prop);\n }\n });\n\n return this;\n },\n\n /**\n * Returns configuration object\n * @param {string} [prop] Property name\n * @returns {any} Returns the configuration object or\n * the value of the specified property\n */\n getConfig(prop) {\n return em.getConfig(prop);\n },\n\n /**\n * Returns HTML built inside canvas\n * @param {Object} [opts={}] Options\n * @param {Component} [opts.component] Return the HTML of a specific Component\n * @param {Boolean} [opts.cleanId=false] Remove unnecessary IDs (eg. those created automatically)\n * @returns {string} HTML string\n */\n getHtml(opts) {\n return em.getHtml(opts);\n },\n\n /**\n * Returns CSS built inside canvas\n * @param {Object} [opts={}] Options\n * @param {Component} [opts.component] Return the CSS of a specific Component\n * @param {Boolean} [opts.json=false] Return an array of CssRules instead of the CSS string\n * @param {Boolean} [opts.avoidProtected=false] Don't include protected CSS\n * @param {Boolean} [opts.onlyMatched=false] Return only rules matched by the passed component.\n * @param {Boolean} [opts.keepUnusedStyles=false] Force keep all defined rules. Toggle on in case output looks different inside/outside of the editor.\n * @returns {String|Array} CSS string or array of CssRules\n */\n getCss(opts) {\n return em.getCss(opts);\n },\n\n /**\n * Returns JS of all components\n * @param {Object} [opts={}] Options\n * @param {Component} [opts.component] Get the JS of a specific component\n * @returns {String} JS string\n */\n getJs(opts) {\n return em.getJs(opts);\n },\n\n /**\n * Return the complete tree of components. Use `getWrapper` to include also the wrapper\n * @return {Components}\n */\n getComponents() {\n return em.get('DomComponents').getComponents();\n },\n\n /**\n * Return the wrapper and its all components\n * @return {Component}\n */\n getWrapper() {\n return em.get('DomComponents').getWrapper();\n },\n\n /**\n * Set components inside editor's canvas. This method overrides actual components\n * @param {Array|Object|string} components HTML string or components model\n * @param {Object} opt the options object to be used by the [setComponents]{@link em#setComponents} method\n * @return {this}\n * @example\n * editor.setComponents('
New component
');\n * // or\n * editor.setComponents({\n * type: 'text',\n * classes:['cls'],\n * content: 'New component'\n * });\n */\n setComponents(components, opt = {}) {\n em.setComponents(components, opt);\n return this;\n },\n\n /**\n * Add components\n * @param {Array|Object|string} components HTML string or components model\n * @param {Object} opts Options\n * @param {Boolean} [opts.avoidUpdateStyle=false] If the HTML string contains styles,\n * by default, they will be created and, if already exist, updated. When this option\n * is true, styles already created will not be updated.\n * @return {Array}\n * @example\n * editor.addComponents('
New component
');\n * // or\n * editor.addComponents({\n * type: 'text',\n * classes:['cls'],\n * content: 'New component'\n * });\n */\n addComponents(components, opts) {\n return this.getWrapper().append(components, opts);\n },\n\n /**\n * Returns style in JSON format object\n * @return {Object}\n */\n getStyle() {\n return em.get('CssComposer').getAll();\n },\n\n /**\n * Set style inside editor's canvas. This method overrides actual style\n * @param {Array|Object|string} style CSS string or style model\n * @return {this}\n * @example\n * editor.setStyle('.cls{color: red}');\n * //or\n * editor.setStyle({\n * selectors: ['cls'],\n * style: { color: 'red' }\n * });\n */\n setStyle(style, opt = {}) {\n em.setStyle(style, opt);\n return this;\n },\n\n /**\n * Add styles to the editor\n * @param {Array|Object|string} style CSS string or style model\n * @returns {Array} Array of created CssRule instances\n * @example\n * editor.addStyle('.cls{color: red}');\n */\n addStyle(style, opts = {}) {\n return em.addStyle(style, opts);\n },\n\n /**\n * Returns the last selected component, if there is one\n * @return {Model}\n */\n getSelected() {\n return em.getSelected();\n },\n\n /**\n * Returns an array of all selected components\n * @return {Array}\n */\n getSelectedAll() {\n return em.getSelectedAll();\n },\n\n /**\n * Get a stylable entity from the selected component.\n * If you select a component without classes the entity is the Component\n * itself and all changes will go inside its 'style' attribute. Otherwise,\n * if the selected component has one or more classes, the function will\n * return the corresponding CSS Rule\n * @return {Model}\n */\n getSelectedToStyle() {\n let selected = em.getSelected();\n\n if (selected) {\n return this.StyleManager.getModelToStyle(selected);\n }\n },\n\n /**\n * Select a component\n * @param {Component|HTMLElement} el Component to select\n * @param {Object} [opts] Options\n * @param {Boolean} [opts.scroll] Scroll canvas to the selected element\n * @return {this}\n * @example\n * // Select dropped block\n * editor.on('block:drag:stop', function(model) {\n * editor.select(model);\n * });\n */\n select(el, opts) {\n em.setSelected(el, opts);\n return this;\n },\n\n /**\n * Add component to selection\n * @param {Component|HTMLElement|Array} el Component to select\n * @return {this}\n * @example\n * editor.selectAdd(model);\n */\n selectAdd(el) {\n em.addSelected(el);\n return this;\n },\n\n /**\n * Remove component from selection\n * @param {Component|HTMLElement|Array} el Component to select\n * @return {this}\n * @example\n * editor.selectRemove(model);\n */\n selectRemove(el) {\n em.removeSelected(el);\n return this;\n },\n\n /**\n * Toggle component selection\n * @param {Component|HTMLElement|Array} el Component to select\n * @return {this}\n * @example\n * editor.selectToggle(model);\n */\n selectToggle(el) {\n em.toggleSelected(el);\n return this;\n },\n\n /**\n * Returns, if active, the Component enabled in rich text editing mode.\n * @returns {Component|null}\n * @example\n * const textComp = editor.getEditing();\n * if (textComp) {\n * console.log('HTML: ', textComp.toHTML());\n * }\n */\n getEditing() {\n return em.getEditing();\n },\n\n /**\n * Set device to the editor. If the device exists it will\n * change the canvas to the proper width\n * @param {string} name Name of the device\n * @return {this}\n * @example\n * editor.setDevice('Tablet');\n */\n setDevice(name) {\n em.set('device', name);\n return this;\n },\n\n /**\n * Return the actual active device\n * @return {string} Device name\n * @example\n * var device = editor.getDevice();\n * console.log(device);\n * // 'Tablet'\n */\n getDevice() {\n return em.get('device');\n },\n\n /**\n * Execute command\n * @param {string} id Command ID\n * @param {Object} options Custom options\n * @return {*} The return is defined by the command\n * @example\n * editor.runCommand('myCommand', {someValue: 1});\n */\n runCommand(id, options = {}) {\n return em.get('Commands').run(id, options);\n },\n\n /**\n * Stop the command if stop method was provided\n * @param {string} id Command ID\n * @param {Object} options Custom options\n * @return {*} The return is defined by the command\n * @example\n * editor.stopCommand('myCommand', {someValue: 1});\n */\n stopCommand(id, options = {}) {\n return em.get('Commands').stop(id, options);\n },\n\n /**\n * Store data to the current storage.\n * This will reset the counter of changes (`editor.getDirtyCount()`).\n * @param {Object} [options] Storage options.\n * @returns {Object} Stored data.\n * @example\n * const storedData = await editor.store();\n */\n async store(options) {\n return await em.store(options);\n },\n\n /**\n * Load data from the current storage.\n * @param {Object} [options] Storage options.\n * @returns {Object} Loaded data.\n * @example\n * const data = await editor.load();\n */\n async load(options) {\n return await em.load(options);\n },\n\n /**\n * Get the JSON project data, which could be stored and loaded back with `editor.loadProjectData(json)`\n * @returns {Object}\n * @example\n * console.log(editor.getProjectData());\n * // { pages: [...], styles: [...], ... }\n */\n getProjectData() {\n return em.storeData();\n },\n\n /**\n * Load data from the JSON project\n * @param {Object} data Project to load\n * @example\n * editor.loadProjectData({ pages: [...], styles: [...], ... })\n */\n loadProjectData(data) {\n return em.loadData(data);\n },\n\n storeData() {\n return em.storeData();\n },\n\n loadData(data) {\n return em.loadData(data);\n },\n\n /**\n * Returns container element. The one which was indicated as 'container'\n * on init method\n * @return {HTMLElement}\n */\n getContainer() {\n return c.el;\n },\n\n /**\n * Return the count of changes made to the content and not yet stored.\n * This count resets at any `store()`\n * @return {number}\n */\n getDirtyCount() {\n return em.getDirtyCount();\n },\n\n /**\n * Reset the counter of changes.\n */\n clearDirtyCount() {\n return em.clearDirtyCount();\n },\n\n /**\n * Update editor dimension offsets\n *\n * This method could be useful when you update, for example, some position\n * of the editor element (eg. canvas, panels, etc.) with CSS, where without\n * refresh you'll get misleading position of tools\n * @param {Object} [options] Options\n * @param {Boolean} [options.tools=false] Update the position of tools (eg. rich text editor, component highlighter, etc.)\n */\n refresh(opts) {\n em.refreshCanvas(opts);\n },\n\n /**\n * Replace the built-in Rich Text Editor with a custom one.\n * @param {Object} obj Custom RTE Interface\n * @example\n * editor.setCustomRte({\n * // Function for enabling custom RTE\n * // el is the HTMLElement of the double clicked Text Component\n * // rte is the same instance you have returned the first time you call\n * // enable(). This is useful if need to check if the RTE is already enabled so\n * // ion this case you'll need to return the RTE and the end of the function\n * enable: function(el, rte) {\n * rte = new MyCustomRte(el, {}); // this depends on the Custom RTE API\n * ...\n * return rte; // return the RTE instance\n * },\n *\n * // Disable the editor, called for example when you unfocus the Text Component\n * disable: function(el, rte) {\n * rte.blur(); // this depends on the Custom RTE API\n * }\n *\n * // Called when the Text Component is focused again. If you returned the RTE instance\n * // from the enable function, the enable won't be called again instead will call focus,\n * // in this case to avoid double binding of the editor\n * focus: function (el, rte) {\n * rte.focus(); // this depends on the Custom RTE API\n * }\n * });\n */\n setCustomRte(obj) {\n this.RichTextEditor.customRte = obj;\n },\n\n /**\n * Replace the default CSS parser with a custom one.\n * The parser function receives a CSS string as a parameter and expects\n * an array of CSSRule objects as a result. If you need to remove the\n * custom parser, pass `null` as the argument\n * @param {Function|null} parser Parser function\n * @return {this}\n * @example\n * editor.setCustomParserCss(css => {\n * const result = [];\n * // ... parse the CSS string\n * result.push({\n * selectors: '.someclass, div .otherclass',\n * style: { color: 'red' }\n * })\n * // ...\n * return result;\n * });\n */\n setCustomParserCss(parser) {\n this.Parser.getConfig().parserCss = parser;\n return this;\n },\n\n /**\n * Change the global drag mode of components.\n * To get more about this feature read: https://github.com/artf/grapesjs/issues/1936\n * @param {String} value Drag mode, options: 'absolute' | 'translate'\n * @returns {this}\n */\n setDragMode(value) {\n em.setDragMode(value);\n return this;\n },\n\n /**\n * Trigger event log message\n * @param {*} msg Message to log\n * @param {Object} [opts={}] Custom options\n * @param {String} [opts.ns=''] Namespace of the log (eg. to use in plugins)\n * @param {String} [opts.level='debug'] Level of the log, `debug`, `info`, `warning`, `error`\n * @return {this}\n * @example\n * editor.log('Something done!', { ns: 'from-plugin-x', level: 'info' });\n * // This will trigger following events\n * // `log`, `log:info`, `log-from-plugin-x`, `log-from-plugin-x:info`\n * // Callbacks of those events will always receive the message and\n * // options, as arguments, eg:\n * // editor.on('log:info', (msg, opts) => console.info(msg, opts))\n */\n log(msg, opts = {}) {\n em.log(msg, opts);\n return this;\n },\n\n /**\n * Translate label\n * @param {String} key Label to translate\n * @param {Object} [opts] Options for the translation\n * @param {Object} [opts.params] Params for the translation\n * @param {Boolean} [opts.noWarn] Avoid warnings in case of missing resources\n * @returns {String}\n * @example\n * editor.t('msg');\n * // use params\n * editor.t('msg2', { params: { test: 'hello' } });\n * // custom local\n * editor.t('msg2', { params: { test: 'hello' }, l: 'it' });\n */\n t(...args) {\n return em.t(...args);\n },\n\n /**\n * Attach event\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @return {this}\n */\n on(event, callback) {\n em.on(event, callback);\n return this;\n },\n\n /**\n * Attach event and detach it after the first run\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @return {this}\n */\n once(event, callback) {\n em.once(event, callback);\n return this;\n },\n\n /**\n * Detach event\n * @param {string} event Event name\n * @param {Function} callback Callback function\n * @return {this}\n */\n off(event, callback) {\n em.off(event, callback);\n return this;\n },\n\n /**\n * Trigger event\n * @param {string} event Event to trigger\n * @return {this}\n */\n trigger(event) {\n em.trigger.apply(em, arguments);\n return this;\n },\n\n /**\n * Destroy the editor\n */\n destroy() {\n if (!em) return;\n em.destroyAll();\n this.modules.forEach(prop => {\n if (Array.isArray(prop)) {\n this[prop[0]] = 0;\n } else {\n this[prop] = 0;\n }\n });\n this.modules = 0;\n editorView = 0;\n em = 0;\n c = 0;\n },\n\n /**\n * Returns editor element\n * @return {HTMLElement}\n * @private\n */\n getEl() {\n return editorView && editorView.el;\n },\n\n /**\n * Returns editor model\n * @return {Model}\n * @private\n */\n getModel() {\n return em;\n },\n\n /**\n * Render editor\n * @return {HTMLElement}\n */\n render() {\n editorView && editorView.remove();\n editorView = new EditorView({\n model: em,\n config: c,\n });\n return editorView.render().el;\n },\n\n /**\n * Trigger a callback once the editor is loaded and rendered.\n * The callback will be executed immediately if the method is called on the already rendered editor.\n * @param {Function} clb Callback to trigger\n * @example\n * editor.onReady(() => {\n * // perform actions\n * });\n */\n onReady(clb) {\n em.get('ready') ? clb(this) : em.on('load', clb);\n },\n\n /**\n * Print safe HTML by using ES6 tagged template strings.\n * @param {Array} literals\n * @param {Array} substs\n * @returns {String}\n * @example\n * const unsafeStr = '';\n * const safeStr = 'Hello';\n * // Use `$${var}` to avoid escaping\n * const strHtml = editor.html`Escaped ${unsafeStr}, unescaped $${safeStr}`;\n */\n html,\n };\n};\n","export default {\n plugins: []\n};\n","/**\n * File made for IE/Edge support\n * https://github.com/artf/grapesjs/issues/214\n */\nimport { hasWin } from './mixins';\n\nexport default () => {\n /**\n * Check if IE/Edge\n * @return {Boolean}\n */\n const isIE = () => {\n let match;\n const agent = window.navigator.userAgent;\n const rules = [\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/]\n ];\n\n for (let i = 0; i < rules.length; i++) {\n const rule = rules[i];\n match = rule[1].exec(agent);\n if (match) break;\n }\n\n return !!match;\n };\n\n if (hasWin() && isIE()) {\n const originalCreateHTMLDocument =\n DOMImplementation.prototype.createHTMLDocument;\n DOMImplementation.prototype.createHTMLDocument = title => {\n if (!title) title = '';\n return originalCreateHTMLDocument.apply(document.implementation, [title]);\n };\n }\n};\n","import { isElement, isFunction } from 'underscore';\nimport $ from './utils/cash-dom';\nimport Editor from './editor';\nimport polyfills from './utils/polyfills';\nimport { getGlobal } from './utils/mixins';\nimport PluginManager from './plugin_manager';\n\npolyfills();\n\nconst plugins = new PluginManager();\nconst editors = [];\nconst defaultConfig = {\n // If true renders editor on init\n autorender: 1,\n\n // Array of plugins to init\n plugins: [],\n\n // Custom options for plugins\n pluginsOpts: {},\n};\n\nexport default {\n $,\n\n editors,\n\n plugins,\n\n // Will be replaced on build\n version: __GJS_VERSION__,\n\n /**\n * Initialize the editor with passed options\n * @param {Object} config Configuration object\n * @param {string|HTMLElement} config.container Selector which indicates where render the editor\n * @param {Boolean} [config.autorender=true] If true, auto-render the content\n * @param {Array} [config.plugins=[]] Array of plugins to execute on start\n * @param {Object} [config.pluginsOpts={}] Custom options for plugins\n * @param {Boolean} [config.headless=false] Init headless editor\n * @return {Editor} Editor instance\n * @example\n * var editor = grapesjs.init({\n * container: '#myeditor',\n * components: '
Hello world
',\n * style: '.hello{color: red}',\n * })\n */\n init(config = {}) {\n const { headless } = config;\n const els = config.container;\n if (!els && !headless) throw new Error(\"'container' is required\");\n config = { ...defaultConfig, ...config, grapesjs: this };\n config.el = !headless && (isElement(els) ? els : document.querySelector(els));\n const editor = new Editor(config, { $ }).init();\n const em = editor.getModel();\n\n // Load plugins\n config.plugins.forEach(pluginId => {\n let plugin = isFunction(pluginId) ? pluginId : plugins.get(pluginId);\n const plgOptions = config.pluginsOpts[pluginId] || {};\n\n // Try to search in global context\n if (!plugin) {\n const wplg = getGlobal()[pluginId];\n plugin = wplg?.default || wplg;\n }\n\n if (plugin) {\n plugin(editor, plgOptions);\n } else if (isFunction(pluginId)) {\n pluginId(editor, plgOptions);\n } else {\n em.logWarning(`Plugin ${pluginId} not found`, {\n context: 'plugins',\n plugin: pluginId,\n });\n }\n });\n\n // Execute `onLoad` on modules once all plugins are initialized.\n // A plugin might have extended/added some custom type so this\n // is a good point to load stuff like components, css rules, etc.\n em.loadOnStart();\n config.autorender && !headless && editor.render();\n editors.push(editor);\n\n return editor;\n },\n};\n","import defaults from './config/config';\n\nexport default config => {\n var c = config || {};\n\n // Set default options\n for (var name in defaults) {\n if (!(name in c)) c[name] = defaults[name];\n }\n\n var plugins = {};\n\n return {\n /**\n * Add new plugin. Plugins could not be overwritten\n * @param {string} id Plugin ID\n * @param {Function} plugin Function which contains all plugin logic\n * @return {Function} The plugin function\n * @example\n * PluginManager.add('some-plugin', function(editor){\n * editor.Commands.add('new-command', {\n * run: function(editor, senderBtn){\n * console.log('Executed new-command');\n * }\n * })\n * });\n */\n add(id, plugin) {\n if (plugins[id]) {\n return plugins[id];\n }\n\n plugins[id] = plugin;\n return plugin;\n },\n\n /**\n * Returns plugin by ID\n * @param {string} id Plugin ID\n * @return {Function|undefined} Plugin\n * @example\n * var plugin = PluginManager.get('some-plugin');\n * plugin(editor);\n */\n get(id) {\n return plugins[id];\n },\n\n /**\n * Returns object with all plugins\n * @return {Object}\n */\n getAll() {\n return plugins;\n }\n };\n};\n"],"names":["root","factory","exports","module","define","amd","globalThis","window","this","getConfig","name","__getConfig","getProjectData","data","obj","key","storageKey","getAll","loadProjectData","all","onResult","reset","opts","action","coll","result","JSON","parse","err","__logWarn","input","isDef","length","clear","res","config","array","models","getAllMap","reduce","acc","i","get","idAttribute","__initConfig","def","conf","deepMerge","em","cls","__initListen","events","on","m","c","o","trigger","add","remove","p","update","changedAttributes","__catchAllEvent","concat","collections","propagate","forEach","entity","event","ev","model","opt","map","md","__remove","isString","rm","silent","removeBefore","abort","options","__onAllEvent","__appendTo","elTo","appendTo","el","isElement","document","querySelector","appendChild","render","str","logWarning","_createId","id","len","ln","allMap","createId","__listenAdd","__listenRemove","__listenUpdate","__destroy","stopListening","view","assets","noAssets","stylePrefix","upload","uploadName","headers","params","credentials","multiUpload","autoAdd","customFetch","uploadFile","embedAsBase64","handleAdd","beforeUpload","showUrlInput","custom","dropzone","openAssetsOnDrop","dropzoneContent","Asset","type","src","split","pop","shift","getFilename","Model","prototype","getDefaults","AssetImage","unitDim","height","width","AssetView","collection","pfx","ppfx","pStylePrefix","className","listenTo","init","bind","am","__getBehaviour","getPreview","getInfo","target","set","clone","innerHTML","template","View","AssetImageView","html","unit","dim","select","__getBhv","onClick","$el","addClass","isFunction","updateTarget","onDblClick","onSelect","close","e","stopImmediatePropagation","click","dblclick","Assets","Collection","TypeableCollection","types","isType","value","AssetsView","form","t","renderAssets","addToAsset","removedAsset","deselectAll","preventDefault","getAddInput","url","trim","getAssetsEl","scrollTop","globalCollection","at","inputUrl","toggleNoAssets","addAsset","fragmentEl","fragment","rendered","typeView","assetsEl","insertBefore","firstChild","hide","find","empty","append","removeClass","createDocumentFragment","each","fuRendered","fu","submit","FileUploaderView","title","uploadId","disabled","undefined","disableUpload","constructor","delegateEvents","__propEv","val","console","error","onUploadEnd","text","clb","json","files","dataTransfer","body","FormData","param","reqHead","onUploadStart","fetchOpts","method","fetch","then","status","Promise","reject","onUploadResponse","catch","onUploadError","that","uploadForm","ondragover","ondragleave","ondrop","addedCls","edEl","editor","frameEl","getBody","updatedCls","dropzoneCls","cleanEditorElCls","replace","onDragOver","onDragLeave","onDrop","stopPropagation","getSelected","runCommand","Modal","AssetManager","setTarget","item","initDrop","attr","response","FileReader","promises","mimeTypeMatcher","file","promise","resolve","reader","addEventListener","match","exec","image","Image","readAsDataURL","push","Error","evAll","evPfx","evSelect","evUpdate","evAdd","evRemove","evRemoveBefore","evCustom","evOpen","evClose","evUpload","evUploadStart","evUploadEnd","evUploadError","evUploadRes","assetsVis","assetCmd","Module","open","uploadStart","uploadEnd","uploadError","uploadResponse","defaults","getAllVisible","debounce","__trgCustom","container","__customData","bhv","isOpen","asset","complete","cmd","run","stop","isActive","where","store","load","getContainer","assts","toRender","__viewParams","FileUploader","addType","definition","getType","getTypes","FileUpload","onLoad","postRender","editorView","initDropzone","f","func","__behaviour","_bhv","destroy","appendOnClick","blocks","Block","label","content","media","category","activate","resetId","disable","attributes","ctg","Blocks","Category","Categories","BlockView","mousedown","dragstart","drag","dragend","endDrag","getEditor","insertAt","sorter","getSorter","selected","setDropContent","validTarget","getEl","valid","parent","components","indexOf","wrapper","getWrapper","setSelected","scroll","button","draggable","refreshCanvas","setDragHelper","startSort","__getModule","__startDrag","__drag","__endDrag","off","moved","endMove","class","clsAdd","textContent","setAttribute","hasDnd","prefix","CategoryView","caretR","caretD","iconClass","activeClass","updateVisibility","getIconEl","getBlocksEl","style","display","iconEl","blocksEl","css","order","BlocksView","bindAll","categories","renderedCategories","noCatClass","blockContClass","catsClass","addTo","tac","grabbingCls","canvas","utils","Sorter","placer","getPlacerEl","containerSel","itemSel","onStart","onDrag","onEndMove","onMove","getFrameEl","contentDocument","direction","wmargin","nested","canvasRelative","stopDefault","runDefault","oldActive","unset","frag","ignoreCategories","isObject","catModel","catId","catView","getCategoriesEl","catsEl","evDrag","evDragStart","evDragStop","blocksVisible","blocksView","dragStart","dragEnd","bm","block","startDrag","dragStop","cancel","getContent","_dragBlock","dragResult","dragContent","cmp","oldKey","toActive","toSelect","first","isArray","onAll","__getFrameViews","getFrames","frame","fv","droppable","startCustom","endCustom","props","prp","getCategories","external","updateConfig","colls","scripts","styles","customBadgeLabel","autoscrollLimit","extHl","notTextable","Canvas","frames","rulers","zoom","x","y","Frames","onZoomChange","updateDevice","evPageSelect","_pageUpdated","mainPage","getMain","getMainFrame","page","prev","device","getDeviceModel","getCurrentFrameModel","noUndo","Droppable","rootEl","getComponent","els","Array","counter","toggleEffects","enable","methods","handleDragEnter","handleDragOver","handleDrop","handleDragLeave","doc","ownerDocument","defaultView","frameElement","sortOpts","onEnd","customTarget","elementFromPoint","clientX","clientY","__customTglEff","over","endDrop","updateCounter","dt","inAbsoluteMode","dragger","guidesInfo","center","comp","cancelled","getStyle","left","top","position","addStyle","handleDragEnd","cnt","preserveSelected","getContentByData","border","getData","alt","href","FrameView","allowfullscreen","tools","frameView","showGlobalTools","cvModel","getCanvasModel","updateHead","renderStyles","setViewEl","headEl","getHead","toRemove","toAdd","current","previous","attrStr","Object","keys","sort","join","items","stack","tag","some","s","stl","parentNode","removeChild","appendVNodes","getModel","contentWindow","getDoc","jsContainer","createEl","frameWrapView","elTools","getGlobalToolsEl","_getTool","rect","getBoundingClientRect","scrollLeft","offsetHeight","offsetWidth","offsetTop","offsetLeft","scrollBottom","scrollRight","toolsEl","getToolsEl","wrp","_toggleEffects","arguments","lastMaxHeight","setTimeout","_toggleAutoscrollFx","requestAnimationFrame","autoscroll","dragging","lastClientY","win","getWindow","actualTop","limitTop","limitBottom","getRect","nextTop","isUndefined","opacity","scrollTo","getPointerEvent","getZoomDecimal","mt","updateClientY","stopAutoscroll","renderScripts","evLoad","evOpts","appendScript","scriptEl","onerror","onload","head","renderBody","normalize","stls","rel","prevStyles","_isEditor","baseCss","canvasCss","protectedCss","component","CssRulesView","getStyles","getJsContainer","tagName","dispatchEvent","createCustomEvent","motionsEv","_emitUpdate","_emitUpdated","FrameWrapView","canvasView","cv","classAnim","updateOffset","updateSize","frameLoaded","updatePos","setupDragger","dragX","dragY","toggleFramesEvents","Dragger","getZoomMultiplier","setPosition","posOpts","start","removeEl","__clear","isNaN","updateDim","__handleSize","noChanges","isNull","onscroll","onScroll","currW","currH","newW","newH","isNumber","onRender","twrp","toolsWrapper","elTop","elRight","elBottom","elLeft","frameWrapperView","timerZoom","FramesView","DomainViews","itemView","CanvasView","wheel","_initFrames","clearOff","checkSelected","updateFrames","_onFramesUpdate","toggleListeners","_renderFrames","once","currFrame","views","_getFrame","scrollIntoView","_parentEvent","fn","onKeyPress","getKeyChar","isInputFocused","ctrlKey","metaKey","delta","Math","max","min","wheelDelta","detail","getZoom","defOpts","mpl","framesArea","transform","clearTimeout","elem","getElement","getElRect","frameRect","getFrameOffset","rTop","rLeft","docBody","noScroll","frmOff","cvsOff","winEl","frEl","offset","getCanvasOffset","eo","frmTop","avoidFrameOffset","frmLeft","isTextNode","getComputedStyle","parseFloat","bEl","fo","co","getId","scriptContainer","script","createElement","scriptFn","getScriptString","scriptFnStr","scriptProps","stringify","__getScriptProps","scr","getFrameView","ready","frms","listenToLoad","mainFrame","setCurrentFrame","$frames","toolsWrp","hlEl","badgeEl","placerEl","ghostEl","toolbarEl","resizerEl","offsetEl","fixedOffsetEl","toolsGlobEl","getUiClass","getCanvasView","startAutoscroll","getFrame","index","getFramesEl","getDocument","_getCompFrame","compView","_getLocalEl","globalEl","getHighlighter","getBadgeEl","getGhostEl","getToolbarEl","getResizerEl","getOffsetViewerEl","getFixedOffsetViewerEl","getOffset","frameOff","canvasOff","setCustomBadgeLabel","getElementPos","getElementOffsets","getPosition","topScroll","leftScroll","getTargetToElementDim","element","canvasPos","pos","elPos","toRight","targetHeight","targetWidth","eventToTrigger","leftPos","topPos","elementTop","elementLeft","elementWidth","elementHeight","canvasTop","canvasLeft","canvasWidth","canvasHeight","canvasRectOffset","getFrameElFromDoc","rectOff","side","getTargetToElementFixed","elToMove","cvOff","toolbarH","toolbarW","frCvOff","frameOffset","fullHeight","elIsShort","canvasOffsetTop","canvasOffsetLeft","getMouseRelativePos","addTop","addLeft","subWinOffset","parentWindow","yOffset","pageYOffset","xOffset","pageXOffset","getMouseRelativeCanvas","hasFocus","toIgnore","focused","activeElement","matches","getViewEl","fr","getCurrentFrame","setZoom","setCoords","getCoords","pointerEvents","addFrame","keyAutoW","keyAutoH","Frame","changesCount","_undo","_undoexc","domc","allRules","idMap","modOpts","isComponent","Wrapper","idMapKeys","sel","selectors","sSel","idSel","prevId","substring","temporary","noCount","avoidStore","setHead","filter","getHeadByAttr","splice","addHeadItem","removeHeadByAttr","fromUndo","prop","isEmpty","onReset","onRemove","previousModels","removed","loadedItems","itemsToLoad","listenToLoadItems","itemLoaded","inlineCss","HTMLGenerator","htmlOpts","cleanId","rules","idRules","toJSON","rule","sels","isId","mod","attrs","toHTML","JsonGenerator","beforeEach","v","build","CodeMirror","JsGenerator","code","comps","extend","scrStr","scrProps","mapJs","ids","mapType","mapModel","toString","hasWin","require","CodeMirrorEditor","codeName","theme","readOnly","lineNumbers","fromTextArea","dragDrop","lineWrapping","mode","onChange","refresh","focus","ed","getValue","setValue","autoFormatRange","commands","selectAll","getCursor","goDocStart","noRefresh","EditorView","generators","defGenerators","viewers","defViewers","defaultViewer","gHtml","gCss","gJson","js","gJs","eCM","loadDefaultGenerators","loadDefaultViewers","addGenerator","generator","getGenerator","getGenerators","addViewer","viewer","getViewer","getViewers","createViewer","cont","txtarea","setElement","updateViewer","setContent","getCode","genId","maxValue","Number","MAX_VALUE","getMediaLength","mediaQuery","CssGenerator","compCls","avoidInline","styleToString","classes","getFullName","buildFromModel","cssc","codeJson","clearStyles","atRules","dump","onlyMatched","matchedRules","atRule","getAtRule","mRules","buildFromRule","sortMediaObject","rulesStr","ruleStr","r","found","selectorStrNoAdd","selectorsToString","skipAdd","selectorsAdd","singleAtRule","selector","keepUnusedStyles","getDeclaration","__cleanSelector","itemsArr","a","b","isMobFirst","every","mquery","right","getQueryLength","getKey","q","strict","commandsDef","defaultCommands","active","CommandAbstract","k","sender","selAll","getSelectedAll","nativeDrag","defComOptions","modes","hideTlb","altMode","includes","eventDrag","emitUpdate","setDragImage","cmdMove","Commands","onEndMoveFromModel","initSorterFromModels","UndoManager","undo","redo","oldCmd","default","cmdName","args","loadDefaultCommands","noStop","initialize","command","cmdObj","has","stopCommand","getActive","hasOwnProperty","force","callRun","callStop","create","DomComponents","CssComposer","canvasModel","toggleMove","disableDragger","onKeyUp","enableDragger","toggleDragger","methodCls","getCanvas","classList","methodEv","methodsEv","editorModel","hoverClass","badgeClass","plhClass","freezClass","Boolean","evName","guidesStatic","guidesTarget","setupGuides","isTran","guidesContainer","getGuidesContainer","getGuidesTarget","getGuidesStatic","drg","setOptions","toggleDrag","getEventOpts","guides","guide","guidesEl","elInfoX","elInfoY","guideContent","elGuideInfoX","elGuideInfoY","elGuideInfoContentX","elGuideInfoContentY","updateGuides","debug","renderGuide","children","getElementGuides","lastEl","lastPos","origin","getGuidePosUpdate","originRect","un","guideSize","numEl","getTranslate","axis","itemStr","toUpperCase","setTranslate","end","en","styleUp","adds","_getDragData","relPos","parentRel","pStyle","offsetP","renderGuideInfo","hideGuidesInfo","rectOrigin","isY","origEdge1","origEdge1Raw","origEdge2","origEdge2Raw","elGuideInfo","elGuideInfoCnt","guideInfoStyle","stat","statEdge2","gap","isEdge1","statEdge1","statEdge1Raw","statEdge2Raw","posFirst","posSecond","pos2","size","sizeRaw","round","matched","next","snd","incr","getChildAt","wrappers","Pages","getAllWrappers","flatten","findType","$","Backbone","SelectComponent","mouseover","startDelete","mouseout","stopDelete","onDelete","$this","attachBadge","badge","removeBadge","clean","updateBadgeLabel","getName","modal","cm","CodeManager","$editors","oHtmlEd","buildEditor","oCsslEd","htmlEditor","cssEditor","textViewCode","getHtml","getCss","codeMirror","isEnabled","d","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","warn","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","fsChanged","removeEventListener","targetEl","SelectPosition","noSelClass","getHighlighterEl","wp","$wrapper","initSorter","toggleClipboard","cacheEl","startSelectPosition","stopSelectComponent","getContentWindow","rollback","initSorterFromModel","lastModel","toMove","onMoveClb","which","keyCode","$badge","getBadge","$hl","unbind","onceClose","accept","modalTitle","uploadEl","firstRender","pn","Panels","getPanel","addPanel","lm","LayerManager","layers","panels","$cn","trgEvCnt","$cn2","dvm","DeviceManager","showDevices","devicePanel","dvEl","slm","SelectorManager","slmConfig","sm","StyleManager","smConfig","$header","pnCnt","panel","toggleSm","show","Config","tm","TraitManager","confTm","toggleTm","clp","added","addOpts","copyable","cop","contains","cmdVis","getPanels","preventDrag","tglEffects","mthEv","tlb","elP","querySelectorAll","shouldRunSwVisibility","editorEl","helper","onclick","canvasS","padding","margin","posFetcher","mousePosFetcher","canvasResizer","forceNew","Utils","Resizer","blur","handleClick","calibrated","execCommand","ToolbarView","ToolbarButtonView","ToolbarButton","showOffsets","adjScroll","startSelectComponent","toggleSelectComponent","listenToEl","onFrameUpdated","onContainerChange","onHovered","updateGlobalPos","_upToolbar","updateAttached","onHover","onOut","onFrameScroll","trg","isDoc","currentDoc","setHovered","useValid","updateLocalPos","updateToolsLocal","elHovered","toggleToolsEl","currentFrame","getView","isVisible","elSelected","updateToolsGlobal","initResize","getElSelected","getElHovered","showElementOffset","hideElementOffset","showFixedElementOffset","state","hideFixedElementOffset","hideHighlighter","isEditing","isChildOf","updateBadge","posOnly","icon","getIcon","clsBadge","customeLabel","badgeLabel","bStyle","targetToElem","leftOff","showHighlighter","modelToStyle","resizeClass","isTaggableNode","resizable","toggleBodyClass","docs","resizer","keyHeight","keyWidth","currentUnit","keepAutoHeight","keepAutoWidth","getModelToStyle","computedStyle","modelStyle","currentWidth","autoWidth","currentHeight","autoHeight","startDim","w","h","unitHeight","getUnitFromValue","unitWidth","selectedHandler","onlyHeight","onlyWidth","bodyw","updateEvent","eventToListen","noEmit","updateToolbar","toolbarStyle","toolbar","showToolbar","Toolbar","toolbarView","updateToolbarPos","getCanvasPosition","updateTools","isCompSelected","isHoverEn","isNewEl","lastHovered","badgeOpts","topOff","_trgToolUp","lastSelected","hideBadge","cleanPrevious","isPointed","scale","getOffsetDim","stopSelectPosition","posTargetCollection","posIndex","posMethod","cDim","posIsLastEl","posTargetEl","outsideElem","posTargetModel","nearFloat","dims","isLast","getOffsetMethod","showOffsetsSelected","stateVar","offsetViewer","marginT","marginB","marginL","marginR","padT","padB","padL","padR","childNodes","stateLow","toLowerCase","marginName","paddingName","marginV","paddingV","paddingEls","fullMargName","fullPadName","marginLeftSt","marginLeft","marginRightSt","marginRight","marginTopSt","marginTop","marginBottomSt","marginBottom","mtStyle","mbStyle","mlStyle","mrStyle","ptStyle","pbStyle","plStyle","prStyle","posLeft","widthEl","marginSideH","marginSideT","padTop","paddingTop","padBot","paddingBottom","padSideH","padSideT","paddingLeft","padRight","paddingRight","toggleVis","mth","_upFrame","_onFramesChange","onBeforeStyle","CSS","CssRule","mediaText","stylable","atRuleType","important","group","shallow","ensureSelectors","__onChange","changed","isEmptyObj","changesUp","toListen","getSelectors","Selectors","condition","typeStr","addSelector","selOpts","escape","getFullString","stateStr","skipState","allowEmpty","devices","getDevices","deviceDefault","getWidthMedia","stateValue","getStates","sngl","cmpId","getById","__p","ruleProps","st","wd","selAdd","a1","a2","a1S","slice","a2S","Styleable","CssRules","onAdd","parseCss","rulesView","elStyle","postLoad","um","slc","singleSel","node","parserCss","checkNode","compare","addCollection","l","sl","newSels","j","le","selec","modelExists","updateStyle","avoidUpdateStyle","styleUpdate","addRules","setRule","atRuleParams","setStyle","getRule","getRules","setIdRule","getCurrentMedia","Selector","getIdRule","setClassRule","getClassRule","getComponentRules","getSelectorsString","CssRuleView","toCSS","CssGroupRuleView","createTextNode","getBlockId","addToCollection","renderStarted","atRuleEl","styleEl","appendData","clsName","defaultBlockId","blockId","getMediaWidth","contRules","prs","pluck","pr","unshift","widthMedia","Device","priority","checkUnit","Devices","DevicesView","change","startAdd","updateSelect","devEl","devicesEl","getOptions","evSelectBefore","evAddBefore","chnSel","dv","_onSelect","deviceId","newDevice","draggableComponents","processor","voidElements","ComponentWrapperView","ComponentView","Component","columns","rows","rowsToAdd","columnsToAdd","clm","ComponentTableBody","svgAttrs","void","editable","highlightable","ratioDefault","traits","fallback","initToolbar","hasButtonBool","tb","getAttrToHTML","getSrcResult","substr","btoa","isDefaultSrc","parseUri","uri","query","qrs","search","pair","decodeURIComponent","hostname","pathname","protocol","hash","port","mapUrl","address","frameborder","OComponent","placeholder","changeProp","parseFromSrc","updateSrc","getMapUrl","addr","qr","z","test","classEmpty","fetchFile","modelOpt","srcExists","addAttributes","onActive","getSrc","onError","noDrag","renderAttributes","getIframe","iframe","ifrm","frameBorder","updateClasses","ComponentText","ComponentLink","textTags","child","nodeType","compProt","apply","updateContentText","syncContent","rte","fromDisable","disableEditing","canActivate","delegate","rteEnabled","sameInEdit","getEditing","isInnerText","isInstanceOf","lastContent","activeRte","logError","toggleEvents","onDisable","getChildrenContainer","contentOpt","customRte","resetFromString","insertComponent","selection","getSelection","rangeCount","range","getRangeAt","textNode","startContainer","startOffset","textModel","newCmps","is","cmps","onInput","disablePropagation","mixins","setEditing","elDocs","prevDef","ComponentLinkView","yt","vi","ytnc","videoId","provider","ytUrl","ytncUrl","viUrl","loop","poster","muted","autoplay","controls","color","list","modestbranding","sources","updateTraits","getYoutubeTraits","getVimeoTraits","getSourceTraits","prov","parseInt","getYoutubeSrc","getYoutubeNoCookieSrc","getVimeoSrc","getProviderTrait","getAutoplayTrait","getLoopTrait","getControlsTrait","isYtProv","isYtncProv","isViProv","isExtProv","OComponentView","updateProvider","updateVideo","renderByProvider","videoEl","renderYoutube","renderYoutubeNoCookie","renderVimeo","renderSource","initVideoEl","layerable","scrCnt","scriptCount","svar","svarNext","svarFn","svarNextFn","__innerHTML","customName","charAt","selectable","hoverable","inSvg","_createElement","createElementNS","_setAttributes","updateStatus","updateAttributes","initClasses","initComponents","createComment","ComponentWrapper","removable","__hasUm","attrUp","__getSrc","getAttributes","componentView","componentsById","componentTypes","ComponentTableCell","ComponentTableCellView","ComponentTableRow","ComponentTableRowView","ComponentTable","ComponentTableView","ComponentTableHead","ComponentTableHeadView","ComponentTableBodyView","ComponentTableFoot","ComponentTableFootView","ComponentMap","ComponentMapView","ComponentLabel","ComponentLabelView","ComponentVideo","ComponentVideoView","ComponentImage","ComponentImageView","ComponentScript","ComponentScriptView","ComponentSvgIn","ComponentSvgView","ComponentSvg","ComponentFrame","ComponentFrameView","ComponentComment","ComponentCommentView","ComponentTextNode","ComponentTextNodeView","ComponentTextView","Components","ComponentsView","compTypes","componentHovered","selectAdd","selectRemove","rest","getComponents","addComponent","setComponents","extendView","extendFn","extendFnView","compType","extendType","extendViewType","typeToExtend","modelToExt","viewToExt","getExtendedObj","fns","srcToExt","parentFn","df","it","removeType","getShallowWrapper","shallowEm","keyUpdate","keyUpdateInside","canMove","source","reason","srcModel","allById","Trait","targetEvent","targetUpdated","locale","getTargetValue","valueOpts","partial","setTargetValue","fromTarget","trait","valueToSet","final","toSet","step","Traits","handleReset","tf","objs","optionsTarget","TraitFactory","escapeRegExp","keySymbols","keySymbol","keySymbolOvrd","property","parentAttr","newAttr","toPropagate","ccid","initTraits","initScriptProps","scriptUpdated","tagUpdated","attrUpdated","_idUpdated","__emitUpdateTlb","__propToParent","__postAdd","__isSymbolOrInst","__initSymb","recursive","__changesUp","__propSelfToParent","$els","eq","closest","setClass","attrPrev","diff","shallowDiff","setAttributes","noClass","attrArr","compAttr","optsAdd","inline","cc","parseStyle","propOrig","addId","noStyle","TYPE_ID","__getSymbol","__getSymbols","classe","classStr","toUp","symbol","symbols","log","context","__symbReady","__upSymbProps","__isSymbol","__isSymbolTop","symbTopSelf","__getSymbTop","symbTop","symb","ref","__getAllById","symbs","idx","ovrd","symbEnabled","fromInstance","noPropagate","__isSymbOvrd","__getSymbToUp","__logSymbol","propsChanged","optUp","toUpOpts","isTemp","addedInstances","isMainSymb","addSymb","cid","toAppend","addedInst","addedTop","symbolInv","isSymbNested","__isSymbolNested","toUpFn","symbPrnt","newMods","attrCls","clsArr","normalizeClasses","__upSymbCls","addChild","avoidChildren","__upSymbComps","__loadTraits","getInitValue","prevProps","newProps","prevPropsEv","newPropsEv","__scriptPropsChange","compArr","prevColl","tr","traitsI","getTraits","getTrait","arr","_inner","cloned","newId","rulesToClone","newRule","defName","nameTag","i18nPfx","i18nName","i18nNameTag","i18nDefName","capitalize","customTag","sTag","customAttr","withProps","isBoolean","valueRes","altQuoteAttr","attrString","inner","getInnerHTML","getChangedProps","modelProps","tagVarStart","tagVarEnd","reg","RegExp","updated","removeChildren","rmOpts","byType","oldId","setId","idS","_getStyleRule","idUpdate","idPrev","getList","_getStyleSelector","ensureInList","nextId","getIncrementId","getNewId","ilen","uid","random","keepIds","dm","checkId","badgable","unstylable","dmode","getComponentIds","getComponentsFromDefs","itms","newComponents","resetChildren","newIds","allByID","parsed","parseString","canRemoveStyle","rulesRemoved","__postRemove","parseHtml","optsToPass","nodes","isMult","processDef","__firstAdd","mdl","modelPr","$$typeof","parserHtml","splitPropsFromAttr","__onAddEnd","getClasses","updateHighlight","updateContent","handleChange","avoidRender","_clbObj","__isDraggable","childrenView","handleDragStart","importClasses","renderChildren","chgArr","selectedCls","selectedParentCls","freezedCls","hoveredCls","selCls","noExtHl","actualCls","getAttribute","avoidHover","isTextable","hl","onAttrUpdate","removeAttr","textable","defaultAttr","contenteditable","nodeName","hasComps","updateScript","getChildrenSelector","getTemplate","getOffsetRect","gtop","gleft","assignRect","offsetParent","bottom","isInViewport","elDoc","behavior","_ensureElement","_setData","replaceWith","call","triggerAdd","sameFrameView","viewObject","parentEl","lastIndex","ParserHtml","extendStyle","propNew","noEvent","removeStyle","imp","propPrv","_validate","newStyle","baseType","getBaseType","typeFound","recognizeType","ModelInst","ViewInst","extendViewApi","Input","handleModelChange","holderClass","getInputEl","__onInputChange","elementUpdated","fromInput","inputEl","plh","inputClass","defaultOpts","beforeShow","noop","move","flat","showInput","showButtons","clickoutFiresChange","showInitial","showPalette","showPaletteOnly","hideAfterPaletteSelect","togglePaletteOnly","showSelectionPalette","localStorageKey","maxSelectionSize","cancelText","chooseText","togglePaletteMoreText","togglePaletteLessText","clearText","noColorSelectedText","preferredFormat","containerClassName","replacerClassName","showAlpha","palette","selectionPalette","spectrums","IE","navigator","userAgent","rgbaSupport","cssText","backgroundColor","replaceInput","markup","gradientFix","dataID","spectrum","extra","returnValue","spect","option","removeData","loadOpts","inputTypeColorSupport","_cachedResult","colorInput","localization","palettes","processNativeColorInputs","colorInputs","trimLeft","trimRight","tinyCounter","math","mathRound","mathMin","mathMax","mathRandom","tinycolor","rgb","g","ok","format","named","names","matchers","rgba","hsl","hsla","hsv","hsva","hex8","convertHexToDecimal","parseIntFromHex","hex6","hex3","stringInputToObject","bound01","String","convertToPercentage","floor","hsvToRgb","hue2rgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_b","_a","_roundA","_format","_gradientType","gradientType","_ok","_tc_id","isDark","getBrightness","isLight","isValid","getOriginalInput","getFormat","getAlpha","toRgb","setAlpha","toHsv","rgbToHsv","toHsvString","toHsl","rgbToHsl","toHslString","toHex","allow3Char","rgbToHex","toHexString","toHex8","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","lighten","brighten","darken","desaturate","saturate","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","equals","color1","color2","mix","amount","w1","rgb1","rgb2","w2","readability","c1","c2","brightnessA","brightnessB","colorDiff","brightness","abs","isReadable","mostReadable","baseColor","colorList","bestColor","bestScore","bestIsReadable","readable","score","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flipped","flip","paletteTemplate","tiny","swatchStyle","wait","timeout","callbackContext","callbacks","instanceOptions","resize","reflow","throttler","visible","isDragging","isDefault","dragWidth","dragHeight","dragHelperHeight","slideHeight","alphaWidth","alphaSlideHelperWidth","slideHelperHeight","currentHue","currentSaturation","currentValue","currentAlpha","paletteArray","paletteLookup","draggingClass","shiftMovementDirection","boundElement","pickerContainer","dragHelper","slider","slideHelper","alphaSliderInner","alphaSlider","alphaSlideHelper","textInput","paletteContainer","initialColorContainer","cancelButton","clearButton","chooseButton","toggleButton","isInput","isInputTypeColor","shouldReplace","replacer","offsetElement","previewElement","initialColor","colorOnShow","currentPreferredFormat","applyOptions","toggleClass","updateSelectionPaletteFromStorage","localStorage","oldPalette","addColorToSelectionPalette","inArray","drawPalette","currentColor","unique","reverse","getUniqueSelectionPalette","drawInitial","initial","setFromTextInput","updateOriginalInput","toggle","Event","isDefaultPrevented","hideAll","$doc","onkeydown","clickout","updateUI","revert","ignoreFormatChange","newHsv","updateHelperLocations","flatColor","realColor","displayColor","realHex","realRgb","alpha","realAlpha","gradient","alphaX","slideY","fireCallback","hasChanged","picker","extraY","dpWidth","outerWidth","dpHeight","outerHeight","inputHeight","docElem","documentElement","cW","clientWidth","cH","clientHeight","scL","scT","viewWidth","viewHeight","after","paletteElementClick","ignore","keydown","hasClass","shiftKey","oldDragX","oldDragY","furtherFromX","paletteEvent","optionName","optionValue","coord","onmove","onstart","onstop","maxHeight","maxWidth","hasTouch","duringDragEvents","prevent","documentMode","t0","touches","pageX","pageY","rightclick","hex","pad2","clamp01","hue","results","slices","part","ret","modification","n","isOnePointZero","processPercent","isPercentage","ColorPicker","getColor","cl","InputColor","colorEl","getColorEl","tc","valueClr","noneColor","previousColor","self","cpStyle","elToAppend","colorPickerConfig","setValueFromInput","noDefault","InputNumber","contClass","validateInputValue","deepCheck","validObj","getUnitEl","upArrowClick","downArrowClick","unitEl","units","temp","normalizeValue","moveIncrement","upIncrement","prValue","defValue","stepDecimals","toFixed","limitlessMax","limitlessMin","fixed","regFixed","valCopy","uN","ns","reuseView","itemsView","typeField","itemType","itemViewNotFound","clearItems","onRemoveBefore","traitInputAttr","localeFallback","detectLocale","messages","assetManager","addButton","inputPlh","uploadTitle","blockManager","labels","domComponents","comment","video","link","tfoot","tbody","thead","table","row","cell","deviceManager","desktop","tablet","mobileLandscape","mobilePortrait","buttons","titles","preview","fullscreen","selectorManager","emptyState","states","hover","styleManager","layer","fileButton","sectors","general","layout","typography","decorations","flex","dimension","properties","traitManager","false","_blank","storageManager","recover","messagesAdd","isObj","deepAssign","targValue","srcValue","addMessages","_localLang","setLocale","evObj","valuePrev","getLocale","getMessages","lang","_debug","setMessages","msg","localeFlb","lFlb","_getMsg","_addParams","nav","language","userLanguage","msgSet","_handlers","_mods","_scope","_MODIFIERS","ctrl","control","_MAP","backspace","tab","enter","return","esc","space","up","down","del","delete","home","pageup","pagedown","charCodeAt","_downKeys","compareArray","modifierMap","updateModifierKey","clearModifier","assignKey","resetModifiers","scope","mods","getKeys","getMods","shortcut","getScope","mi","addEvent","object","attachEvent","setScope","deleteScope","handlers","srcElement","isPressed","getPressedKeyCodes","multipleKeys","handler","modifiersMatch","cancelBubble","dispatch","keymaster","configDef","keymaps","defKeys","keymap","pk","removeAll","backdrop","ModalView","updateOpen","updateTitle","$collector","$content","$title","getCollector","getTitle","currAttr","updateAttr","triggerEvent","ModalM","enb","_evData","titl","createText","setTitle","onceOpen","getContentEl","sortable","hidable","hideTextnode","showWrapper","showHover","scrollCanvas","scrollLayers","highlightHover","onInit","ItemsView","inputProp","styleOpts","isStyleHidden","ItemView","clsNoEdit","count","countChildren","clsNoChild","clsTitle","clsTitleC","clsCaret","clsInput","inputNameCls","level","gut","clsBase","clsCount","clsMove","clsChildren","parentView","checkChildren","updateOpening","updateLayerable","updateName","clsEdit","viewLayer","__render","getInputName","innerText","eyeEl","hClass","getVisibilityEl","prevDspKey","prevDisplay","isEscKey","isEnterKey","handleEditEnd","setName","propName","inputName","opened","chvDown","getCaret","fromLayers","isCountable","caret","_rendered","__clearItems","hidden","vis","componentChanged","setRoot","getRoot","sortContainer","ignoreViewChildren","created","getSourceModel","forceChange","avoidSelectOnEnd","Page","defFrame","evPageSelectBefore","evPageUpdate","evPageAdd","evPageAddBefore","evPageRemove","evPageRemoveBefore","typeMain","selectBefore","addBefore","cnf","pages","_onPageChange","mainComp","getMainComponent","pg","getAllFrames","pagesMap","swv","expt","osm","otm","ola","obl","ful","prv","togglable","delayBtnsShow","Panel","btn","Buttons","ButtonView","listen","activeCls","disableCls","btnsVisCls","updateActive","checkActive","updateBtnsVis","updateClassName","updateDisable","chnOpt","fromListen","$buttons","fromCollection","commandName","deactivateAll","toggleActive","ButtonsView","parentM","PanelView","appendContent","toggleVisible","cr","bc","resz","resLen","tl","bl","br","silentFrames","avoidContainerUpdate","forContainer","styleWidth","styleHeight","PanelsView","PanelsViewObj","getPanelsEl","removePanel","panelId","removeButton","getButton","disableButtons","Button","runDefaultCommand","stopDefaultCommand","except","deactivateAllExceptOne","ctx","disableAllButtonsExceptOne","optionsHtml","htmlType","allowScripts","allowUnsafeAttr","atRuleKeys","singleAtRules","singleAtRulesNames","parseSelector","propValue","getPropertyValue","getPropertyPriority","parseCondition","conditionText","selectorText","createNode","selLen","lastClass","stateArr","parseNode","cssRules","keyText","isSingleAtRule","subRules","lens","subRule","selsParsed","selsAdd","lastRule","len3","selsAddStr","sheet","BrowserCssParser","output","classSets","classSet","pHtml","pCss","Parser","defaultType","parser","DOMParser","mimeType","strF","parseFromString","hEls","modelAttrStart","modelAttr","valueLen","valStr","firstChar","lastChar","decls","decl","parseClass","attrsLen","nodePrev","nodeChild","ct","namespaceURI","nodeValue","keepEmptyTextNodes","outerHTML","allTxt","foundTextNode","ci","cType","cf","BrowserParserHtml","__clearUnsafeAttr","styleStr","resHtml","returnArray","removeAttribute","btnState","isValidTag","anchorNode","focusNode","parentAnchor","parentFocus","customElAttr","defActions","bold","italic","underline","strikethrough","insertHTML","wrap","RichTextEditor","settings","setEl","updateActiveActions","__onKeydown","__onPaste","acts","actions","actionbar","inactive","actionbarCont","actionbarContainer","addAction","styleWithCSS","getActions","queryCommandSupported","queryCommandState","enabled","__toggleEffects","actionbarEl","contentEditable","syncActions","caretRangeFromPoint","poiner","rangeParent","createRange","setStart","rangeOffset","removeAllRanges","addRange","clipboardData","textHtml","sync","deleteContents","nd","insertNode","toSel","removeAttributes","adjustToolbar","eventsUp","hideToolbar","initRte","globalRte","updatePosition","rteInst","escapeName","selectedName","iconAdd","iconSync","iconTagOn","iconTagOff","iconTagRemove","componentFirst","State","ClassTagView","removeSelected","$chk","ClassTagsView","labelInfo","labelHead","stateInputId","stateInputC","checkSync","toList","toListCls","__handleStateChange","addNew","renderClasses","tagRemoved","renderStates","getTarget","cssC","getCommonSelectors","noDisabled","ruleComponents","getTargets","ruleComponent","updateStateVis","addToClasses","$addBtn","$input","addNewTag","endNewTag","getState","statesEl","targets","updateSelection","trgs","validSelectors","__getCommonSelectors","__common","hasStyle","$btnSyncEl","getStatesC","updateSelector","elSel","__getName","checkStates","getStyleable","idRes","addSelected","$states","$statesC","labelStates","getLabel","tmpOpts","renderRes","$classes","isClass","evState","cFirst","__update","selTags","selectorTags","isRule","cOpts","cname","getSelector","setState","setStates","__getCommon","getSelectedTargets","setComponentFirst","getComponentFirst","getValid","private","protected","namePreEsc","nameEsc","objLen","TYPE_CLASS","combine","tail","curr","combination","autosave","autoload","recovery","stepsBeforeSave","onStore","local","checkLocal","remote","urlStore","urlLoad","contentTypeJson","fetchOptions","LocalStorage","hasLocal","setItem","getItem","thr","RemoteStorage","request","__props","parsable","typeJson","typeHead","eventStart","eventAfter","eventEnd","eventError","STORAGE_LOCAL","STORAGE_REMOTE","_disable","storages","setCurrent","isAutosave","setAutosave","getStepsBeforeSave","setStepsBeforeSave","storage","getStorages","getCurrent","currentStorage","getCurrentStorage","getStorageOptions","getCurrentOptions","getRecoveryStorage","recoveryOpts","__exec","recoveryStorage","recoveryData","__askRecovery","getRecovery","rej","confirm","toStore","__clearKeys","onAfter","itemKey","itemKeyR","canAutoload","hideNotStylable","highlightChanged","highlightComputed","showComputed","clearProperties","avoidComputed","Property","__upTargets","callInit","parentProp","isClear","__getFullValue","__getParentProp","to","from","kProps","__getClearProps","toProps","applyStyle","__up","__trgEv","propertyUpdate","__upTargetsStyle","addStyleTargets","noTarget","hasValue","getDefaultValue","noParent","parentValue","getParentTarget","camelCase","__parseValue","_up","getParent","__canClearProp","parseValue","valueStr","lastIndexOf","functionName","numeric","num","withDefault","getFullValue","fnParameter","__parentTarget","toRequire","requires","requiresParent","stylableReq","sector","getProperties","values","callParentInit","skipInit","info","fixedValues","full","isNumberType","PropertyComposite","detached","separator","fromStyle","toStyle","Properties","__upProperties","byName","getSplitSeparator","__getJoin","getValues","isDetached","__clearIn","__upTargetsStyleProps","getStyleFromProps","__setProperties","__getSplitValue","nameProps","allNameProps","sep","__splitValue","props4Nums","__styleHasProps","upValue","valuesStr","Layer","getLayerLabel","getSelectedLayer","selectLayer","removeLayer","moveLayer","getStylePreview","Layers","VALUES_REG","PARTS_REG","PropertyStack","layerSeparator","layerJoin","prepend","layerLabel","selectedLayer","layersColl","__upSelected","__upLayers","__getLayers","getIndex","__select","getLayer","currIndex","getLayers","parts","joinLayers","__getJoinLayers","number","newVal","getStyleFromLayer","upValues","PropertyBase","getStyleFromLayers","layerSelect","__layers","__setLayers","newLayers","layersNew","__parseLayer","parseFn","getLayerSeparator","separatorLayers","__splitStyleName","inLayer","clearProp","icons","iconClose","__destroyFn","onValueChange","_getClbOpts","computedCls","labelEl","clearStyleEl","getClearEl","clearStyle","clearEl","emit","__setValueInput","createdEl","__change","__updateStyle","clearCached","clsType","templateLabel","templateInput","isFull","PropertiesView","appendAtIndex","PropertyCompositeView","PropertyView","propsView","LayerView","iconMove","propertyView","pModel","updateLabel","propsWrapEl","previewEl","getLabelEl","hasPreview","prvEl","getPreviewEl","wrapEl","getPropertiesWrapper","isSelected","LayersView","PropertyStackView","iconPlus","plus","addLayer","layersView","PropertyFileView","valueDef","prvBoxEl","backgroundImage","PropertyNumberView","inputInst","PropertyColorView","inp","__handleChange","PropertySelect","getOptionId","getOption","optId","propId","__onOptionChange","PropertySelectView","updateOptions","optionsRes","getOptionLabel","styleAttr","inputH","firstOpt","firstId","PropertyRadio","PropertyRadioView","itemCls","elId","titleAttr","checked","inputHld","inputIn","PropertyNumber","PropertySlider","PropertySliderView","getSliderEl","propertyAdd","propertyRemove","Sector","buildProps","extendBuilded","builded","buildProperties","extendProperties","checkExtend","propsModel","withValue","withParentValue","moProps","ex","pLen","mProps","ext","isolated","mProp","mPProps","buildP","builtIn","Sectors","sect","PropertyFactory","typeNumber","typeColor","typeRadio","typeSelect","typeFile","typeSlider","typeComposite","typeStack","unitsSize","unitsSizeNoPerc","unitsTime","unitsAngle","ss","optsFlex","optsFlexAlign","optsBgSize","optsBgAttach","optsBgRepeat","optsWrap","optsOverflow","optsDir","opstDisplay","optsTransitFn","optsCursor","optsFloat","optsPos","optsTextAlign","optsJustCont","optsAlignCont","optsAlignSelf","optsTransitProp","optsBorderStyle","optsBgPos","optsWeight","optsShadowType","optsFonts","font","fixedFontSizes","fixedLetSpace","requireFlex","__sub","spread","repeat","att","fromRes","SectorView","iconCaret","clsPfx","getPropertiesEl","setOpen","renderProperties","SectorsView","evSector","evSectorAdd","evSectorRemove","evSectorUpdate","evProp","evPropAdd","evPropRemove","evPropUp","evLayerSelect","evTarget","propDef","SectView","sectorAdd","sectorRemove","sectorUpdate","upAll","__upSel","__clearStateTarget","upProps","__upProps","trgCustom","__ctn","stateTarget","__getStateTarget","skip","addSector","getSector","_logNoSector","getSectors","removeSector","addProperty","sectorId","getProperty","removeProperty","lastTarget","lastTargetParents","getParentRules","getSelectedParents","targetState","getBuiltIn","getBuiltInAll","addBuiltIn","smConf","devicePreviewMode","hasClasses","useClasses","deviceW","avoidInlineStyle","cssGen","optsSel","cmpRules","otherRules","sortRules","createType","parentStyles","__upProp","__checkVisibility","sectorVisible","hasVal","isStack","isComposite","canUpdate","__getLayersFromStyle","__getPropsFromStyle","newValue","parentTarget","parentItem","__setParentTarget","newParentStyles","TraitView","eventCapture","clsField","removeView","rerender","elInput","getInputElem","onEvent","getClbOpts","setInputValue","postUpdate","getValueForTarget","tpl","createLabel","getModelValue","i18nAttr","getElInput","appendInput","inputs","createInput","noLabel","onUpdate","hasLabel","tmpl","renderLabel","renderField","TraitsView","updatedCollection","TraitSelectView","resultName","valResult","TraitCheckboxView","getCheckedValue","valueTrue","valueFalse","toInit","targetValue","TraitNumberView","inputNumber","$unit","TraitColorView","TraitButtonView","labelButton","typesDef","checkbox","__onUp","getTraitsViewer","baseView","beforeCache","maximumStackLength","trackSelection","hasSkip","getChanged","track","register","changeUndoType","hasUndo","undoExc","chn","previousAttributes","before","isRegistered","unregister","unregisterAll","startTracking","stopTracking","undoAll","redoAll","isAvailable","hasRedo","getInstance","objectRegistry","getStack","getStackGroup","inserted","getGroupedStack","createItem","goToGroup","getPointer","goTo","times","pointer","snapOffset","getDocumentEl","getContainerEl","getWindowEl","keyHandle","handleScroll","lastScroll","actualScroll","getScrollInfo","scrollDiff","lastScrollDiff","startPointer","getPointerPos","startPosition","getStartPosition","globScrollDiff","currentPos","glDiff","lockedAxis","detectAxisLock","moveDelta","deltaPre","currentPointer","snapGuides","newDelta","trgX","trgY","axs","trgPoint","statPoint","deltaPoint","trgGuide","isPointIn","trgValue","setGuideLock","lock","ofst","trgName","xPos","yPos","getPos","getPointerPosition","pEv","relX","relY","absX","absY","_Array$prototype","idRe","classRe","htmlRe","tagRe","getElementsByClassName","getElementsByTagName","Cash","__cash","eles","getElementById","parseHTML","cash","last","callback","ele","camelCaseRe","camelCaseWhitespaceRe","letter","removeProp","guid","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","isNumeric","isFinite","getCompareFunction","comparator","splitValuesRe","getSplitValues","computeStyle","isVariable","computeStyleInt","check","_value","isForce","cssVariableRe","isCSSVariable","prefixedProps","docEl","vendorsPrefixes","getPrefixedProp","propCC","propUC","prefixedProp","numericProps","animationIterationCount","columnCount","flexGrow","flexShrink","fontWeight","lineHeight","orphans","widows","zIndex","getSuffixedValue","setProperty","dataNamespace","dataAttributeRe","getDataCache","cache","dataset","getExtraSpace","xAxis","hasNamespaces","ns1","ns2","removeEventListeners","_ref","hasData","_this","setData","boxSizing","includeMargins","getEventsCache","parseEventName","eventName","removeEvent","namespaces","eventCache","_ref2","cb","eventFullName","_this2","_parseEventName","_one","_this3","_parseEventName2","finalCallback","namespace","thisArg","one","readyState","evt","_parseEventName3","createEvent","initEvent","selectOneRe","selectMultipleRe","selectedIndex","getValueSelectSingle","getValueSelectMultiple","queryEncodeSpaceRe","skippableRe","checkableRe","serialize","elements","encodeURIComponent","queryEncode","isMultiple","eleValue","cloneNode","detach","containers","fragmentRe","singleTagRe","td","th","initContainers","$1","insertContent","isStr","insertAdjacentHTML","insertElement","_this4","insertAfter","_this5","nextSibling","_this6","_this7","_this8","_this9","prependTo","_this10","$eles","replaceChild","replaceAll","docEle","clientTop","clientLeft","contents","nextElementSibling","not","parents","previousElementSibling","siblings","KEY_ATTR","getClientRects","oldEl","newEl","total","lastChild","oEvent","keyCodeVal","defineProperty","vNodes","vNodesArr","vnode","TypeError","remaining","setTimeoutFunc","_state","_handled","_deferreds","doResolve","handle","deferred","_immediateFn","onFulfilled","onRejected","finale","_unhandledRejectionFn","Handler","done","prom","promiseFinally","allSettled","race","setImmediate","req","XMLHttpRequest","withCredentials","setRequestHeader","statusText","responseText","onProgress","onprogress","send","literals","substs","raw","lit","subst","elT","elL","borderOffset","freezeClass","relative","ignoreModels","offTop","offLeft","$document","dropContent","selectOnEnd","activeTextModel","getScale","getDocuments","dropModel","updateTextViewCursorPosition","targetDoc","setContentEditable","toggleSortCursor","clonedEl","computed","moveDragHelper","posY","posX","dragHelperStyle","useBody","createPlaceholder","ins","prevTarget","sourceEl","clearSelection","getTargetModel","isTextableActive","tempModel","selectTargetModel","targetModel","dsp","eO","rY","rX","mousePos","eventMove","sourceModel","dimsFromTarget","lastDims","findPosition","disableTextable","movePlaceholder","prevTargetDim","$plh","isInFlow","styleInFlow","$parent","overflow","propFloat","trgModel","dragInfo","dropInfo","targetP","validResult","getDim","cacheDimsP","getChildrenDim","cacheDims","nearBorders","targetParent","getTargetFromEl","targetPrev","nearElBorders","getCurrentPos","offsets","getCurrentView","elIndex","dir","indexEl","leftLimit","xLimit","yLimit","xCenter","yCenter","dimDown","trgDim","elDim","marg","pT","pL","obj1","obj2","ancester","s1","toMoveArr","domPositionOffset","dst","modelToDrop","srcEl","warns","targetCollection","srcIndex","sameCollection","errors","onUpdateContainer","minDim","maxDim","getBoundingRect","setup","hdl","createHandler","parentElement","updateContainer","forceShow","handleMouseDown","getParentEl","attrName","parentRect","handlerAttr","clickedHandler","rectDim","startPos","parentDim","handleKeyDown","toggleFrames","mouseFetch","altKey","calc","updateRect","getSelectedHandler","isHandler","deltaX","deltaY","parentW","parentH","startW","startH","box","normalizeFloat","ratioActive","ratio","helpers","getGlobal","global","elProt","Element","defCls","customUI","appendStyles","prepand","objOrig","objNew","keysNew","origValue","upFirst","nativeDnD","isCommentNode","__cashData","rectText","selectNode","getKeyCode","fromCharCode","__gjsv","chars","_","core_slice","hasKeys","getMagicFusionIndex","callstackWasIndexed","magicFusionIndex","indexCycle","defer","ObjectRegistry","registeredObjects","cidIndexes","onoff","objects","actionUndoRedo","undoTypes","managerUndoRedo","manager","magic","everything","isCurrentlyUndoRedoing","isUndo","validateUndoActionCreation","undoTypesType","addToStack","UndoTypes","unsetData","afterAttributes","keysAfter","pick","keysPrevious","OwnedUndoTypes","manipulateUndoType","manipType","undoType","undoTypesInstance","Action","UndoStack","Infinity","setMaxLength","isArguments","isTracking","_addToStack","merge","undoManager","addUndoType","removeUndoType","defaultAttributes","previousBackbone","VERSION","noConflict","emulateHTTP","emulateJSON","addMethod","attribute","iteratee","defaultVal","addUnderscoreMethods","Class","instance","_isModel","modelMatcher","matcher","Events","eventSplitter","eventsApi","internalOn","listening","_events","onApi","_listeners","_listenId","uniqueId","listeningTo","_listeningTo","thisId","objId","offApi","listeners","_callback","onceMap","listenToOnce","offer","triggerApi","objEvents","allEvents","triggerEvents","a3","cidPrefix","validationError","changes","changing","_changing","_previousAttributes","isEqual","_pending","old","success","resp","serverAttrs","wrapError","save","validate","isNew","patch","xhr","base","urlError","pairs","invert","omit","chain","_reset","addOptions","insert","singular","_removeModels","merged","toMerge","modelMap","sortAttr","existing","_prepareModel","_addReference","orderChanged","_removeReference","_byId","modelId","findWhere","sortBy","callbackOpts","_onModelEvent","collect","foldl","inject","reduceRight","foldr","detect","any","include","invoke","toArray","take","drop","without","difference","shuffle","sample","partition","groupBy","countBy","indexBy","findIndex","findLastIndex","viewOptions","delegateEventSplitter","_removeElement","undelegateEvents","_setElement","listener","undelegate","methodMap","dataType","contentType","_method","beforeSend","processData","textStatus","errorThrown","ajax","Router","routes","_bindRoutes","optionalParam","namedParam","splatParam","route","isRegExp","_routeToRegExp","router","history","_extractParameters","execute","navigate","optional","History","checkUrl","location","routeStripper","rootStripper","pathStripper","started","interval","atRoot","getSearch","matchRoot","decodeFragment","decodeURI","getHash","getPath","path","getFragment","_usePushState","_wantsHashChange","hashChange","_hasHashChange","_useHashChange","_wantsPushState","pushState","_hasPushState","rootPath","tabIndex","iWindow","_checkUrlInterval","setInterval","loadUrl","detachEvent","clearInterval","assign","_updateHash","protoProps","staticProps","__super__","extendMode","commentStart","commentEnd","newlineAfterToken","_type","textAfter","jsonMode","lexical","inlineElements","configuration","defineExtension","isComment","curMode","innerMode","getMode","getTokenAt","operation","replaceRange","line","ch","setCursor","selText","getRange","startIndex","endIndex","cmInstance","indentLine","outer","copyState","tabSize","out","lines","atSol","newline","stream","StringStream","eol","token","cur","string","blankLine","setSelection","platform","gecko","ie_upto10","ie_11up","edge","ie","ie_version","webkit","qtwebkit","chrome","presto","safari","vendor","mac_geMountainLion","phantom","ios","maxTouchPoints","android","mobile","mac","chromeOS","windows","presto_version","flipCtrlCmd","captureRightClick","classTest","rmClass","removeChildrenAndAdd","elt","eltP","host","activeElt","shadowRoot","joinClasses","as","endNode","setEnd","createTextRange","moveToElementText","collapse","moveEnd","moveStart","selectInput","copyObj","overwrite","countColumn","startValue","nextTab","selectionStart","selectionEnd","_e","Delayed","time","onTimeout","Date","ms","scrollerGap","Pass","sel_dontScroll","sel_mouse","sel_move","findColumn","goal","col","skipped","spaceStrs","spaceStr","lst","insertSorted","nothing","createObj","inst","nonASCIISingleCaseWordChar","isWordCharBasic","isWordChar","extendingChars","isExtendingChar","skipExtendingChars","findFirst","pred","midF","mid","ceil","iterateBidiSections","bidiOther","getBidiPartAt","sticky","bidiOrdering","lowTypes","arabicTypes","charType","bidiRE","isNeutral","isStrong","countsAsLeft","countsAsNum","BidiSpan","outerType","i$1","i$2","type$1","i$3","prev$1","type$2","i$4","type$3","i$5","cur$1","type$4","i$6","end$1","replace$1","j$1","i$7","isRTL","j$2","nstart","getOrder","noHandlers","emitter","getHandlers","signal","signalDOMEvent","override","defaultPrevented","e_defaultPrevented","codemirrorIgnore","signalCursorActivity","cursorActivity","curOp","cursorActivityHandlers","hasHandler","eventMixin","ctor","e_preventDefault","e_stopPropagation","e_stop","e_target","e_button","zwspSupported","badBidiRects","dragAndDrop","div","zeroWidthElement","measure","hasBadBidiRects","txt","r0","r1","splitLinesAuto","nl","rt","hasSelection","te","compareEndPoints","hasCopyEvent","oncopy","badZoomedRects","hasBadZoomedRects","normal","fromRange","mimeModes","defineMode","dependencies","defineMIME","mime","spec","resolveMode","mfactory","modeObj","modeExtensions","exts","helperType","modeProps","prop$1","nstate","startState","lineOracle","lastColumnPos","lastColumnValue","lineStart","getLine","chunk","sz","chunkSize","getBetween","iter","getLines","updateLineHeight","lineNo","no","lineAtHeight","lh","isLine","lineNumberFor","lineNumberFormatter","firstLineNumber","Pos","equalCursorPos","copyPos","maxPos","minPos","clipLine","clipPos","clipToLen","linelen","clipPosArray","sol","peek","eat","eatWhile","eatSpace","skipToEnd","skipTo","backUp","column","indentation","pattern","consume","caseInsensitive","cased","hideFirstChars","lookAhead","oracle","baseToken","SavedContext","Context","maxLookAhead","baseTokens","baseTokenPos","highlightLine","forceToEnd","modeGen","lineClasses","runMode","overlay","overlays","i_end","opaque","bgClass","textClass","getLineStyles","updateFrontier","getContextBefore","resetState","maxHighlightLength","stateAfter","styleClasses","highlightFrontier","modeFrontier","precise","findStartLine","saved","fromSaved","processLine","viewFrom","viewTo","nextLine","startAt","callBlankLine","readToken","copy","Token","takeToken","asArray","tokens","extractLineClasses","lineClass","flattenSpans","curStart","curStyle","addModeClass","mName","minindent","minline","lim","indented","retreatFrontier","sawReadOnlySpans","sawCollapsedSpans","seeReadOnlySpans","seeCollapsedSpans","MarkedSpan","marker","getMarkedSpanFor","spans","span","removeMarkedSpan","addMarkedSpan","op","inThisOp","WeakSet","markedSpans","attachLine","markedSpansBefore","startCh","isInsert","nw","inclusiveLeft","insertLeft","endsAfter","inclusiveRight","markedSpansAfter","endCh","startsBefore","stretchSpansOverChange","oldFirst","oldLast","sameLine","span$1","clearEmptySpans","newMarkers","gapMarkers","clearWhenEmpty","removeReadOnlyRanges","markers","mark","mk","newParts","dfrom","dto","detachMarkedSpans","detachLine","attachMarkedSpans","extraLeft","extraRight","compareCollapsedMarkers","lenDiff","aPos","bPos","fromCmp","toCmp","collapsedSpanAtSide","sps","sp","collapsed","collapsedSpanAtStart","collapsedSpanAtEnd","collapsedSpanAround","conflictingCollapsedRange","visualLine","visualLineEnd","visualLineContinued","visualLineNo","lineN","visualLineEndNo","lastLine","lineIsHidden","widgetNode","lineIsHiddenInner","heightAtLine","lineObj","lineLength","found$1","findMaxLine","maxLine","maxLineLength","maxLineChanged","Line","estimateHeight","updateLine","estHeight","cleanUpLine","styleToClassCache","styleToClassCacheWithMode","interpretTokenStyle","buildLineContent","lineView","builder","pre","trailingSpace","splitSpaces","addToken","buildToken","buildTokenBadBidi","insertLineContent","externalMeasured","maps","caches","defaultSpecialCharPlaceholder","startStyle","endStyle","displayText","special","specialChars","mustWrap","txt$1","tabWidth","specialCharPlaceholder","fullStyle","trailingBefore","spaceBefore","buildCollapsedSpan","ignoreWidget","widget","needsContentAttribute","setUneditable","allText","spanStyle","spanEndStyle","spanStartStyle","nextChange","foundBookmarks","endStyles","upto","tokenText","LineView","buildViewArray","nextPos","operationGroup","pushOperation","ops","ownsGroup","delayedCallbacks","fireCallbacksForOps","cursorActivityCalled","finishOperation","endCb","orphanDelayedCallbacks","signalLater","fireOrphanDelayed","delayed","updateLineForChanges","updateLineText","updateLineGutter","updateLineClasses","updateLineWidgets","ensureLineWrapped","updateLineBackground","background","getLineContent","built","wrapClass","gutter","gutterBackground","gutterClass","fixedGutter","fixedPos","gutterTotalWidth","gutterMarkers","wrap$1","gutterWrap","lineNumber","gutterLeft","gutterSpecs","gutterWidth","alignable","isWidget","insertLineWidgets","buildLineElement","insertLineWidgetsFor","allowAbove","widgets","ws","handleMouseEvents","positionLineWidget","above","noHScroll","wrapperWidth","coverGutter","widgetHeight","parentStyle","gutters","eventInWidget","sizer","mover","lineSpace","paddingVert","paddingH","cachedPaddingH","currentStyle","scrollGap","nativeBarWidth","displayWidth","scroller","barWidth","displayHeight","barHeight","ensureLineHeights","wrapping","curWidth","heights","rects","mapFromLineView","updateExternalMeasurement","lineMeasure","measureChar","bias","measureCharPrepared","prepareMeasureForLine","findViewForLine","findViewIndex","getDimensions","forceUpdate","hasHeights","prepared","varHeight","measureCharInner","bogus","rtop","rbottom","measureText","nullRect","nodeAndOffsetInLineMap","mStart","mEnd","coverStart","coverEnd","getUsefulRect","place","maybeUpdateRectForZooming","rSpan","charWidth","rbot","bot","singleCursorHeightPerLine","screen","logicalXDPI","deviceXDPI","scaleX","scaleY","logicalYDPI","deviceYDPI","clearLineMeasurementCacheFor","clearLineMeasurementCache","externalMeasure","clearCaches","cachedCharWidth","cachedTextHeight","lineNumChars","pageScrollX","pageScrollY","widgetTopHeight","intoCoordSystem","includeWidgets","yOff","viewOffset","lOff","xOff","fromCoordSystem","coords","localBox","lineSpaceBox","charCoords","cursorCoords","preparedMeasure","getBidi","partPos","other","estimateCoords","PosWithInfo","outside","xRel","coordsChar","coordsCharInner","rangeEnd","wrappedLineExtent","begin","wrappedLineExtentChar","boxIsAfter","ltr","coordsBidiPartWrapped","coordsBidiPart","baseX","chAround","boxAround","atLeft","atStart","_lineNo","closestDist","endX","dist","textHeight","anchor","compensateForHScroll","perLine","widgetsHeight","estimateLineHeights","est","posFromMouse","liberal","forRect","e$1","colDiff","regChange","lendiff","updateLineNumbers","viewChanged","resetView","cut","viewCuttingPoint","cut$1","cutTop","cutBot","regLineChange","oldN","newN","adjustView","countDirtyView","dirty","showSelection","prepareSelection","primary","curFragment","cursors","selFragment","ranges","primIndex","showCursorWhenSelecting","drawSelectionCursor","drawSelectionRange","cursor","cursorHeight","getWrapperElement","charPos","otherCursor","cmpCoords","leftSide","rightSide","sizerWidth","docLTR","drawForLine","fromArg","toArg","lineLen","wrapX","extent","fromPos","toPos","openStart","openEnd","openRight","topLeft","topRight","botLeft","botRight","sFrom","sTo","fromLine","toLine","singleVLine","leftEnd","rightStart","restartBlink","blinker","cursorDiv","visibility","cursorBlinkRate","onBlur","ensureFocus","onFocus","delayBlurEvent","delayingBlurEvent","draggingText","selForContextMenu","receivedFocus","updateHeightsInViewport","prevBottom","lineDiv","viewTop","oldHeight","mustScroll","updateWidgetHeight","chWidth","visibleLines","viewport","ensure","ensureFrom","ensureTo","maybeScrollWindow","doScroll","innerHeight","scrollNode","scrollPosIntoView","limit","endCoords","scrollPos","calculateScrollPos","startTop","startLeft","updateScrollTop","setScrollLeft","snapMargin","screentop","docBottom","atTop","atBottom","newTop","gutterSpace","screenleft","screenw","tooWide","addToScrollTop","resolveScrollToPos","ensureCursorVisible","scrollToPos","cursorScrollMargin","scrollToCoords","scrollToRange","scrollToCoordsRange","sPos","updateDisplaySimple","setScrollTop","startWorker","forceScroll","scrollHeight","scrollbars","isScroller","scrollWidth","alignHorizontally","measureForScrollbars","gutterW","docH","barLeft","docHeight","NativeScrollbars","vert","horiz","checkedZeroWidth","minHeight","minWidth","needsH","needsV","sWidth","totalHeight","totalWidth","zeroWidthHack","disableHoriz","enableZeroWidthBar","disableVert","bar","delay","maybeDisable","NullScrollbars","updateScrollbars","startWidth","startHeight","updateScrollbarsInner","sizes","heightForcer","borderBottom","scrollbarFiller","coverGutterNextToScrollbar","gutterFiller","scrollbarModel","initScrollbars","scrollbarStyle","nextOpId","startOperation","updateInput","typing","changeObjs","selectionChanged","updateMaxLine","markArrays","endOperation","endOperations","endOperation_R1","endOperation_W1","endOperation_R2","endOperation_W2","endOperation_finish","maybeClipScrollbars","mustUpdate","DisplayUpdate","updatedDisplay","updateDisplayIfNeeded","barMeasure","adjustWidthTo","maxScrollLeft","preparedSelection","takeFocus","setDocumentHeight","postUpdateDisplay","wheelStartX","wheelStartY","maybeHiddenMarkers","unhidden","maybeUnhiddenMarkers","finish","runInOp","methodOp","docMethodOp","highlight","highlightWorker","workTime","changedLines","oldStyles","highlighted","oldCls","newCls","ischange","workDelay","editorIsHidden","wrapperHeight","oldDisplayWidth","scrollbarsClipped","borderRightWidth","selectionSnapshot","anchorOffset","focusOffset","restoreSelection","snapshot","renderedView","maybeUpdateLineNumberWidth","viewportMargin","different","lastWrapHeight","lastWrapWidth","toUpdate","selSnapshot","patchDisplay","selectionDiv","reportedViewFrom","reportedViewTo","updateNumbersFrom","currentWheelTarget","updateNumber","updateGutterSpace","alignWidgets","align","innerW","lineGutter","lineNumInnerWidth","lineNumWidth","getGutters","sawLineNumbers","renderGutters","specs","gElt","updateGutters","Display","wheelDX","wheelDY","activeTouch","wheelSamples","wheelPixelsPerUnit","wheelEventDelta","dx","wheelDeltaX","dy","wheelDeltaY","HORIZONTAL_AXIS","VERTICAL_AXIS","wheelEventPixels","onScrollWheel","canScrollX","canScrollY","pixels","movedX","movedY","Selection","here","there","deepCopy","Range","somethingSelected","normalizeSelection","mayTouch","selectionsMayTouch","prim","inv","simpleSelection","changeEnd","adjustForChange","computeSelAfterChange","offsetPos","computeReplacedSel","hint","oldPrev","newPrev","loadMode","modeOption","resetModeState","isWholeLineUpdate","wholeLineUpdateBefore","updateDoc","spansFor","linesFor","firstLine","lastText","lastSpans","nlines","added$1","added$2","linkedDocs","sharedHistOnly","sharedHist","linked","shared","attachDoc","setDirectionClass","directionChanged","undone","undoDepth","lastModTime","lastSelTime","lastOp","lastSelOp","lastOrigin","lastSelOrigin","generation","maxGeneration","historyChangeFromChange","histChange","attachLocalSpans","clearSelectionEvents","lastChangeEvent","hist","addChangeToHistory","selAfter","opId","historyEventDelay","pushSelectionToHistory","selectionEventCanBeMerged","addSelectionToHistory","clearRedo","dest","removeClearedSpans","explicitlyCleared","getOldSpans","mergeOldSpans","stretched","oldCur","stretchCur","copyHistoryArray","newGroup","instantiateSel","newChanges","extendRange","posBefore","extendSelection","extendSelections","heads","replaceOneSelection","setSimpleSelection","filterSelectionChange","setSelectionReplaceHistory","setSelectionNoUndo","NaN","setSelectionInner","skipAtomicInSelection","reCheckSelection","mayClear","newAnchor","skipAtomic","newHead","skipAtomicInner","oldPos","preventCursorLeft","selectLeft","preventCursorRight","selectRight","atomic","near","movePos","far","cantEdit","filterChange","canceled","makeChange","ignoreReadOnly","suppressEdits","makeChangeInner","makeChangeSingleDoc","rebased","rebaseHist","makeChangeFromHistory","allowSelectionOnly","suppress","antiChanges","returned","shiftDoc","distance","makeChangeSingleDocInEditor","recomputeMaxLength","checkWidthStart","changesHandler","changeHandler","splitLines","rebaseHistSelSingle","rebaseHistArray","sub","copied","changeLine","changeType","LeafChunk","BranchChunk","removeInner","insertInner","iterN","leaf","maybeSpill","me","sibling","myIndex","used","LineWidget","adjustScrollWhenAboveVisible","addLineWidget","aboveVisible","this$1","oldH","nextMarkerId","TextMarker","markText","markTextShared","replacedWith","addToHistory","curLine","clearOnEnter","clearHistory","withOp","visual","dHeight","SharedTextMarker","isParent","findSharedMarkers","findMarks","copySharedMarkers","mFrom","mTo","subMark","detachSharedMarkers","subMarker","nextDocId","Doc","lineSep","cleanGeneration","lineSeparator","getLineHandle","getLineNumber","getLineHandleVisualStart","lineCount","listSelections","extendSelectionsBy","setSelections","addSelection","getSelections","replaceSelection","dup","replaceSelections","newSel","undoSelection","redoSelection","setExtending","getExtending","historySize","markClean","changeGeneration","forceSplit","isClean","gen","getHistory","setHistory","histData","setGutterMarker","gutterID","clearGutter","lineInfo","addLineClass","removeLineClass","removeLineWidget","setBookmark","realOpts","findMarksAt","getAllMarks","posFromIndex","sepSize","indexFromPos","copyHistory","linkedDoc","unlinkDoc","splitIds","iterLinkedDocs","setDirection","eachLine","lastDrop","clearDragCursor","isReadOnly","File","read","markAsReadAndPasteIfAllFilesAreRead","readTextFromFile","allowDropFileTypes","readAsText","text$1","onDragStart","effectAllowed","img","_top","dragCursor","forEachCodeMirror","byClass","editors","globalsRegistered","ensureGlobalHandlers","registerGlobalHandlers","resizeTimer","onResize","setSize","keyNames","keyMap","normalizeKeyName","normalizeKeyMap","keyname","lookupKey","getKeyMap","fallthrough","isModifierKey","addModifierNames","noShift","keyName","altGraphKey","deleteNearSelection","compute","kill","toKill","replaced","moveCharLogically","moveLogically","endOfLine","visually","prep","targetTop","moveVisually","bidi","mv","getWrappedLineExtent","moveInStorageOrder","searchInVisualLine","getRes","nextCh","basic","pcDefault","emacsy","macDefault","singleSelection","killLine","deleteLine","delLineLeft","delWrappedLineLeft","delWrappedLineRight","rightPos","goDocEnd","goLineStart","goLineStartSmart","lineStartSmart","goLineEnd","lineEnd","goLineRight","goLineLeft","goLineLeftSmart","goLineUp","moveV","goLineDown","goPageUp","goPageDown","goCharLeft","moveH","goCharRight","goColumnLeft","goColumnRight","goWordLeft","goGroupRight","goGroupLeft","goWordRight","delCharBefore","deleteH","delCharAfter","delWordBefore","delWordAfter","delGroupBefore","delGroupAfter","indentAuto","indentSelection","indentMore","indentLess","insertTab","insertSoftTab","spaces","defaultTab","transposeChars","newlineAndIndent","openLine","toggleOverwrite","firstNonWS","inWS","doHandleBinding","bound","dropShift","ensurePolled","prevShift","lookupKeyForEditor","keyMaps","extraKeys","stopSeq","dispatchKey","seq","keySeq","dispatchKeyInner","handleKeyBinding","motion","handleCharBinding","lastStoppedKey","onKeyDown","getField","handled","showCrossHair","charCode","lastClick","lastDoubleClick","DOUBLECLICK_DELAY","PastClick","clickRepeat","now","onMouseDown","supportsTouch","clickInGutter","selectingText","handleMappedButton","leftButtonDown","onContextMenu","configureMouse","moveOnDrag","contained","leftButtonStartDrag","leftButtonSelect","mouseMove","preventScroll","e2","rangeForUnit","findWordAt","ourRange","ourIndex","startSel","extendTo","startCol","posCol","oldRange","ranges$1","bidiSimplify","editorSize","curCount","anchorLine","boundary","headIndex","usePart","gutterEvent","mX","mY","lineBox","contextMenuInGutter","themeChanged","Init","optionHandlers","defineOptions","deflt","notOnInit","defineOption","newBreaks","getInputField","spellcheck","autocorrect","autocapitalize","attach","wrappingChanged","integer","readOnlyChanged","screenReaderLabelChanged","dragDropChanged","resetPosition","funcs","dragFunctions","leave","inputStyles","inputStyle","pasteIncoming","cutIncoming","autofocus","registerEventHandlers","finishInit","initHooks","textRendering","word","touchFinished","prevTouch","finishTouch","isMouseLikeTouchEvent","touch","radiusX","radiusY","farAway","how","aggressive","indent","curSpace","curSpaceString","indentUnit","indentString","indentWithTabs","pos$1","defineInitHook","lastCopied","setLastCopied","newLastCopied","applyTextInput","deleted","recent","paste","textLines","multiPaste","pasteLinesPerSelection","lineWise","changeEvent","triggerElectric","handlePaste","pasted","disableInput","electricChars","smartIndent","getModeAt","electricInput","copyableRanges","lineRange","disableBrowserMagic","field","hiddenTextarea","addEditorMethods","setOption","addKeyMap","removeKeyMap","addOverlay","modeSpec","removeOverlay","newRanges","getLineTokens","getTokenTypeAt","getHelper","getHelpers","help","_global","getStateAfter","defaultTextHeight","defaultCharWidth","getViewport","addWidget","vspace","hspace","triggerOnKeyDown","triggerOnKeyPress","triggerOnKeyUp","triggerOnMouseDown","findPosH","hitSide","rtlMoveVisually","findPosV","goalColumn","goals","headPos","startChar","interpret","swapDoc","phrase","phraseText","phrases","getScrollerElement","getGutterElement","registerHelper","registerGlobalHelper","predicate","origDir","lineDir","findNextLine","moveOnce","boundToLine","astral","sawType","pageSize","moveAmount","ContentEditableInput","lastAnchorNode","lastAnchorOffset","lastFocusNode","lastFocusOffset","polling","composing","gracePeriod","readDOMTimeout","posToDOM","isInGutter","scan","badPos","bad","domTextBetween","closing","extraLinebreak","recognizeMarker","addText","walk","cmText","markerID","isBlock","domToPos","lineNode","locateNodeInLineView","topNode","curNode","previousSibling","dist$1","belongsToInput","onCopyCut","lineWiseCopyCut","clearData","kludge","hadFocus","showPrimarySelection","updateFromDOM","readFromDOMSoon","forceCompositionEnd","showMultipleSelections","curAnchor","curFocus","rng","startGracePeriod","rememberSelection","selectionInEditor","commonAncestorContainer","poll","pollSelection","pollInterval","pollContent","fromIndex","fromNode","toNode","toIndex","newText","oldText","cutFront","cutEnd","oldTop","maxCutFront","newBot","oldBot","maxCutEnd","chFrom","chTo","TextareaInput","prevInput","pollingFast","textarea","tabindex","realSubmit","leaveSubmitMethodAlone","wrappedSubmit","getTextArea","toTextArea","addLegacyProps","cmpPos","createField","prepareCopyCut","fastPoll","_display","moveInputWithCursor","wrapOff","lineOff","teTop","teLeft","drawn","contextMenuPending","slowPoll","missed","same","resetSelectionOnContextMenu","oldScrollY","oldCSS","oldWrapperCSS","wrapperBox","scrollY","rehide","detectingSelectAll","prepareSelectAllHack","mouseup","extval","dontDelegate","defineDocExtension","version","keySet","parserConfig","propertyKeywords","tokenHooks","documentTypes","mediaTypes","mediaFeatures","mediaValueKeywords","nonStandardPropertyKeywords","fontProperties","counterDescriptors","colorKeywords","valueKeywords","allowNested","lineComment","supportsAtComponent","highlightNonStandardPropertyKeywords","tp","tokenBase","tokenize","tokenString","tokenParenthesized","quote","escaped","pushContext","popContext","pass","popAndPass","wordAsValue","stateArg","_stream","atBlock","cx","blockCommentStart","blockCommentEnd","blockCommentContinue","fold","documentTypes_","mediaTypes_","mediaFeatures_","mediaValueKeywords_","propertyKeywords_","nonStandardPropertyKeywords_","colorKeywords_","valueKeywords_","allWords","tokenCComment","maybeEnd","defaultTags","maybeBackup","pat","attrRegexpCache","getAttrRegexp","regexp","getAttrValue","getTagRegexp","anchored","addTags","findMatchingMode","tagInfo","tagText","htmlMode","multilineTagIndentFactor","multilineTagIndentPastTag","allowMissingTagName","tags","configTags","configScript","scriptTypes","htmlState","inTag","endTagA","endTag","localState","localMode","statementIndent","jsonldMode","jsonld","trackScope","isTS","typescript","wordRE","wordCharacters","keywords","kw","A","B","C","D","operator","atom","isOperatorChar","isJsonldKeyword","readRegexp","inSet","tokenComment","expressionAllowed","tokenQuasi","lastType","propertyIsEnumerable","brackets","findFatArrow","fatArrowAt","arrow","depth","sawSomething","bracket","atomicTypes","JSLexical","inScope","varname","localVars","vars","parseJS","marked","expression","statement","lex","inList","newContext","registerVarScoped","Var","globalVars","isModifier","defaultVars","pushcontext","pushblockcontext","popcontext","pushlex","poplex","expect","wanted","exp","vardef","parenExpr","maybeexpression","maybeelse","functiondef","forspec","enumdef","typename","typeexpr","maybelabel","maybeCatchBinding","afterExport","afterImport","funarg","expressionInner","expressionNoComma","noComma","arrowBodyNoComma","arrowBody","commasep","maybeop","maybeoperatorNoComma","maybeoperatorComma","classExpression","arrayLiteral","contCommasep","objprop","quasi","maybeTarget","expr","continueQuasi","targetNoComma","maybeTypeArgs","getterSetter","afterprop","maybetype","what","proceed","maybetypeOrIn","mayberettype","isKW","afterType","typeprops","typearg","maybeReturnType","quasiType","typeprop","functiondecl","continueQuasiType","typeparam","maybeTypeDefault","maybeAssign","vardefCont","eltpattern","proppattern","forspec1","forspec2","classNameAfter","classBody","classfield","maybeFrom","exportField","importSpec","maybeMoreImports","maybeAs","enummember","isContinuedStatement","basecolumn","doubleIndentSwitch","closeBrackets","skipExpression","htmlConfig","autoSelfClosers","implicitlyClosed","contextGrabbers","doNotIndent","allowUnquoted","allowMissing","caseFold","xmlConfig","editorConf","config_","inText","inBlock","doctype","baseState","tagStart","inAttribute","stringStartCol","closure","isInAttribute","terminator","lower","startOfLine","noIndent","maybePopContext","nextTagName","parentTagName","tagNameState","closeTagNameState","attrState","matchClosing","closeState","closeStateErr","attrEqState","attrValueState","attrContinuedState","isInText","baseIndent","fullLine","alignCDATA","tagAfter","grabbers","skipAttribute","xmlCurrentTag","xmlCurrentContext","runtime","Op","hasOwn","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","enumerable","configurable","writable","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","GenStateSuspendedStart","arg","GenStateExecuting","GenStateCompleted","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","setPrototypeOf","__proto__","awrap","async","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","webpackContext","webpackContextResolve","__webpack_require__","_arrayLikeToArray","arr2","_assertThisInitialized","ReferenceError","asyncGeneratorStep","_next","_throw","_asyncToGenerator","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","_defineProperty","_getPrototypeOf","_setPrototypeOf","_inherits","subClass","superClass","_objectWithoutProperties","excluded","sourceKeys","getOwnPropertySymbols","sourceSymbolKeys","_possibleConstructorReturn","_slicedToArray","_i","_s","_arr","_n","_d","unsupportedIterableToArray","_taggedTemplateLiteral","strings","freeze","defineProperties","_toConsumableArray","arrayLikeToArray","_typeof","_unsupportedIterableToArray","minLen","ArrayProto","ObjProto","SymbolProto","supportsArrayBuffer","ArrayBuffer","supportsDataView","DataView","nativeIsArray","nativeKeys","nativeCreate","nativeIsView","isView","_isNaN","_isFinite","hasEnumBug","nonEnumerableProps","MAX_ARRAY_INDEX","pow","restArguments","tagTester","nodelist","Int8Array","hasStringTagBug","isIE11","Map","isDataView","getInt8","isArrayBuffer","buffer","isSymbol","constant","createSizePropertyCheck","getSizeProperty","sizeProperty","shallowProperty","typedArrayPattern","collectNonEnumProps","emulatedSet","nonEnumIdx","proto","isMatch","_keys","_wrapped","toBufferView","bufferSource","Uint8Array","byteOffset","valueOf","tagDataView","aStack","bStack","deepEq","areArrays","aCtor","bCtor","allKeys","ie11fingerprint","weakMapMethods","forEachName","commonInit","mapTail","mapMethods","setMethods","functions","createAssigner","keysFunc","baseCreate","Ctor","extendOwn","tap","interceptor","toPath","deepGet","defaultValue","identity","optimizeCb","argCount","accumulator","baseIteratee","mapObject","currentKey","propertyOf","accum","getTime","createEscaper","escaper","testRegexp","replaceRegexp","templateSettings","evaluate","interpolate","noMatch","escapes","escapeChar","bareIdentifier","oldSettings","argument","variable","idCounter","_chain","executeBound","sourceFunc","boundFunc","callingContext","boundArgs","callArgs","memoize","hasher","throttle","later","leading","throttled","_now","trailing","immediate","passed","debounced","_args","negate","compose","memo","findKey","createPredicateIndexFinder","sortedIndex","low","high","createIndexFinder","predicateFind","createReduce","reducer","guard","contextPath","lastComputed","rand","criteria","reStrSymbol","keyInObj","compact","otherArrays","uniq","isSorted","seen","arrays","intersection","argsLength","unzip","chainResult","mixin","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","fromElement","projectData","noticeOnUnload","forceClass","defaultCommand","mediaCondition","jsInHtml","multipleSelection","optsHtml","optsCss","avoidDefaults","dragMode","cssIcons","arrowUp","i18n","richTextEditor","codeManager","cssComposer","multiFrames","Selectable","Selected","hasComponent","getByComponent","timedInterval","updateItr","deps","Window","ar","Extender","logs","warning","EditorModel","editing","clipboard","previousModel","storables","modules","toLoad","toLog","attrsOrig","pageManager","loadModule","updateChanges","_checkReady","listenLog","eventFrom","eventTo","loadData","stm","getDirtyCount","onbeforeunload","moduleName","Mod","cfgParent","cfg","destroyed","__skip","handleUpdates","lastComponent","allComponents","multiple","mltSel","toggleSelected","selColl","selIndex","removeComponent","getJs","avoidProt","avoidProtected","protCss","storeData","clearDirtyCount","editingCmp","defaultRunning","grapesjs","destroyAll","logNs","colorPicker","varName","contEl","shallowCanvasEl","addComponents","getSelectedToStyle","selectToggle","setDevice","getDevice","setCustomRte","setCustomParserCss","setDragMode","onReady","plugins","agent","isIE","originalCreateHTMLDocument","DOMImplementation","createHTMLDocument","implementation","polyfills","plugin","defaultConfig","autorender","pluginsOpts","__GJS_VERSION__","headless","Editor","pluginId","plgOptions","wplg","loadOnStart"],"sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index 0a7e30b28..4ecf2c981 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "grapesjs", "description": "Free and Open Source Web Builder Framework", - "version": "0.19.0", + "version": "0.19.1", "author": "Artur Arseniev", "license": "BSD-3-Clause", "homepage": "http://grapesjs.com", @@ -26,6 +26,7 @@ "devDependencies": { "@babel/cli": "^7.15.7", "@babel/preset-typescript": "^7.16.7", + "@types/backbone": "^1.4.15", "@vuepress/plugin-google-analytics": "^1.8.2", "documentation": "^13.2.5", "eslint": "^8.12.0", @@ -61,7 +62,7 @@ "env": { "test": { "presets": [ - "@babel/preset-env", + "@babel/preset-env", "@babel/preset-typescript" ] } diff --git a/src/abstract/Module.ts b/src/abstract/Module.ts index caab8b65a..3aa05d605 100644 --- a/src/abstract/Module.ts +++ b/src/abstract/Module.ts @@ -1,5 +1,4 @@ import EditorModel from "../editor/model/Editor"; -import { ModuleConfig } from "./ModuleConfig"; export interface IModule { init(cfg: any): void; @@ -11,6 +10,11 @@ export interface IModule { postRender?(view: any): void; } +interface ModuleConfig{ + name: string; + stylePrefix?: string; +} + export default abstract class Module implements IModule { @@ -22,10 +26,10 @@ export default abstract class Module constructor( em: EditorModel, - confClass: { new (em: EditorModel, module: Module): T } + config: T ) { this._em = em; - this._config = new confClass(em, this); + this._config = config; } public get em() { diff --git a/src/abstract/ModuleConfig.ts b/src/abstract/ModuleConfig.ts deleted file mode 100644 index ff7d770dd..000000000 --- a/src/abstract/ModuleConfig.ts +++ /dev/null @@ -1,30 +0,0 @@ -import Module from "./Module"; - -export abstract class ModuleConfig { - protected abstract stylePrefix?: string; - private: boolean = false; - abstract name: string; - module: Module; - - public get pfx() { - return this.module.em.getConfig() || ""; - } - public get ppfx() { - return this.pfx + this.stylePrefix || ""; - } - - constructor(module: Module) { - this.module = module; - //console.log(module.name) - /*const moduleConfig: { [id: string]: any } = - config[module.name as keyof EditorConfig]; - if (moduleConfig) { - for (const key in moduleConfig) { - if (Object.prototype.hasOwnProperty.call(this, key)) { - console.log(key); - const element = moduleConfig[key]; - } - } - }*/ - } -} diff --git a/src/abstract/View.ts b/src/abstract/View.ts index 29090a0c4..c0c158b7c 100644 --- a/src/abstract/View.ts +++ b/src/abstract/View.ts @@ -6,11 +6,11 @@ export default class View< TElement extends Element = HTMLElement > extends Backbone.View { protected get pfx() { - return this.model.module.config.pfx; + return this.model.module.em.config.stylePrefix || ""; } protected get ppfx() { - return this.model.module.config.ppfx; + return this.pfx + this.model.module.config.stylePrefix || ""; } protected get em() { diff --git a/src/editor/model/Editor.js b/src/editor/model/Editor.js index adfee48e3..b28e1818c 100644 --- a/src/editor/model/Editor.js +++ b/src/editor/model/Editor.js @@ -127,6 +127,10 @@ export default class EditorModel extends Model { this.listenTo(this, `log:${event}`, logs[event]); } + get config() { + return this.config; + } + /** * Get configurations * @param {string} [prop] Property name diff --git a/yarn.lock b/yarn.lock index 80e19c97e..971f32bdc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -38,24 +38,24 @@ "version" "7.17.7" "@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.1.0", "@babel/core@^7.11.0", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.17.5", "@babel/core@^7.4.0-0", "@babel/core@^7.8.4": - "integrity" "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==" - "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz" - "version" "7.17.8" + "integrity" "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==" + "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz" + "version" "7.17.9" dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.7" + "@babel/generator" "^7.17.9" "@babel/helper-compilation-targets" "^7.17.7" "@babel/helper-module-transforms" "^7.17.7" - "@babel/helpers" "^7.17.8" - "@babel/parser" "^7.17.8" + "@babel/helpers" "^7.17.9" + "@babel/parser" "^7.17.9" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" + "@babel/traverse" "^7.17.9" "@babel/types" "^7.17.0" "convert-source-map" "^1.7.0" "debug" "^4.1.0" "gensync" "^1.0.0-beta.2" - "json5" "^2.1.2" + "json5" "^2.2.1" "semver" "^6.3.0" "@babel/core@7.12.3": @@ -89,10 +89,10 @@ "jsesc" "^2.5.1" "source-map" "^0.5.0" -"@babel/generator@^7.17.3", "@babel/generator@^7.17.7", "@babel/generator@^7.4.0": - "integrity" "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==" - "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz" - "version" "7.17.7" +"@babel/generator@^7.17.9", "@babel/generator@^7.4.0": + "integrity" "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==" + "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz" + "version" "7.17.9" dependencies: "@babel/types" "^7.17.0" "jsesc" "^2.5.1" @@ -172,21 +172,13 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-function-name@^7.16.7": - "integrity" "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==" - "resolved" "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz" - "version" "7.16.7" +"@babel/helper-function-name@^7.16.7", "@babel/helper-function-name@^7.17.9": + "integrity" "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==" + "resolved" "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz" + "version" "7.17.9" dependencies: - "@babel/helper-get-function-arity" "^7.16.7" "@babel/template" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-get-function-arity@^7.16.7": - "integrity" "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==" - "resolved" "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz" - "version" "7.16.7" - dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.17.0" "@babel/helper-hoist-variables@^7.16.7": "integrity" "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==" @@ -296,13 +288,13 @@ "@babel/traverse" "^7.16.8" "@babel/types" "^7.16.8" -"@babel/helpers@^7.12.1", "@babel/helpers@^7.17.8": - "integrity" "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==" - "resolved" "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz" - "version" "7.17.8" +"@babel/helpers@^7.12.1", "@babel/helpers@^7.17.9": + "integrity" "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==" + "resolved" "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz" + "version" "7.17.9" dependencies: "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" + "@babel/traverse" "^7.17.9" "@babel/types" "^7.17.0" "@babel/highlight@^7.16.7": @@ -314,10 +306,10 @@ "chalk" "^2.0.0" "js-tokens" "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.10.5", "@babel/parser@^7.12.0", "@babel/parser@^7.13.9", "@babel/parser@^7.16.7", "@babel/parser@^7.17.3", "@babel/parser@^7.17.8", "@babel/parser@^7.4.3": - "integrity" "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==" - "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz" - "version" "7.17.8" +"@babel/parser@^7.1.0", "@babel/parser@^7.10.5", "@babel/parser@^7.12.0", "@babel/parser@^7.13.9", "@babel/parser@^7.16.7", "@babel/parser@^7.17.9", "@babel/parser@^7.4.3": + "integrity" "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==" + "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz" + "version" "7.17.9" "@babel/parser@^7.12.3", "@babel/parser@7.12.3": "integrity" "sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw==" @@ -983,18 +975,18 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.10.5", "@babel/traverse@^7.12.1", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.4.3": - "integrity" "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==" - "resolved" "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz" - "version" "7.17.3" +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.10.5", "@babel/traverse@^7.12.1", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9", "@babel/traverse@^7.4.3": + "integrity" "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==" + "resolved" "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz" + "version" "7.17.9" dependencies: "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.3" + "@babel/generator" "^7.17.9" "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" + "@babel/helper-function-name" "^7.17.9" "@babel/helper-hoist-variables" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.3" + "@babel/parser" "^7.17.9" "@babel/types" "^7.17.0" "debug" "^4.1.0" "globals" "^11.1.0" @@ -1340,6 +1332,14 @@ dependencies: "@babel/types" "^7.3.0" +"@types/backbone@^1.4.15": + "integrity" "sha512-WWeKtYlsIMtDyLbbhkb96taJMEbfQBnuz7yw1u0pkphCOtksemoWhIXhK74VRCY9hbjnsH3rsJu2uUiFtnsEYg==" + "resolved" "https://registry.npmjs.org/@types/backbone/-/backbone-1.4.15.tgz" + "version" "1.4.15" + dependencies: + "@types/jquery" "*" + "@types/underscore" "*" + "@types/body-parser@*": "integrity" "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==" "resolved" "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz" @@ -1450,6 +1450,13 @@ "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" +"@types/jquery@*": + "integrity" "sha512-X1gtMRMbziVQkErhTQmSe2jFwwENA/Zr+PprCkF63vFq+Yt5PZ4AlKqgmeNlwgn7dhsXEK888eIW2520EpC+xg==" + "resolved" "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.14.tgz" + "version" "3.5.14" + dependencies: + "@types/sizzle" "*" + "@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": "integrity" "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" "resolved" "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz" @@ -1522,6 +1529,11 @@ "@types/mime" "^1" "@types/node" "*" +"@types/sizzle@*": + "integrity" "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==" + "resolved" "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz" + "version" "2.3.3" + "@types/sockjs@^0.3.33": "integrity" "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==" "resolved" "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz" @@ -1534,6 +1546,11 @@ "resolved" "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz" "version" "1.0.1" +"@types/underscore@*": + "integrity" "sha512-uO4CD2ELOjw8tasUrAhvnn2W4A0ZECOvMjCivJr4gA9pGgjv+qxKWY9GLTMVEK8ej85BxQOocUyE7hImmSQYcg==" + "resolved" "https://registry.npmjs.org/@types/underscore/-/underscore-1.11.4.tgz" + "version" "1.11.4" + "@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": "integrity" "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" "resolved" "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz" @@ -1547,14 +1564,14 @@ "@types/node" "*" "@types/yargs-parser@*": - "integrity" "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" - "resolved" "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz" - "version" "21.0.0" + "integrity" "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==" + "resolved" "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz" + "version" "20.2.0" "@types/yargs@^13.0.0": - "integrity" "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==" - "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz" - "version" "13.0.12" + "integrity" "sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ==" + "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.11.tgz" + "version" "13.0.11" dependencies: "@types/yargs-parser" "*" @@ -2260,10 +2277,10 @@ "resolved" "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz" "version" "5.7.4" -"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^7.0.0": - "integrity" "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - "resolved" "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" - "version" "7.4.1" +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^8", "acorn@^8.4.1", "acorn@^8.5.0", "acorn@^8.7.0": + "integrity" "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz" + "version" "8.7.0" "acorn@^6.0.1": "integrity" "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" @@ -2275,20 +2292,10 @@ "resolved" "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz" "version" "6.4.2" -"acorn@^8.5.0": - "integrity" "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" - "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz" - "version" "8.7.0" - -"acorn@^8.7.0": - "integrity" "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" - "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz" - "version" "8.7.0" - -"acorn@^8", "acorn@^8.4.1": - "integrity" "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" - "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz" - "version" "8.7.0" +"acorn@^7.0.0": + "integrity" "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" + "version" "7.4.1" "add-stream@^1.0.0": "integrity" "sha1-anmQQ3ynNtXhKI25K9MmbV9csqo=" @@ -2428,9 +2435,9 @@ "version" "2.1.1" "ansi-regex@^3.0.0": - "integrity" "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==" - "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz" - "version" "3.0.1" + "integrity" "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz" + "version" "3.0.0" "ansi-regex@^4.0.0", "ansi-regex@^4.1.0": "integrity" "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" @@ -2847,6 +2854,13 @@ "resolved" "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" "version" "2.2.0" +"bindings@^1.5.0": + "integrity" "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==" + "resolved" "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz" + "version" "1.5.0" + dependencies: + "file-uri-to-path" "1.0.0" + "bl@^4.1.0": "integrity" "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==" "resolved" "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" @@ -3365,9 +3379,9 @@ "supports-color" "^7.1.0" "chalk@^4.0.0": - "integrity" "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==" - "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz" - "version" "4.1.1" + "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + "version" "4.1.2" dependencies: "ansi-styles" "^4.1.0" "supports-color" "^7.1.0" @@ -4538,7 +4552,14 @@ dependencies: "ms" "^2.1.1" -"debug@^4.0.0", "debug@^4.0.1", "debug@^4.1.0", "debug@^4.1.1", "debug@^4.3.2": +"debug@^4.0.0", "debug@^4.0.1", "debug@^4.1.0", "debug@^4.1.1": + "integrity" "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==" + "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz" + "version" "4.3.1" + dependencies: + "ms" "2.1.2" + +"debug@^4.3.2": "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==" "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" "version" "4.3.4" @@ -4607,9 +4628,9 @@ "version" "0.6.0" "deep-is@^0.1.3", "deep-is@~0.1.3": - "integrity" "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" - "resolved" "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz" - "version" "0.1.3" + "integrity" "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + "resolved" "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" + "version" "0.1.4" "deepmerge@^1.5.2": "integrity" "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==" @@ -5123,7 +5144,7 @@ "memory-fs" "^0.5.0" "tapable" "^1.0.0" -"enhanced-resolve@^5.0.0", "enhanced-resolve@^5.8.3": +"enhanced-resolve@^5.0.0": "integrity" "sha512-weDYmzbBygL7HzGGS26M3hGQx68vehdEg6VUmqSOaFzXExFqlnKuSvsEJCVGQHScS8CQMbrAqftT+AzzHNt/YA==" "resolved" "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.0.tgz" "version" "5.9.0" @@ -5131,6 +5152,14 @@ "graceful-fs" "^4.2.4" "tapable" "^2.2.0" +"enhanced-resolve@^5.9.2": + "integrity" "sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==" + "resolved" "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz" + "version" "5.9.2" + dependencies: + "graceful-fs" "^4.2.4" + "tapable" "^2.2.0" + "entities@^2.0.0": "integrity" "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" "resolved" "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" @@ -5373,21 +5402,21 @@ dependencies: "estraverse" "^5.2.0" -"estraverse@^4.1.1", "estraverse@^4.2.0": +"estraverse@^4.1.1": "integrity" "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" "version" "4.3.0" -"estraverse@^5.1.0": +"estraverse@^4.2.0": + "integrity" "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + "version" "4.3.0" + +"estraverse@^5.1.0", "estraverse@^5.2.0": "integrity" "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz" "version" "5.2.0" -"estraverse@^5.2.0": - "integrity" "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" - "version" "5.3.0" - "estree-walker@^2.0.1": "integrity" "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" "resolved" "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" @@ -5811,9 +5840,9 @@ "rimraf" "^3.0.2" "flatted@^3.1.0": - "integrity" "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==" - "resolved" "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz" - "version" "3.1.1" + "integrity" "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" + "resolved" "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz" + "version" "3.2.5" "flush-write-stream@^1.0.0", "flush-write-stream@^1.0.2": "integrity" "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==" @@ -5938,6 +5967,24 @@ "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" "version" "1.0.0" +"fsevents@^1.2.7": + "integrity" "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==" + "resolved" "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz" + "version" "1.2.13" + dependencies: + "bindings" "^1.5.0" + "nan" "^2.12.1" + +"fsevents@~2.3.1": + "integrity" "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==" + "resolved" "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" + "version" "2.3.2" + +"fsevents@~2.3.2": + "integrity" "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==" + "resolved" "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" + "version" "2.3.2" + "function-bind@^1.1.1": "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" @@ -6201,9 +6248,9 @@ "version" "11.12.0" "globals@^13.6.0": - "integrity" "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==" - "resolved" "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz" - "version" "13.9.0" + "integrity" "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==" + "resolved" "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz" + "version" "13.13.0" dependencies: "type-fest" "^0.20.2" @@ -6569,9 +6616,9 @@ "version" "1.4.0" "html-entities@^2.3.2": - "integrity" "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" - "resolved" "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz" - "version" "2.3.3" + "integrity" "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==" + "resolved" "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz" + "version" "2.3.2" "html-escaper@^2.0.0": "integrity" "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" @@ -7218,7 +7265,14 @@ dependencies: "is-extglob" "^2.1.0" -"is-glob@^4.0.0", "is-glob@^4.0.1", "is-glob@^4.0.3", "is-glob@~4.0.1": +"is-glob@^4.0.0", "is-glob@^4.0.1", "is-glob@~4.0.1": + "integrity" "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==" + "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "is-extglob" "^2.1.1" + +"is-glob@^4.0.3": "integrity" "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==" "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" "version" "4.0.3" @@ -8061,12 +8115,10 @@ dependencies: "minimist" "^1.2.0" -"json5@^2.1.2": - "integrity" "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==" - "resolved" "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz" - "version" "2.2.0" - dependencies: - "minimist" "^1.2.5" +"json5@^2.1.2", "json5@^2.2.1": + "integrity" "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" + "resolved" "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz" + "version" "2.2.1" "jsonfile@^4.0.0": "integrity" "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=" @@ -8608,12 +8660,12 @@ dependencies: "semver" "^6.0.0" -"makeerror@1.0.12": - "integrity" "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==" - "resolved" "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" - "version" "1.0.12" +"makeerror@1.0.x": + "integrity" "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=" + "resolved" "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz" + "version" "1.0.11" dependencies: - "tmpl" "1.0.5" + "tmpl" "1.0.x" "map-cache@^0.2.0", "map-cache@^0.2.2": "integrity" "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" @@ -9121,9 +9173,9 @@ "kind-of" "^6.0.3" "minimist@^1.1.0", "minimist@^1.1.1", "minimist@^1.1.3", "minimist@^1.2.0", "minimist@^1.2.5": - "integrity" "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" - "version" "1.2.5" + "integrity" "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz" + "version" "1.2.6" "mississippi@^3.0.0": "integrity" "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==" @@ -9238,6 +9290,11 @@ "resolved" "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz" "version" "0.0.8" +"nan@^2.12.1": + "integrity" "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" + "resolved" "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz" + "version" "2.15.0" + "nanoid@^3.1.23": "integrity" "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==" "resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz" @@ -9350,6 +9407,11 @@ "util" "^0.11.0" "vm-browserify" "^1.0.1" +"node-modules-regexp@^1.0.0": + "integrity" "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=" + "resolved" "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz" + "version" "1.0.0" + "node-notifier@^5.4.2": "integrity" "sha512-tVbHs7DyTLtzOiN78izLA85zRqB9NvEXkAf014Vx3jtSvn/xBl6bR8ZYifj+dFcFrKI21huSQgJZ6ZtL3B4HfQ==" "resolved" "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.5.tgz" @@ -10122,9 +10184,9 @@ "version" "1.0.0" "picomatch@^2.0.4", "picomatch@^2.2.1", "picomatch@^2.2.3": - "integrity" "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" - "version" "2.3.1" + "integrity" "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz" + "version" "2.3.0" "pidtree@^0.3.0": "integrity" "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==" @@ -10169,9 +10231,11 @@ "version" "2.0.4" "pirates@^4.0.1": - "integrity" "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" - "resolved" "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz" - "version" "4.0.5" + "integrity" "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==" + "resolved" "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "node-modules-regexp" "^1.0.0" "pkg-dir@^3.0.0": "integrity" "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==" @@ -10740,9 +10804,9 @@ "version" "8.2.0" "prompts@^2.0.1": - "integrity" "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==" - "resolved" "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" - "version" "2.4.2" + "integrity" "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==" + "resolved" "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz" + "version" "2.4.1" dependencies: "kleur" "^3.0.3" "sisteransi" "^1.0.5" @@ -12149,7 +12213,12 @@ "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" "version" "0.5.7" -"source-map@^0.6.0", "source-map@^0.6.1", "source-map@~0.6.1": +"source-map@^0.6.0": + "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + "version" "0.6.1" + +"source-map@^0.6.1", "source-map@~0.6.1": "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" "version" "0.6.1" @@ -12908,7 +12977,7 @@ dependencies: "os-tmpdir" "~1.0.2" -"tmpl@1.0.5": +"tmpl@1.0.x": "integrity" "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" "resolved" "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" "version" "1.0.5" @@ -13719,11 +13788,11 @@ "browser-process-hrtime" "^1.0.0" "walker@^1.0.7", "walker@~1.0.5": - "integrity" "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==" - "resolved" "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" - "version" "1.0.8" + "integrity" "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=" + "resolved" "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz" + "version" "1.0.7" dependencies: - "makeerror" "1.0.12" + "makeerror" "1.0.x" "watchpack-chokidar2@^2.0.1": "integrity" "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==" @@ -13967,9 +14036,9 @@ "webpack-sources" "^1.4.1" "webpack@^4.0.0 || ^5.0.0", "webpack@^4.37.0 || ^5.0.0", "webpack@^5.0.0", "webpack@^5.1.0", "webpack@^5.20.0", "webpack@^5.69.1", "webpack@>=2", "webpack@4.x.x || 5.x.x": - "integrity" "sha512-+VyvOSJXZMT2V5vLzOnDuMz5GxEqLk7hKWQ56YxPW/PQRUuKimPqmEIJOx8jHYeyo65pKbapbW464mvsKbaj4A==" - "resolved" "https://registry.npmjs.org/webpack/-/webpack-5.69.1.tgz" - "version" "5.69.1" + "integrity" "sha512-qmSmbspI0Qo5ld49htys8GY9XhS9CGqFoHTsOVAnjBdg0Zn79y135R+k4IR4rKK6+eKaabMhJwiVB7xw0SJu5w==" + "resolved" "https://registry.npmjs.org/webpack/-/webpack-5.72.0.tgz" + "version" "5.72.0" dependencies: "@types/eslint-scope" "^3.7.3" "@types/estree" "^0.0.51" @@ -13980,7 +14049,7 @@ "acorn-import-assertions" "^1.7.6" "browserslist" "^4.14.5" "chrome-trace-event" "^1.0.2" - "enhanced-resolve" "^5.8.3" + "enhanced-resolve" "^5.9.2" "es-module-lexer" "^0.9.0" "eslint-scope" "5.1.1" "events" "^3.2.0"