').append("")),this.$cn.append(this.$header),this.$cn2.append("
").concat(n.t('traitManager.label'),"
")),this.$cn2.append(a.render().el);var l=t.Panels;(l.getPanel('views-container')?l.getPanel('views-container'):l.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()}}},function(t,e,n){"use strict";n.r(e);var r=n(0);e["default"]={run:function(t){var e=t.getModel().get('clipboard'),n=t.getSelected();e&&n&&(t.getSelectedAll().forEach((function(n){if(n){var i,o=n.collection,a=o.indexOf(n)+1,s=e.filter((function(t){return t.get('copyable')}));i=Object(r["contains"])(e,n)&&n.get('copyable')?o.add(n.clone(),{at:a}):o.add(s.map((function(t){return t.clone()})),{at:a}),(i=Object(r["isArray"])(i)?i:[i]).forEach((function(e){return t.trigger('component:paste',e)}))}})),n.emitUpdate())}}},function(t,e,n){"use strict";n.r(e);var r=n(7),i=n.n(r),o=n(0),a='sw-visibility';e["default"]={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'),i=r.getBody(),a=r.getToolbarEl();a&&(a.style.display=t?'none':'');var s=i.querySelectorAll(".".concat(this.ppfx,"no-pointer"));Object(o["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=i()(t.getSelectedAll()),t.select(),this.shouldRunSwVisibility||(this.shouldRunSwVisibility=t.Commands.isActive(a)),this.shouldRunSwVisibility&&t.stopCommand(a),t.getModel().stopDefault();var r=this.getPanels(t),o=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',r.forEach((function(t){return t.set('visible',!1)}));var u=o.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(a),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()}}},function(t,e,n){"use strict";n.r(e),e["default"]={run:function(t,e,n){var r=n||{},i=r.el||'',o=t.Canvas,a=this.canvasResizer,s=r.options||{},l=o.getCanvasView();return s.appendTo=o.getResizerEl(),s.prefix=t.getConfig().stylePrefix,s.posFetcher=l.getElementPos.bind(l),s.mousePosFetcher=o.getMouseRelativePos,a&&!r.forceNew||(this.canvasResizer=t.Utils.Resizer.init(s),a=this.canvasResizer),a.setOptions(s),a.blur(),a.focus(i),a},stop:function(){var t=this.canvasResizer;t&&t.blur()}}},function(t,e,n){"use strict";n.r(e);var r=n(2),i=n.n(r),o=n(1),a=n.n(o),s=n(0),l=n(3);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}var u=a.a.$;e["default"]={getOffsetMethod:function(t){return'get'+(t||'')+'OffsetViewerEl'},run:function(t,e,n){var r=n||{},o=r.state||'',a=t.getConfig(),d=this.em.getZoomDecimal(),h=r.el||'';if(!a.showOffsets||Object(l["r"])(h)||!a.showOffsetsSelected&&'Fixed'==o)t.stopCommand(this.id,n);else{var f=t.Canvas,p=function(t){for(var e=1;e
")).get(0),D=u("")).get(0),A=v+E+'-el',L="".concat(v+P+'-el'," ").concat(v+P),_="".concat(A," ").concat(v+E);y=u("
")).get(0),w=u("
")).get(0),x=u("
")).get(0),O=u("
")).get(0),C=u("
")).get(0),S=u("
")).get(0),k=u("
")).get(0),j=u("
")).get(0),this['marginT'+o]=y,this['marginB'+o]=w,this['marginL'+o]=x,this['marginR'+o]=O,this['padT'+o]=C,this['padB'+o]=S,this['padL'+o]=k,this['padR'+o]=j,M.appendChild(y),M.appendChild(w),M.appendChild(x),M.appendChild(O),D.appendChild(C),D.appendChild(S),D.appendChild(k),D.appendChild(j),b.appendChild(M),b.appendChild(D),this[m]='1'}var N='px',I=parseFloat(g.marginLeft.replace(N,''))*d,F=parseFloat(g.marginRight.replace(N,''))*d,V=parseFloat(g.marginTop.replace(N,''))*d,R=parseFloat(g.marginBottom.replace(N,''))*d,z=y.style,H=w.style,$=x.style,U=O.style,B=C.style,W=S.style,q=k.style,G=j.style,K=parseFloat(p.left),Y=parseFloat(g.width)*d+N;z.height=V+N,z.width=Y,z.top=p.top-V+N,z.left=K+N,H.height=R+N,H.width=Y,H.top=p.top+p.height+N,H.left=K+N;var X=p.height+V+R+N,J=p.top-V+N;$.height=X,$.width=I+N,$.top=J,$.left=K-I+N,U.height=X,U.width=F+N,U.top=J,U.left=K+p.width+N;var Z=parseFloat(g.paddingTop)*d;B.height=Z+N;var Q=parseFloat(g.paddingBottom)*d;W.height=Q+N;var tt=p.height-Q-Z+N,et=p.top+Z+N;q.height=tt,q.width=parseFloat(g.paddingLeft)*d+N,q.top=et;var nt=parseFloat(g.paddingRight)*d;G.height=tt,G.width=nt+N,G.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}}},function(t,e,n){"use strict";n.r(e),e["default"]={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=n?'add':'remove';t.Canvas.getFrames().forEach((function(t){t.view.getBody().classList[r]("".concat(e.ppfx,"dashed"))}))}}}},function(t,e,n){"use strict";n.r(e);var r=n(2),i=n.n(r),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(){}},a=n(36),s=n(0);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;e
0&&void 0!==arguments[0]?arguments[0]:{};return(n=c(c({},o),e)).stylePrefix=e.pStylePrefix,t=n.em,this},getConfig:function(){return n},onLoad:function(){e=new a["a"]({level:0,config:n,opened:n.opened||{},model:t.get('DomComponents').getWrapper()}),t&&t.on('component:selected',this.componentChanged),this.componentChanged()},postRender:function(){var t=n.appendTo,e=n.root;(e&&this.setRoot(e),t)&&(Object(s["isElement"])(t)?t:document.querySelector(t)).appendChild(this.render())},setRoot:function(t){return e.setRoot(t),this},getRoot:function(){return 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(){return e.render().el},destroy:function(){e&&e.remove(),[t,e,n].forEach((function(t){return{}}))}}}},function(t,e,n){var r,i,o;1&&(i=[n(0),n(1)],void 0===(o='function'==typeof(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,s,l=(a=!1,s=-1,function(){return a||(s++,a=!0,t.defer((function(){a=!1}))),s});function c(){this.registeredObjects=[],this.cidIndexes=[]}function u(e,n,r,i){for(var o,a=0,s=n.length;at.maximumStackLength&&(t.shift(),t.pointer--)}}}c.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 p={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 g(){}function v(e,n,r,i){if("object"==typeof n)return t.each(n,(function(t,n){2===e?v(e,t,r,i):v(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}g.prototype=p;var m=e.Model.extend({defaults:{type:null,object:null,before:null,after:null,magicFusionIndex:null},undo:function(t){d("undo",this.attributes)},redo:function(t){d("redo",this.attributes)}}),b=e.Collection.extend({model:m,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 b,this.objectRegistry=new c,this.undoTypes=new g,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){f(this.stack,t,i(arguments,1),this.undoTypes)},register:function(){u("on",arguments,this._addToStack,this)},unregister:function(){u("off",arguments,this._addToStack,this)},unregisterAll:function(){r(this.unregister,this,this.objectRegistry.get())},undo:function(t){h("undo",this,this.stack,t)},undoAll:function(){h("undo",this,this.stack,!1,!0)},redo:function(t){h("redo",this,this.stack,t)},redoAll:function(){h("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.pointer0&&void 0!==arguments[0]?arguments[0]:{};return e=d(d({},r),n),t=e.em,this.em=t,this},onLoad:function(){var t=e.defaults;for(var n in t){var r=t[n];this.add(n,r.keys,r.handler,r.opts||{})}},add:function(t,e,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=this.em,l=a.get('Commands'),u=a.getEditor(),d=a.get('Canvas'),h={id:t,keys:e,handler:r},f=n[t];return f&&this.remove(t),n[t]=h,c()(e,(function(e,n){var c={event:e,h:n};if(r=Object(s["isString"])(r)?l.get(r):r,!a.isEditing()&&!u.Canvas.isInputFocused()||o.force){o.prevent&&d.getCanvasView().preventDefault(e),'object'==i()(r)?l.runCommand(r,c):r(u,0,c);var h=[t,n.shortcut,e];a.trigger.apply(a,['keymap:emit'].concat(h)),a.trigger.apply(a,["keymap:emit:".concat(t)].concat(h))}})),a.trigger('keymap:add',h),h},get:function(t){return n[t]},getAll:function(){return n},remove:function(t){var e=this.em,r=this.get(t);if(r)return delete n[t],r.keys.split(', ').forEach((function(t){return c.a.unbind(t.trim())})),e&&e.trigger('keymap:remove',r),r},removeAll:function(){var t=this;return Object.keys(n).forEach((function(e){return t.remove(e)})),this},destroy:function(){this.removeAll(),[t,e,n].forEach((function(t){return{}})),this.em={}}}}},function(t,e,n){"use strict";n.r(e);var r=n(2),i=n.n(r),o=n(70),a=n.n(o);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]:{};n=l(l({},s),i),t=n.em,this.em=t,(e=new a.a(l({track:!0,register:[]},n))).changeUndoType('change',{condition:!1}),e.changeUndoType('add',{on:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!o(n))return{object:e,before:void 0,after:t,options:l({},n)}}}),e.changeUndoType('remove',{on:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!o(n))return{object:e,before:t,after:void 0,options:l({},n)}}});var c={on:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!r&&(r=t.previousAttributes()),!o(n)){var i={object:t,before:r,after:t.toJSON({keepSymbols:1})};return r=null,i}},undo:function(t,e,n,r){t.set(e)},redo:function(t,e,n,r){t.set(n)}},u=['style','attributes','content','src'];return u.forEach((function(t){return e.addUndoType("change:".concat(t),c)})),e.on('undo redo',(function(){return t.trigger('component:toggled change:canvasOffset')})),['undo','redo'].forEach((function(n){return e.on(n,(function(){return t.trigger(n)}))})),this},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')},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},getPointer:function(){return this.getStack().pointer},clear:function(){return e.clear(),this},getInstance:function(){return e},destroy:function(){this.clear().removeAll(),[t,e,n,r].forEach((function(t){return{}})),this.em={}}}}},function(t,e,n){(function(t){var r=void 0!==t&&t||"undefined"!=typeof self&&self||window,i=Function.prototype.apply;function o(t,e){this._id=t,this._clearFn=e}e.setTimeout=function(){return new o(i.call(setTimeout,r,arguments),clearTimeout)},e.setInterval=function(){return new o(i.call(setInterval,r,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},o.prototype.unref=o.prototype.ref=function(){},o.prototype.close=function(){this._clearFn.call(r,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout((function(){t._onTimeout&&t._onTimeout()}),e))},n(80),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(this,n(26))},function(t,e,n){(function(t,e){!function(t,n){"use strict";if(!t.setImmediate){var r,i,o,a,s,l=1,c={},u=!1,d=t.document,h=Object.getPrototypeOf&&Object.getPrototypeOf(t);h=h&&h.setTimeout?h:t,"[object process]"==={}.toString.call(t.process)?r=function(t){e.nextTick((function(){p(t)}))}:!function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?t.MessageChannel?((o=new MessageChannel).port1.onmessage=function(t){p(t.data)},r=function(t){o.port2.postMessage(t)}):d&&"onreadystatechange"in d.createElement("script")?(i=d.documentElement,r=function(t){var e=d.createElement("script");e.onreadystatechange=function(){p(t),e.onreadystatechange=null,i.removeChild(e),e=null},i.appendChild(e)}):r=function(t){setTimeout(p,0,t)}:(a="setImmediate$"+Math.random()+"$",s=function(e){e.source===t&&"string"==typeof e.data&&0===e.data.indexOf(a)&&p(+e.data.slice(a.length))},t.addEventListener?t.addEventListener("message",s,!1):t.attachEvent("onmessage",s),r=function(e){t.postMessage(a+e,"*")}),h.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n1)for(var n=1;n=0||(i[n]=t[n]);return i}},function(t,e,n){1&&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"]]},n={};function r(t,e){var r=t.match(function(t){var e=n[t];return e||(n[t]=new RegExp("\\s+"+t+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*"))}(e));return r?/^\s*(.*?)\s*$/.exec(r[2])[1]:""}function i(t,e){return new RegExp((e?"^":"")+" ","i")}function o(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])}t.defineMode("htmlmixed",(function(n,a){var s=t.getMode(n,{name:"xml",htmlMode:!0,multilineTagIndentFactor:a.multilineTagIndentFactor,multilineTagIndentPastTag:a.multilineTagIndentPastTag,allowMissingTagName:a.allowMissingTagName}),l={},c=a&&a.tags,u=a&&a.scriptTypes;if(o(e,l),c&&o(c,l),u)for(var d=u.length-1;d>=0;d--)l.script.unshift(["type",u[d].matches,u[d].mode]);function h(e,o){var a,c=s.token(e,o.htmlState),u=/\btag\b/.test(c);if(u&&!/[<>\s\/]/.test(e.current())&&(a=o.htmlState.tagName&&o.htmlState.tagName.toLowerCase())&&l.hasOwnProperty(a))o.inTag=a+" ";else if(o.inTag&&u&&/>$/.test(e.current())){var d=/^([\S]+) (.*)/.exec(o.inTag);o.inTag=null;var f=">"==e.current()&&function(t,e){for(var n=0;n-1?t.backUp(r.length-i):r.match(/<\/?$/)&&(t.backUp(r.length),t.match(e,!1)||t.match(r)),n}(t,v,e.localMode.token(t,e.localState))},o.localMode=p,o.localState=t.startState(p,s.indent(o.htmlState,"",""))}else o.inTag&&(o.inTag+=e.current(),e.eol()&&(o.inTag+=" "));return c}return{startState:function(){return{token:h,inTag:null,localMode:null,localState:null,htmlState:t.startState(s)}},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(s,e.htmlState)}},token:function(t,e){return e.token(t,e)},indent:function(e,n,r){return!e.localMode||/^\s*<\//.test(n)?s.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||s}}}}),"xml","javascript","css"),t.defineMIME("text/html","htmlmixed")}(n(13),n(84),n(85),n(44))},function(t,e,n){1&&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 d(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(f("atom","]]>")):null:t.match("--")?n(f("comment","--\x3e")):t.match("DOCTYPE",!0,!0)?(t.eatWhile(/[\w\._\-]/),n(function t(e){return function(n,r){for(var i;null!=(i=n.next());){if("<"==i)return r.tokenize=t(e+1),r.tokenize(n,r);if(">"==i){if(1==e){r.tokenize=d;break}return r.tokenize=t(e-1),r.tokenize(n,r)}}return"meta"}}(1))):null:t.eat("?")?(t.eatWhile(/[\w\._\-]/),e.tokenize=f("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,r,i=t.next();if(">"==i||"/"==i&&t.eat(">"))return e.tokenize=d,o=">"==i?"endTag":"selfcloseTag","tag bracket";if("="==i)return o="equals",null;if("<"==i){e.tokenize=d,e.state=m,e.tagName=e.tagStart=null;var a=e.tokenize(t,e);return a?a+" tag error":"tag error"}return/[\'\"]/.test(i)?(e.tokenize=(n=i,(r=function(t,e){for(;!t.eol();)if(t.next()==n){e.tokenize=h;break}return"string"}).isInAttribute=!0,r),e.stringStartCol=t.column(),e.tokenize(t,e)):(t.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function f(t,e){return function(n,r){for(;!n.eol();){if(n.match(e)){r.tokenize=d;break}n.next()}return t}}function p(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 g(t){t.context&&(t.context=t.context.prev)}function v(t,e){for(var n;1;){if(!t.context)return;if(n=t.context.tagName,!l.contextGrabbers.hasOwnProperty(n)||!l.contextGrabbers[n].hasOwnProperty(e))return;g(t)}}function m(t,e,n){return"openTag"==t?(n.tagStart=e.column(),b):"closeTag"==t?y:m}function b(t,e,n){return"word"==t?(n.tagName=e.current(),a="tag",O):l.allowMissingTagName&&"endTag"==t?(a="tag bracket",O(t,0,n)):(a="error",b)}function y(t,e,n){if("word"==t){var r=e.current();return n.context&&n.context.tagName!=r&&l.implicitlyClosed.hasOwnProperty(n.context.tagName)&&g(n),n.context&&n.context.tagName==r||!1===l.matchClosing?(a="tag",w):(a="tag error",x)}return l.allowMissingTagName&&"endTag"==t?(a="tag bracket",w(t,0,n)):(a="error",x)}function w(t,e,n){return"endTag"!=t?(a="error",w):(g(n),m)}function x(t,e,n){return a="error",w(t,0,n)}function O(t,e,n){if("word"==t)return a="attribute",C;if("endTag"==t||"selfcloseTag"==t){var r=n.tagName,i=n.tagStart;return n.tagName=n.tagStart=null,"selfcloseTag"==t||l.autoSelfClosers.hasOwnProperty(r)?v(n,r):(v(n,r),n.context=new p(n,r,i==n.indented)),m}return a="error",O}function C(t,e,n){return"equals"==t?S:(l.allowMissing||(a="error"),O(t,0,n))}function S(t,e,n){return"string"==t?k:"word"==t&&l.allowUnquoted?(a="string",O):(a="error",O(t,0,n))}function k(t,e,n){return"string"==t?k:O(t,0,n)}return d.isInText=!0,{startState:function(t){var e={tokenize:d,state:m,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!=d)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==S&&(t.state=O)},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(13))},function(t,e,n){1&&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=n.typescript,u=n.wordCharacters||/[\w$\xa1-\uffff]/,d=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}}(),h=/[+\-*&%=<>!?|~^@]/,f=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function p(t,e,n){return r=t,i=n,e}function g(t,e){var n,r=t.next();if('"'==r||"'"==r)return e.tokenize=(n=r,function(t,e){var r,i=!1;if(s&&"@"==t.peek()&&t.match(f))return e.tokenize=g,p("jsonld-keyword","meta");for(;null!=(r=t.next())&&(r!=n||i);)i=!i&&"\\"==r;return i||(e.tokenize=g),p("string","string")}),e.tokenize(t,e);if("."==r&&t.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return p("number","number");if("."==r&&t.match(".."))return p("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(r))return p(r);if("="==r&&t.eat(">"))return p("=>","operator");if("0"==r&&t.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return p("number","number");if(/\d/.test(r))return t.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),p("number","number");if("/"==r)return t.eat("*")?(e.tokenize=v,v(t,e)):t.eat("/")?(t.skipToEnd(),p("comment","comment")):Yt(t,e,1)?(function(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}}(t),t.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),p("regexp","string-2")):(t.eat("="),p("operator","operator",t.current()));if("`"==r)return e.tokenize=m,m(t,e);if("#"==r&&"!"==t.peek())return t.skipToEnd(),p("meta","meta");if("#"==r&&t.eatWhile(u))return p("variable","property");if("<"==r&&t.match("!--")||"-"==r&&t.match("->")&&!/\S/.test(t.string.slice(0,t.start)))return t.skipToEnd(),p("comment","comment");if(h.test(r))return">"==r&&e.lexical&&">"==e.lexical.type||(t.eat("=")?"!"!=r&&"="!=r||t.eat("="):/[<>*+\-|&?]/.test(r)&&(t.eat(r),">"==r&&t.eat(r))),"?"==r&&t.eat(".")?p("."):p("operator","operator",t.current());if(u.test(r)){t.eatWhile(u);var i=t.current();if("."!=e.lastType){if(d.propertyIsEnumerable(i)){var o=d[i];return p(o.type,o.style,i)}if("async"==i&&t.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return p("async","keyword",i)}return p("variable","variable",i)}}function v(t,e){for(var n,r=!1;n=t.next();){if("/"==n&&r){e.tokenize=g;break}r="*"==n}return p("comment","comment")}function m(t,e){for(var n,r=!1;null!=(n=t.next());){if(!r&&("`"==n||"$"==n&&t.eat("{"))){e.tokenize=g;break}r=!r&&"\\"==n}return p("quasi","string-2",t.current())}var b="([{}])";function y(t,e){e.fatArrowAt&&(e.fatArrowAt=null);var n=t.string.indexOf("=>",t.start);if(!(n<0)){if(c){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=b.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(u.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 w={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,"jsonld-keyword":!0};function x(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 O(t,e){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}var C={state:null,column:null,marked:null,cc:null};function S(){for(var t=arguments.length-1;t>=0;t--)C.cc.push(arguments[t])}function k(){return S.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 T(t){var e=C.state;if(C.marked="def",e.context)if("var"==e.lexical.info&&e.context&&e.context.block){var r=function t(e,n){if(n){if(n.block){var r=t(e,n.prev);return r?r==n.prev?n:new E(r,n.vars,!0):null}return j(e,n.vars)?n:new E(n.prev,new M(e,n.vars),!1)}return null}(t,e.context);if(null!=r)return void(e.context=r)}else if(!j(t,e.localVars))return void(e.localVars=new M(t,e.localVars));n.globalVars&&!j(t,e.globalVars)&&(e.globalVars=new M(t,e.globalVars))}function P(t){return"public"==t||"private"==t||"protected"==t||"abstract"==t||"readonly"==t}function E(t,e,n){this.prev=t,this.vars=e,this.block=n}function M(t,e){this.name=t,this.next=e}var D=new M("this",new M("arguments",null));function A(){C.state.context=new E(C.state.context,C.state.localVars,!1),C.state.localVars=D}function L(){C.state.context=new E(C.state.context,C.state.localVars,!0),C.state.localVars=null}function _(){C.state.localVars=C.state.context.vars,C.state.context=C.state.context.prev}function N(t,e){var n=function(){var n=C.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 x(r,C.stream.column(),t,null,n.lexical,e)};return n.lex=!0,n}function I(){var t=C.state;t.lexical.prev&&(")"==t.lexical.type&&(t.indented=t.lexical.indented),t.lexical=t.lexical.prev)}function F(t){return function e(n){return n==t?k():";"==t||"}"==n||")"==n||"]"==n?S():k(e)}}function V(t,e){return"var"==t?k(N("vardef",e),wt,F(";"),I):"keyword a"==t?k(N("form"),$,V,I):"keyword b"==t?k(N("form"),V,I):"keyword d"==t?C.stream.match(/^\s*$/,!1)?k():k(N("stat"),B,F(";"),I):"debugger"==t?k(F(";")):"{"==t?k(N("}"),L,at,I,_):";"==t?k():"if"==t?("else"==C.state.lexical.info&&C.state.cc[C.state.cc.length-1]==I&&C.state.cc.pop()(),k(N("form"),$,V,I,jt)):"function"==t?k(Mt):"for"==t?k(N("form"),Tt,V,I):"class"==t||c&&"interface"==e?(C.marked="keyword",k(N("form","class"==t?t:e),Nt,I)):"variable"==t?c&&"declare"==e?(C.marked="keyword",k(V)):c&&("module"==e||"enum"==e||"type"==e)&&C.stream.match(/^\s*\w/,!1)?(C.marked="keyword","enum"==e?k(Gt):"type"==e?k(At,F("operator"),dt,F(";")):k(N("form"),xt,F("{"),N("}"),at,I,I)):c&&"namespace"==e?(C.marked="keyword",k(N("form"),z,V,I)):c&&"abstract"==e?(C.marked="keyword",k(V)):k(N("stat"),Q):"switch"==t?k(N("form"),$,F("{"),N("}","switch"),L,at,I,I,_):"case"==t?k(z,F(":")):"default"==t?k(F(":")):"catch"==t?k(N("form"),A,R,V,I,_):"export"==t?k(N("stat"),Rt,I):"import"==t?k(N("stat"),Ht,I):"async"==t?k(V):"@"==e?k(z,V):S(N("stat"),z,F(";"),I)}function R(t){if("("==t)return k(Lt,F(")"))}function z(t,e){return U(t,e,!1)}function H(t,e){return U(t,e,!0)}function $(t){return"("!=t?S():k(N(")"),B,F(")"),I)}function U(t,e,n){if(C.state.fatArrowAt==C.stream.start){var r=n?X:Y;if("("==t)return k(A,N(")"),it(Lt,")"),I,F("=>"),r,_);if("variable"==t)return S(A,xt,F("=>"),r,_)}var i=n?q:W;return w.hasOwnProperty(t)?k(i):"function"==t?k(Mt,i):"class"==t||c&&"interface"==e?(C.marked="keyword",k(N("form"),_t,I)):"keyword c"==t||"async"==t?k(n?H:z):"("==t?k(N(")"),B,F(")"),I,i):"operator"==t||"spread"==t?k(n?H:z):"["==t?k(N("]"),qt,I,i):"{"==t?ot(et,"}",null,i):"quasi"==t?S(G,i):"new"==t?k(function(t){return function(e){return"."==e?k(t?Z:J):"variable"==e&&c?k(mt,t?q:W):S(t?H:z)}}(n)):"import"==t?k(z):k()}function B(t){return t.match(/[;\}\)\],]/)?S():S(z)}function W(t,e){return","==t?k(B):q(t,e,!1)}function q(t,e,n){var r=0==n?W:q,i=0==n?z:H;return"=>"==t?k(A,n?X:Y,_):"operator"==t?/\+\+|--/.test(e)||c&&"!"==e?k(r):c&&"<"==e&&C.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?k(N(">"),it(dt,">"),I,r):"?"==e?k(z,F(":"),i):k(i):"quasi"==t?S(G,r):";"!=t?"("==t?ot(H,")","call",r):"."==t?k(tt,r):"["==t?k(N("]"),B,F("]"),I,r):c&&"as"==e?(C.marked="keyword",k(dt,r)):"regexp"==t?(C.state.lastType=C.marked="operator",C.stream.backUp(C.stream.pos-C.stream.start-1),k(i)):void 0:void 0}function G(t,e){return"quasi"!=t?S():"${"!=e.slice(e.length-2)?k(G):k(z,K)}function K(t){if("}"==t)return C.marked="string-2",C.state.tokenize=m,k(G)}function Y(t){return y(C.stream,C.state),S("{"==t?V:z)}function X(t){return y(C.stream,C.state),S("{"==t?V:H)}function J(t,e){if("target"==e)return C.marked="keyword",k(W)}function Z(t,e){if("target"==e)return C.marked="keyword",k(q)}function Q(t){return":"==t?k(I,V):S(W,F(";"),I)}function tt(t){if("variable"==t)return C.marked="property",k()}function et(t,e){return"async"==t?(C.marked="property",k(et)):"variable"==t||"keyword"==C.style?(C.marked="property","get"==e||"set"==e?k(nt):(c&&C.state.fatArrowAt==C.stream.start&&(n=C.stream.match(/^\s*:\s*/,!1))&&(C.state.fatArrowAt=C.stream.pos+n[0].length),k(rt))):"number"==t||"string"==t?(C.marked=s?"property":C.style+" property",k(rt)):"jsonld-keyword"==t?k(rt):c&&P(e)?(C.marked="keyword",k(et)):"["==t?k(z,st,F("]"),rt):"spread"==t?k(H,rt):"*"==e?(C.marked="keyword",k(et)):":"==t?S(rt):void 0;var n}function nt(t){return"variable"!=t?S(rt):(C.marked="property",k(Mt))}function rt(t){return":"==t?k(H):"("==t?S(Mt):void 0}function it(t,e,n){function r(i,o){if(n?n.indexOf(i)>-1:","==i){var a=C.state.lexical;return"call"==a.info&&(a.pos=(a.pos||0)+1),k((function(n,r){return n==e||r==e?S():S(t)}),r)}return i==e||o==e?k():n&&n.indexOf(";")>-1?S(t):k(F(e))}return function(n,i){return n==e||i==e?k():S(t,r)}}function ot(t,e,n){for(var r=3;r"),dt):void 0}function ht(t){if("=>"==t)return k(dt)}function ft(t){return"}"==t?k():","==t||";"==t?k(ft):S(pt,ft)}function pt(t,e){return"variable"==t||"keyword"==C.style?(C.marked="property",k(pt)):"?"==e||"number"==t||"string"==t?k(pt):":"==t?k(dt):"["==t?k(F("variable"),lt,F("]"),pt):"("==t?S(Dt,pt):t.match(/[;\}\)\],]/)?void 0:k()}function gt(t,e){return"variable"==t&&C.stream.match(/^\s*[?:]/,!1)||"?"==e?k(gt):":"==t?k(dt):"spread"==t?k(gt):S(dt)}function vt(t,e){return"<"==e?k(N(">"),it(dt,">"),I,vt):"|"==e||"."==t||"&"==e?k(dt):"["==t?k(dt,F("]"),vt):"extends"==e||"implements"==e?(C.marked="keyword",k(dt)):"?"==e?k(dt,F(":"),dt):void 0}function mt(t,e){if("<"==e)return k(N(">"),it(dt,">"),I,vt)}function bt(){return S(dt,yt)}function yt(t,e){if("="==e)return k(dt)}function wt(t,e){return"enum"==e?(C.marked="keyword",k(Gt)):S(xt,st,St,kt)}function xt(t,e){return c&&P(e)?(C.marked="keyword",k(xt)):"variable"==t?(T(e),k()):"spread"==t?k(xt):"["==t?ot(Ct,"]"):"{"==t?ot(Ot,"}"):void 0}function Ot(t,e){return"variable"!=t||C.stream.match(/^\s*:/,!1)?("variable"==t&&(C.marked="property"),"spread"==t?k(xt):"}"==t?S():"["==t?k(z,F(']'),F(':'),Ot):k(F(":"),xt,St)):(T(e),k(St))}function Ct(){return S(xt,St)}function St(t,e){if("="==e)return k(H)}function kt(t){if(","==t)return k(wt)}function jt(t,e){if("keyword b"==t&&"else"==e)return k(N("form","else"),V,I)}function Tt(t,e){return"await"==e?k(Tt):"("==t?k(N(")"),Pt,I):void 0}function Pt(t){return"var"==t?k(wt,Et):"variable"==t?k(Et):S(Et)}function Et(t,e){return")"==t?k():";"==t?k(Et):"in"==e||"of"==e?(C.marked="keyword",k(z,Et)):S(z,Et)}function Mt(t,e){return"*"==e?(C.marked="keyword",k(Mt)):"variable"==t?(T(e),k(Mt)):"("==t?k(A,N(")"),it(Lt,")"),I,ct,V,_):c&&"<"==e?k(N(">"),it(bt,">"),I,Mt):void 0}function Dt(t,e){return"*"==e?(C.marked="keyword",k(Dt)):"variable"==t?(T(e),k(Dt)):"("==t?k(A,N(")"),it(Lt,")"),I,ct,_):c&&"<"==e?k(N(">"),it(bt,">"),I,Dt):void 0}function At(t,e){return"keyword"==t||"variable"==t?(C.marked="type",k(At)):"<"==e?k(N(">"),it(bt,">"),I):void 0}function Lt(t,e){return"@"==e&&k(z,Lt),"spread"==t?k(Lt):c&&P(e)?(C.marked="keyword",k(Lt)):c&&"this"==t?k(st,St):S(xt,st,St)}function _t(t,e){return"variable"==t?Nt(t,e):It(t,e)}function Nt(t,e){if("variable"==t)return T(e),k(It)}function It(t,e){return"<"==e?k(N(">"),it(bt,">"),I,It):"extends"==e||"implements"==e||c&&","==t?("implements"==e&&(C.marked="keyword"),k(c?dt:z,It)):"{"==t?k(N("}"),Ft,I):void 0}function Ft(t,e){return"async"==t||"variable"==t&&("static"==e||"get"==e||"set"==e||c&&P(e))&&C.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(C.marked="keyword",k(Ft)):"variable"==t||"keyword"==C.style?(C.marked="property",k(Vt,Ft)):"number"==t||"string"==t?k(Vt,Ft):"["==t?k(z,st,F("]"),Vt,Ft):"*"==e?(C.marked="keyword",k(Ft)):c&&"("==t?S(Dt,Ft):";"==t||","==t?k(Ft):"}"==t?k():"@"==e?k(z,Ft):void 0}function Vt(t,e){if("?"==e)return k(Vt);if(":"==t)return k(dt,St);if("="==e)return k(H);var n=C.state.lexical.prev;return S(n&&"interface"==n.info?Dt:Mt)}function Rt(t,e){return"*"==e?(C.marked="keyword",k(Wt,F(";"))):"default"==e?(C.marked="keyword",k(z,F(";"))):"{"==t?k(it(zt,"}"),Wt,F(";")):S(V)}function zt(t,e){return"as"==e?(C.marked="keyword",k(F("variable"))):"variable"==t?S(H,zt):void 0}function Ht(t){return"string"==t?k():"("==t?S(z):S($t,Ut,Wt)}function $t(t,e){return"{"==t?ot($t,"}"):("variable"==t&&T(e),"*"==e&&(C.marked="keyword"),k(Bt))}function Ut(t){if(","==t)return k($t,Ut)}function Bt(t,e){if("as"==e)return C.marked="keyword",k($t)}function Wt(t,e){if("from"==e)return C.marked="keyword",k(z)}function qt(t){return"]"==t?k():S(it(H,"]"))}function Gt(){return S(N("form"),xt,F("{"),N("}"),it(Kt,"}"),I,I)}function Kt(){return S(xt,St)}function Yt(t,e,n){return e.tokenize==g&&/^(?: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 _.lex=!0,I.lex=!0,{startState:function(t){var e={tokenize:g,lastType:"sof",cc:[],lexical:new x((t||0)-o,0,"block",!1),localVars:n.localVars,context:n.localVars&&new E(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(),y(t,e)),e.tokenize!=v&&t.eatSpace())return null;var n=e.tokenize(t,e);return"comment"==r?n:(e.lastType="operator"!=r||"++"!=i&&"--"!=i?r:"incdec",function(t,e,n,r,i){var o=t.cc;for(C.state=t,C.stream=i,C.marked=null,C.cc=o,C.style=e,t.lexical.hasOwnProperty("align")||(t.lexical.align=!0);1;)if((o.length?o.pop():l?z:V)(n,r)){for(;o.length&&o[o.length-1].lex;)o.pop()();return C.marked?C.marked:"variable"==n&&O(t,r)?"variable-2":e}}(e,n,r,i,t))},indent:function(e,r){if(e.tokenize==v||e.tokenize==m)return t.Pass;if(e.tokenize!=g)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==I)l=l.prev;else if(u!=jt)break}for(;("stat"==l.type||"form"==l.type)&&("}"==s||(i=e.cc[e.cc.length-1])&&(i==W||i==q)&&!/^[,\.=+\-*:?[\(]/.test(r));)l=l.prev;a&&")"==l.type&&"stat"==l.prev.type&&(l=l.prev);var d=l.type,f=s==d;return"vardef"==d?l.indented+("operator"==e.lastType||","==e.lastType?l.info.length+1:0):"form"==d&&"{"==s?l.indented:"form"==d?l.indented+o:"stat"==d?l.indented+(function(t,e){return"operator"==t.lastType||","==t.lastType||h.test(e.charAt(0))||/[,.]/.test(e.charAt(0))}(e,r)?a||o:0):"switch"!=l.info||f||0==n.doubleIndentSwitch?l.align?l.column+(f?0:1):l.indented+(f?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:Yt,skipExpression:function(t){var e=t.cc[t.cc.length-1];e!=z&&e!=H||t.cc.pop()}}})),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(13))},function(t,e,n){1&&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 d(){l+="\n",u=!0,++c}for(var h=0;h0&&void 0!==arguments[0]?arguments[0]:{};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 s=e.em;if(e.sortable&&!this.opt.sorter){var l=s.get('Utils');this.opt.sorter=new l.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();s.setSelected(r,{forceChange:1}),s.trigger("".concat(a["b"],":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)},removeChildren:function(t){var e=t.viewLayer;e&&(e.remove(),t.viewLayer=0)},addTo:function(t){var e=this.collection.indexOf(t);this.addToCollection(t,null,e)},addToCollection:function(t,e,n){var r=this.level,i=this.parentView,a=e||null,s=new(0,o["a"])({level:r,model:t,parentView:i,config:this.config,sorter:this.sorter,isCountable:this.isCountable,opened:this.opt.opened}).render().el;if(a)a.appendChild(s);else if(void 0!==n){var l='before';this.$el.children().length==n&&(n--,l='after'),n<0?this.$el.append(s):this.$el.children().eq(n)[l](s)}else this.$el.append(s);return s},isCountable:function(t,e){var n=t.get('type'),r=t.get('tagName');return!(('textnode'==n||'br'==r)&&e||!t.get('layerable'))},render: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}})},function(t,e,n){var r={"./CanvasClear":45,"./CanvasClear.js":45,"./CanvasMove":46,"./CanvasMove.js":46,"./CommandAbstract":22,"./CommandAbstract.js":22,"./ComponentDelete":47,"./ComponentDelete.js":47,"./ComponentDrag":48,"./ComponentDrag.js":48,"./ComponentEnter":49,"./ComponentEnter.js":49,"./ComponentExit":50,"./ComponentExit.js":50,"./ComponentNext":51,"./ComponentNext.js":51,"./ComponentPrev":52,"./ComponentPrev.js":52,"./ComponentStyleClear":53,"./ComponentStyleClear.js":53,"./CopyComponent":54,"./CopyComponent.js":54,"./DeleteComponent":55,"./DeleteComponent.js":55,"./ExportTemplate":56,"./ExportTemplate.js":56,"./Fullscreen":57,"./Fullscreen.js":57,"./MoveComponent":58,"./MoveComponent.js":58,"./OpenAssets":59,"./OpenAssets.js":59,"./OpenBlocks":60,"./OpenBlocks.js":60,"./OpenLayers":61,"./OpenLayers.js":61,"./OpenStyleManager":62,"./OpenStyleManager.js":62,"./OpenTraitManager":63,"./OpenTraitManager.js":63,"./PasteComponent":64,"./PasteComponent.js":64,"./Preview":65,"./Preview.js":65,"./Resize":66,"./Resize.js":66,"./SelectComponent":14,"./SelectComponent.js":14,"./SelectPosition":27,"./SelectPosition.js":27,"./ShowOffset":67,"./ShowOffset.js":67,"./SwitchVisibility":68,"./SwitchVisibility.js":68};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=91},function(t,e,n){"use strict";n.r(e);var r=n(8),i=n.n(r),o=n(2),a=n.n(o),s=n(1),l=n.n(s),c=n(0),u={stylePrefix:'comp-',wrapperId:'wrapper',wrapperName:'Body',wrapper:{removable:!1,copyable:!1,draggable:!1,components:[],traits:[],stylable:['background','background-color','background-image','background-repeat','background-attachment','background-position','background-size']},components:[],draggableComponents:1,storeWrapper:0,processor:0,voidElements:['area','base','br','col','embed','hr','img','input','keygen','link','menuitem','meta','param','source','track','wbr']},d=n(5),h=n(21),f=n(6),p=n(35);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\n \n "),fallback:"\n \n "),file:''}),initialize:function(t,e){d["a"].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&&'2&&void 0!==arguments[2]?arguments[2]:{};!n.fromDisable&&this.disableEditing()},onActive:function(t){var e=this.rte,n=this.em;if(!(this.rteEnabled||!this.model.get('editable')||n&&n.isEditing())){if(t&&t.stopPropagation&&t.stopPropagation(),e)try{this.activeRte=e.enable(this,this.activeRte)}catch(t){n.logError(t)}this.toggleEvents(1)}},onDisable:function(){this.disableEditing()},disableEditing:function(){var t=this.model,e=this.rte,n=this.activeRte,r=this.em,i=t.get('editable');if(e&&i){try{e.disable(this,n)}catch(t){r.logError(t)}this.syncContent()}this.toggleEvents()},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=nt({fromDisable:1},t);if(e.set('content','',a),n.customRte)o.length&&o.reset(null,t),e.set('content',i,a);else{var s=function e(n){var r=!!n.get('textable'),i=!['text','default',''].some((function(t){return n.is(t)}))||r;n.set(nt({_innertext:!i,editable:i&&n.get('editable'),selectable:i,hoverable:i,removable:r,draggable:r,highlightable:0,copyable:r},!r&&{toolbar:''}),t),n.get('components').each((function(t){return e(t)}))};o.reset(i,t),o.each((function(t){return s(t)})),o.trigger('resetNavigator')}}},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={on:tt["v"],off:tt["u"]},i=t?'on':'off';e.setEditing(t),this.rteEnabled=!!t;var o=[this.el.ownerDocument,document];if(r.off(o,'mousedown',this.disableEditing),r[i](o,'mousedown',this.disableEditing),e[i]('toolbar:run:before',this.disableEditing),n[i]('removed',this.disableEditing),this.$el.off('mousedown',this.disablePropagation),this.$el[i]('mousedown',this.disablePropagation),this.config.draggableComponents)for(var a=this.el;a;)a.draggable=!t,(a=a.parentNode)&&'BODY'==a.tagName&&(a=0)}}),ot=it.extend({render:function(){for(var t=arguments.length,e=new Array(t),n=0;n /g,'>').replace(/"/g,'"').replace(/'/g,''')}},{isComponent:function(t){var e='';return 3===t.nodeType&&(e={type:'textnode',content:t.textContent}),e}});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}var At=Mt.extend({defaults:function(t){for(var e=1;e2&&void 0!==arguments[2]?arguments[2]:{},o=e.components(),a=t.get('UndoManager'),s=t.handleUpdates.bind(t),l=this.handleChanges.bind(this),c=this.handleChangesColl.bind(this),u=this.handleRemoves.bind(this);a&&a.add(e),a&&o&&a.add(o);var d='change:style change:content change:attributes change:src';[[e,d,s],[e,'change:components',c],[o,'add',l],[o,'remove reset',u],[e.get('classes'),'add remove',s]].forEach((function(e){t.stopListening(e[0],e[1],e[2]),t.listenTo(e[0],e[1],e[2])})),!i.avoidStore&&s('','',i),o.each((function(t){return r.handleChanges(t,n,i)}))},handleChangesColl:function(e,n){var r=t.get('UndoManager');if(r&&n instanceof l.a.Collection){var i=this.handleChanges.bind(this),o=this.handleRemoves.bind(this);r.add(n),[[n,'add',i],[n,'remove reset',o]].forEach((function(e){t.stopListening(e[0],e[1],e[2]),t.listenTo(e[0],e[1],e[2])}))}},handleRemoves:function(e,n,r){var i=r||n;t.handleUpdates(e,n,i)},load:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'',e=this.em,n='';!t&&r.stm&&(t=r.em.getCacheLoad());var i=t,o=i.components,a=i.html;if(o)if(Object(c["isObject"])(o)||Object(c["isArray"])(o))n=o;else try{n=JSON.parse(o)}catch(t){e&&e.logError(t)}else a&&(n=a);var s=n&&n.constructor===Object;return(n&&n.length||s)&&(this.clear(),s?this.getWrapper().set(n):this.getComponents().add(n)),n},store:function(t){if(r.stm){var e={},n=this.storageKey();if(n.indexOf('html')>=0&&(e.html=r.em.getHtml()),n.indexOf('components')>=0){this.em;var i=r.storeWrapper?this.getWrapper():this.getComponents();e.components=JSON.stringify(i)}return t||r.stm.store(e),e}},getComponent:function(){return e},getWrapper:function(){return this.getComponent()},getComponents:function(){return this.getWrapper().get('components')},addComponent:function(t){var e=arguments.length>1&&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,r=e.model,o=void 0===r?{}:r,s=e.view,l=void 0===s?{}:s,u=e.isComponent,d=e.extend,h=e.extendView,f=e.extendFn,p=void 0===f?[]:f,g=e.extendFnView,v=void 0===g?[]:g,m=this.getType(t),b=this.getType(d),y=this.getType(h),w=b||(m||this.getType('default')),x=w.model,O=y?y.view:w.view,C=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'===i()(o)&&(e.model=x.extend(Ft(Ft(Ft({},o),C(p,o,x)),{},{defaults:Ft(Ft({},x.prototype.defaults),Object(c["result"])(o,'defaults')||{})}),{isComponent:!m||b||u?u||function(){return 0}:x.isComponent})),'object'===i()(l)&&(e.view=O.extend(Ft(Ft({},l),C(v,l,O)))),m?(m.model=e.model,m.view=e.view):(e.id=t,a.unshift(e));var S="component:type:".concat(m?'update':'add');return n&&n.trigger(S,m||e),this},getType:function(t){for(var e=a,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=r.em,e=t.get('componentHovered'),n=t.previous('componentHovered'),i='hovered';n&&n.get('status')==i&&n.set({status:'',state:''}),e&&Object(c["isEmpty"])(e.get('status'))&&e.set('status',i)},allById:function(){return o},destroy:function(){this.clear(),n.remove(),[r,t,o,e,n].forEach((function(t){return{}})),this.em={}}}}},function(t,e,n){"use strict";n.r(e);var r=n(7),i=n.n(r),o=n(2),a=n.n(o),s=n(3),l=n(15),c=n.n(l),u=n(16),d=n.n(u),h=n(0),f=function(){function t(e,n){var r=this;c()(this,t),this.em=e;var i=n||e.get('Canvas').getFrames().map((function(t){return t.get('root').getEl()})),o=Array.isArray(i)?i:[i];return this.el=i,this.counter=0,Object(h["bindAll"])(this,'handleDragEnter','handleDragOver','handleDrop','handleDragLeave'),o.forEach((function(t){return r.toggleEffects(t,1)})),this}return d()(t,[{key:"toggleEffects",value:function(t,e){var n={on:s["v"],off:s["u"]},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:"endDrop",value:function(t,e){var n=this.em,r=this.dragStop;this.counter=0,r&&r(t),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 i,o,a=n.get('Utils'),s=n.get('Canvas'),l=s.getBody(),c=n.get('dragContent')||' ';if(n.stopDefault(),n.inAbsoluteMode()){var u=n.get('DomComponents').getWrapper(),d=u.append({})[0],h=n.get('Commands').run('core:component-drag',{event:t,guidesInfo:1,center:1,target:d,onEnd:function(t,n,i){var o;if(!i.cancelled){o=u.append(c)[0];var a=d.getStyle(),s=a.left,l=a.top,h=a.position;o.addStyle({left:s,top:l,position:h})}e.handleDragEnd(o,r),d.remove()}});i=function(e){return h.stop(t,{cancel:e})},o=function(t){return c=t}}else{var f=new a.Sorter({em:n,wmargin:1,nested:1,canvasRelative:1,direction:'a',container:l,placer:s.getPlacerEl(),containerSel:'*',itemSel:'*',pfx:'gjs-',onEndMove:function(t){return e.handleDragEnd(t,r)},document:s.getFrameEl().contentDocument});f.setDropContent(c),f.startSort(),this.sorter=f,i=function(t){t&&(f.moved=0),f.endMove()},o=function(t){return f.setDropContent(t)}}this.dragStop=i,this.dragContent=o,n.trigger('canvas:dragenter',r,c)}}},{key:"handleDragEnd",value:function(t,e){var n=this.em;this.over=0,t&&(n.set('dragResult',t),n.trigger('canvas:drop',e,t)),n.runDefault({preserveSelected:1})}},{key:"handleDragOver",value:function(t){t.preventDefault(),this.em.trigger('canvas:dragover',t)}},{key:"handleDrop",value:function(t){t.preventDefault();var e=this.dragContent,n=t.dataTransfer,r=this.getContentByData(n).content;t.target.style.border='',r&&e&&e(r),this.endDrop(!r,t)}},{key:"getContentByData",value:function(t){var e=this.em,n=t.types,r=t.files||[],i=e.get('dragContent'),o=t.getData('text');if(r.length){o=[];for(var a=0;a=0)o=t.getData('text/html').replace(/<\/?meta[^>]*>/g,'');else if(Object(h["indexOf"])(n,'text/uri-list')>=0)o={type:'link',attributes:{href:o},content:o};else if(Object(h["indexOf"])(n,'text/json')>=0){var c=t.getData('text/json');c&&(o=JSON.parse(c))}else 1===n.length&&'text/plain'===n[0]&&(o="".concat(o,"
"));var u={content:o};return e.trigger('canvas:dragdata',t,u),u}}]),t}(),p={stylePrefix:'cv-',scripts:[],styles:[],customBadgeLabel:'',autoscrollLimit:50,notTextable:['button','a','input[type=checkbox]','input[type=radio]']},g=n(1),v=n.n(g),m=n(5),b=n(33);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 w(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},n=this.attributes,r=n.root,i=n.styles,o=n.components;this.set('head',[]),this.em=e.em;var a={em:e.em,config:e.em.get('DomComponents').getConfig(),frame:this};!r&&this.set('root',new m["a"]({type:'wrapper',components:o||[]},a)),(!i||Object(h["isString"])(i))&&this.set('styles',new b["a"](i,a))},remove:function(){this.view=0;var t=this.collection;return t&&t.remove(this)},getHead:function(){return i()(this.get('head'))},setHead:function(t){return this.set('head',i()(t))},addHeadItem:function(t){var e=this.getHead();e.push(t),this.setHead(e)},getHeadByAttr:function(t,e,n){return this.getHead().filter((function(r){return r.attributes&&r.attributes[t]==e&&(!n||n===r.tag)}))[0]},removeHeadByAttr: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))},addLink:function(t){var e='link';!this.getHeadByAttr('href',t,e)&&this.addHeadItem({tag:e,attributes:{href:t,rel:'stylesheet'}})},removeLink:function(t){this.removeHeadByAttr('href',t,'link')},addScript:function(t){var e='script';!this.getHeadByAttr('src',t,e)&&this.addHeadItem({tag:e,attributes:{src:t}})},removeScript:function(t){this.removeHeadByAttr('src',t,'script')},_emitUpdated:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.em.trigger('frame:updated',w({frame:this},t))}}),O=v.a.Collection.extend({model:x,initialize:function(){Object(h["bindAll"])(this,'itemLoaded')},itemLoaded:function(){this.loadedItems++,this.loadedItems>=this.itemsToLoad&&(this.trigger('loaded:all'),this.listenToLoadItems(0))},listenToLoad:function(){this.loadedItems=0,this.itemsToLoad=this.length,this.listenToLoadItems(1)},listenToLoadItems:function(t){var e=this;this.forEach((function(n){return n[t?'on':'off']('loaded',e.itemLoaded)}))}}),C=v.a.Model.extend({defaults:{frame:'',frames:'',wrapper:'',rulers:!1,zoom:100,x:0,y:0},initialize:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.em,n=t.styles,r=void 0===n?[]:n,i=t.scripts,o=void 0===i?[]:i,a=e&&e.getWrapper(),s=e&&e.getStyle(),l=new x({root:a,styles:s},t);r.forEach((function(t){return l.addLink(t)})),o.forEach((function(t){return l.addScript(t)})),this.em=e,this.set('frame',l),this.set('frames',new O([l],t)),this.listenTo(this,'change:zoom',this.onZoomChange),this.listenTo(e,'change:device',this.updateDevice)},updateDevice:function(){var t=this.em,e=t.getDeviceModel(),n=t.getCurrentFrameModel();if(n&&e){var r=e.attributes,i=r.width,o=r.height;n.set({width:i,height:o})}},onZoomChange:function(){this.get('zoom')<1&&this.set('zoom',1)}}),S=n(20),k=n(37),j=n(6),T=n(9);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 E(t){for(var e=1;ea&&(s+=i-a),!Object(h["isUndefined"])(t)&&s!==r&&s>0&&s0){var i=r.shift(),o=Object(T["e"])('script',E({type:'text/javascript'},Object(h["isString"])(i)?{src:i}:i));o.onerror=o.onload=n.bind(null,r),e.contentDocument.head.appendChild(o)}else t.renderBody()}(i()(n.scripts))}},renderBody:function(){var t=this,e=this.config,n=this.model,r=this.ppfx,i=n.get('root'),o=n.get('styles'),a=e.em,l=this.getDoc(),c=this.getHead(),u=this.getBody(),d=this.getWindow(),f=a.get('Config'),p=[];d._isEditor=!0,e.styles.forEach((function(t){return p.push(Object(h["isString"])(t)?{tag:'link',attributes:{href:t,rel:'stylesheet'}}:{tag:'link',attributes:E({rel:'stylesheet'},t)})})),p.length&&Object(T["c"])(c,p);Object(T["a"])(u,"")),this.root=new j["default"]({model:i,config:E(E({},i.config),{},{frameView:this})}).render(),Object(T["a"])(u,this.root.el),Object(T["a"])(u,new k["a"]({collection:o,config:E(E({},a.get('CssComposer').getConfig()),{},{frameView:this})}).render().el),Object(T["a"])(u,this.getJsContainer()),Object(s["v"])(u,'click',(function(t){return t&&'A'==t.target.tagName&&t.preventDefault()})),Object(s["v"])(u,'submit',(function(t){return t&&t.preventDefault()})),[{event:'keydown keyup keypress',class:'KeyboardEvent'},{event:'mousedown mousemove mouseup',class:'MouseEvent'},{event:'wheel',class:'WheelEvent'}].forEach((function(e){return e.event.split(' ').forEach((function(n){l.addEventListener(n,(function(n){return t.el.dispatchEvent(Object(T["d"])(n,e.class))}))}))})),this._toggleEffects(1),n.trigger('loaded')},_toggleEffects:function(t){(t?s["v"]:s["u"])(this.getWindow(),"".concat(T["i"]," resize"),this._emitUpdate)},_emitUpdate:function(){this.model._emitUpdated()}}),D=n(17);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 L(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Object(h["bindAll"])(this,'onScroll','frameLoaded','updateOffset','remove','startDrag');var n=this.model,r=L(L({},t.config||e),{},{frameWrapView:this}),i=r.canvasView,o=r.em;this.cv=i,this.config=r,this.em=o,this.canvas=o&&o.get('Canvas'),this.ppfx=r.pStylePrefix||'',this.frame=new M({model:n,config:r}),this.classAnim="".concat(this.ppfx,"frame-wrapper--anim"),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()},setupDragger:function(){var t,e,n,r=this,i=this.canvas,o=this.model,a=function(t){i.toggleFramesEvents(t)};this.dragger=new D["a"]({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})}})},startDrag:function(t){t&&this.dragger.start(t)},remove:function(){return this.frame.remove(),this.frame={},v.a.View.prototype.remove.apply(this,arguments),this},updateOffset:Object(h["debounce"])((function(){var t=this.em,e=this.$el,n=this.frame;t.runDefault({preserveSelected:1}),e.removeClass(this.classAnim),n.model._emitUpdated()})),updatePos: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()},updateSize:Object(h["debounce"])((function(){this.updateDim()})),updateDim:function(){var t=this.em,e=this.el,n=this.$el,r=this.model,i=this.classAnim,o=r.attributes,a=o.width,s=o.height,l=e.style,c=l.width||'',u=l.height||'',d=a||'',f=s||'',p=c==d&&u==f,g='px';if(this.frame.rect=0,n.addClass(i),l.width=Object(h["isNumber"])(d)?"".concat(d).concat(g):d,l.height=Object(h["isNumber"])(f)?"".concat(f).concat(g):f,Object(h["isNull"])(a)||Object(h["isNull"])(s)){var v=L(L({},a?{}:{width:e.offsetWidth}),s?{}:{height:e.offsetHeight});r.set(v,{silent:1})}t.stopDefault({preserveSelected:1}),p?this.updateOffset():n.one(T["i"],this.updateOffset)},onScroll:function(){var t=this.frame;this.em.trigger('frame:scroll',{frame:t,body:t.getBody(),target:t.getWindow()})},frameLoaded:function(){this.frame.getWindow().onscroll=this.onScroll,this.updateDim()},render:function(){var t=this.frame,e=this.$el,n=this.ppfx,r=this.cv,i=this.model,o=this.el,a=i.attributes.onRender;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 ")).append(t.el);var s=Object(T["e"])('div',{class:"".concat(n,"tools"),style:'pointer-events:none; display: none'},"\n
\n
\n \n
\n
\n
\n \n
\n "));return this.elTools=s,r.toolsWrapper.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=S["a"].extend({itemView:_,autoAdd:1,init:function(){this.listenTo(this.collection,'reset',this.render)},onRender:function(){var t=this.config,e=this.$el,n=t.em;n&&e.attr({class:"".concat(n.getConfig('stylePrefix'),"frames")})}});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;e \n
\n ")},initialize:function(t){Object(h["bindAll"])(this,'clearOff','onKeyPress','onCanvasMove'),Object(s["v"])(window,'scroll resize',this.clearOff);var e=this.model,n=e.get('frames');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 r=this.em,i=this.config;this.frames=new N({collection:n,config:F(F({},i),{},{canvasView:this,renderContent:1})}),this.listenTo(r,'change:canvasOffset',this.clearOff),this.listenTo(r,'component:selected',this.checkSelected),this.listenTo(e,'change:zoom change:x change:y',this.updateFrames),this.listenTo(n,'loaded:all',(function(){return r.trigger('loaded')})),this.toggleListeners(1)},checkSelected: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)}))},remove:function(){var t=this.model.get('frames');t.remove(t.models),this.frames.remove(),this.frames={},v.a.View.prototype.remove.apply(this,arguments),this.toggleListeners()},preventDefault:function(t){t&&(t.preventDefault(),t._parentEvent&&t._parentEvent.preventDefault())},onCanvasMove:function(t){},toggleListeners:function(t){this.el;(t?s["v"]:s["u"])(document,'keypress',this.onKeyPress)},onKeyPress:function(t){var e=this.em;' '!==Object(s["f"])(t)||1===e.getZoomDecimal()||e.get('Canvas').isInputFocused()||(this.preventDefault(t),e.get('Editor').runCommand('core:canvas-move'))},onWheel: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)}},updateFrames: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),V&&clearTimeout(V),V=setTimeout((function(){return e.runDefault(a)}),300)},getZoom:function(){return this.em.getZoomDecimal()},isElInViewport:function(t){var e=Object(s["e"])(t),n=Object(s["d"])(e),r=this.getFrameOffset(e),i=n.top,o=n.left;return i>=0&&o>=0&&i<=r.height&&o<=r.width},offset:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Object(s["d"])(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}},clearOff:function(){this.frmOff=null,this.cvsOff=null},getFrameOffset:function(t){if(!this.frmOff||t){var e=this.frame.el,n=t?t.ownerDocument.defaultView.frameElement:e;this.frmOff=this.offset(n||e)}return this.frmOff},getCanvasOffset:function(){return this.cvsOff||(this.cvsOff=this.offset(this.el)),this.cvsOff},getElementPos: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}},getElementOffsets:function(t){var e=this;if(!t||Object(s["r"])(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},getPosition: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}}},updateScript:function(t){var e=t.model,n=e.getId();t.scriptContainer||(t.scriptContainer=R("")),this.getJsContainer().appendChild(t.scriptContainer.get(0))),t.el.id=n,t.scriptContainer.html('');var r=document.createElement('script'),i=e.getScriptString(),o=e.get('script-props')?i:"function(){".concat(i,";}"),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;e&&e.get(0).appendChild(r)}),0)},getJsContainer:function(t){var e=this.getFrameView(t);return e&&e.getJsContainer()},getFrameView:function(t){return t&&t._getFrame()||this.em.get('currentFrame')},render:function(){var t=this.el,e=this.$el,n=this.ppfx,r=this.model,i=this.em,o=this.frames,a=i.get('CssComposer'),s=r.get('wrapper');e.html(this.template());var l=e.find('[data-frames]');this.framesArea=l.get(0),this.wrapper=s,s&&'function'==typeof s.render&&r.get('frame').set({wrapper:s,root:s.getWrapper(),styles:a.getAll()});var c=e.find('[data-tools]');this.toolsWrapper=c.get(0),c.append("\n
\n
\n "));var u=t.querySelector("#".concat(n,"tools"));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=u,this.el.className=this.className;var d=r.get('frames');return d.listenToLoad(),o.render(),i.setCurrentFrame(d.at(0).view),l.append(o.el),this.frame=d.at(0).view,this}});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 $(t){for(var e=1;e
0&&void 0!==arguments[0]?arguments[0]:{};n=$($($({},p),r),{},{module:this}),this.em=n.em;var i=n.pStylePrefix;i&&(n.stylePrefix=i+n.stylePrefix),t=new C(r),e=new z({model:t,config:n});var o=n.em.get('DomComponents');return o&&this.setWrapper(o),this.model=t,this.startAutoscroll=this.startAutoscroll.bind(this),this.stopAutoscroll=this.stopAutoscroll.bind(this),this},getConfig:function(){return n},setWrapper:function(e){t.set('wrapper',e)},getElement:function(){return e.el},getFrame:function(e){return e?this.getFrames()[e]:t.get('frame')},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},getWrapperEl:function(){var t=this.getBody();return t&&t.querySelector('#wrapper')},_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.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 $($({},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,d=o.event||null,h=s.top-c,f=s.left;f+=l?s.width:0;var p=(f=l?f-u:f)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 d&&n.em&&n.em.trigger(d,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,d=void 0===u?0:u,h=c.offsetLeft,f=void 0===h?0:h,p=l.body||{},g=p.scrollTop,v=void 0===g?0:g,m=p.scrollLeft,b=void 0===m?0:m,y=e?v:b,w=e?d:f;return o[s]-(y-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),o=e.offsetHeight||0,a=e.offsetWidth||0,s=r.left+r.width,l=this.getCanvasView(),c=l.getPosition(),u=l.getFrameOffset(t),d=n.event,h=-o,f=r.width-a;f=r.left<-f?-r.left:f,f=s>c.width?f-(s-c.width):f;var p=r.height+o,g=p1&&void 0!==arguments[1]?arguments[1]:{},n=Object(s["e"])(t),r=n&&Object(s["j"])(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()},postRender:function(){Object(s["k"])(n.em)&&(this.droppable=new f(n.em))},setZoom:function(e){return t.set('zoom',parseFloat(e)),this},getZoom:function(){return parseFloat(t.get('zoom'))},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'},getFrameWrapperEl:function(){return e.frame.getWrapper()},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($({},e),$($({},n),{},{em:this.em}))},destroy:function(){var r=this;t.stopListening(),e.remove(),[n,t,e].forEach((function(t){return{}})),['em','model','droppable'].forEach((function(t){return r[t]={}}))}}}},function(t,e,n){"use strict";n.r(e);var r=n(2),i=n.n(r),o=n(11),a={stylePrefix:'gjs-',components:'',style:'',fromElement:0,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,allowScripts:0,showDevices:1,devicePreviewMode:0,mediaCondition:'max-width',tagVarStart:'{[ ',tagVarEnd:' ]}',keepEmptyTextNodes:0,jsInHtml:!0,nativeDnD:1,multipleSelection:1,exportWrapper:0,wrapperIsBody: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',el:'',i18n:{},undoManager:{},assetManager:{},canvas:{},layers:{},storageManager:{},richTextEditor:{},domComponents:{},modal:{},codeManager:{},panels:{},commands:{},cssComposer:{},selectorManager:{},deviceManager:{devices:[{id:'desktop',name:'Desktop',width:''},{id:'tablet',name:'Tablet',width:'768px',widthMedia:'992px'},{id:'mobileLandscape',name:'Mobile landscape',width:'568px',widthMedia:'768px'},{id:'mobilePortrait',name:'Mobile portrait',width:'320px',widthMedia:'480px'}]},styleManager:{sectors:[{name:'General',open:!1,buildProps:['float','display','position','top','right','left','bottom']},{name:'Flex',open:!1,buildProps:['flex-direction','flex-wrap','justify-content','align-items','align-content','order','flex-basis','flex-grow','flex-shrink','align-self']},{name:'Dimension',open:!1,buildProps:['width','height','max-width','min-height','margin','padding']},{name:'Typography',open:!1,buildProps:['font-family','font-size','font-weight','letter-spacing','color','line-height','text-align','text-shadow'],properties:[{property:'text-align',list:[{value:'left',className:'fa fa-align-left'},{value:'center',className:'fa fa-align-center'},{value:'right',className:'fa fa-align-right'},{value:'justify',className:'fa fa-align-justify'}]}]},{name:'Decorations',open:!1,buildProps:['border-radius-c','background-color','border-radius','border','box-shadow','background']},{name:'Extra',open:!1,buildProps:['transition','perspective','transform']}]},blockManager:{},traitManager:{},textViewCode:'Code',keepUnusedStyles:0,multiFrames:0},s=n(0),l=n(1),c=n.n(l),u=n(3);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 h(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};this.config=e,this.set('Config',e),this.set('modules',[]),this.set('toLoad',[]),this.set('storables',[]),this.set('selected',new v),this.set('dmode',e.dragMode);var n=e.el,r=e.log,i=!0===r?Object(s["keys"])(m):Object(s["isArray"])(r)?r:[];Object(s["bindAll"])(this,'initBaseColorPicker'),n&&e.fromElement&&(this.config.components=n.innerHTML),this.attrsOrig=n?Object(s["toArray"])(n.attributes).reduce((function(t,e){return t[e.nodeName]=e.nodeValue,t}),{}):'',g.forEach((function(e){return t.loadModule(e)})),this.on('change:componentHovered',this.componentHovered,this),this.on('change:changesCount',this.updateChanges,this),i.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;o0&&void 0!==arguments[0]?arguments[0]:null,n=this.get('StorageManager');this.get('toLoad').forEach((function(t){t.onLoad()}));var r=function(){t.get('modules').forEach((function(e){return e.postLoad&&e.postLoad(t)})),e&&e()};n&&n.canAutoload()?this.load(r):r()},updateChanges:function(){var t=this,e=this.get('StorageManager'),n=this.get('changesCount');p&&clearTimeout(p),p=setTimeout((function(){return t.trigger('update')})),this.config.noticeOnUnload&&(window.onbeforeunload=n?function(t){return 1}:null),e.isAutosave()&&n>=e.getStepsBeforeSave()&&this.store()},loadModule:function(t){var e=this.config,n=new(t.default||t),r=n.name.charAt(0).toLowerCase()+n.name.slice(1),i=Object(s["isUndefined"])(e[r])?e[n.name]:e[r],o=i||{},a=this.get('StorageManager');if(o.pStylePrefix=e.pStylePrefix||'',Object(s["isUndefined"])(i)||i||(o._disable=1),n.storageKey&&n.store&&n.load&&a){o.stm=a;var l='domComponents'==r?'unshift':'push';this.get('storables')[l](n)}return o.em=this,n.init(h({},o)),!n.private&&this.set(n.name,n),n.onLoad&&this.get('toLoad').push(n),this.get('modules').push(n),this},init: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)},getEditor:function(){return this.get('Editor')},handleUpdates:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};r.temporary||r.noCount||r.avoidStore||(f&&clearTimeout(f),f=setTimeout((function(){n.set('changesCount',n.get('changesCount')+1,r)}),0))},componentHovered:function(t,e,n){var r=this.previous('componentHovered');r&&this.trigger('component:unhovered',r,n),e&&this.trigger('component:hovered',e,n)},getSelected:function(){return this.get('selected').last()},getSelectedAll:function(){var t=this.get('selected');return t&&t.models||[]},setSelected:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.event,i=r&&(r.ctrlKey||r.metaKey),a=r||{},l=a.shiftKey,c=Object(s["isArray"])(t),d=c?t:[t],h=this.get('selected'),f=this.getConfig('multipleSelection');c&&this.removeSelected(h.filter((function(t){return!Object(s["contains"])(d,t)}))),d.forEach((function(t){var r=Object(u["g"])(t,o["default"]);if(!r||r.get('selectable')){if(i&&f)return e.toggleSelected(r);if(l&&f){e.clearSelection(e.get('Canvas').getWindow());var a,d,p=r.collection,g=r.index();if(e.getSelectedAll().forEach((function(t){var e=t.collection,n=t.index();e===p&&(ng&&(d=Object(s["isUndefined"])(d)?n:Math.min(d,n)))})),!Object(s["isUndefined"])(a))for(;a!==g;)e.addSelected(p.at(a)),a++;if(!Object(s["isUndefined"])(d))for(;d!==g;)e.addSelected(p.at(d)),d--;return e.addSelected(r)}!c&&e.removeSelected(h.filter((function(t){return t!==r}))),e.addSelected(r,n),r}}))},addSelected:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Object(u["g"])(t,o["default"]),i=Object(s["isArray"])(r)?r:[r];i.forEach((function(t){if(!t||t.get('selectable')){var r=e.get('selected');n.forceChange&&r.remove(t,n),r.push(t,n)}}))},removeSelected:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.get('selected').remove(Object(u["g"])(t,o["default"]),e)},toggleSelected:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Object(u["g"])(t,o["default"]),i=Object(s["isArray"])(r)?r:[r];i.forEach((function(t){e.get('selected').contains(t)?e.removeSelected(t,n):e.addSelected(t,n)}))},setHovered:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Object(u["g"])(t,o["default"]);n&&!n.get('hoverable')||(e.forceChange&&this.set('componentHovered',''),this.set('componentHovered',n,e))},getHovered:function(){return this.get('componentHovered')},setComponents:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.get('DomComponents').setComponents(t,e)},getComponents:function(){var t=this.get('DomComponents'),e=this.get('CodeManager');if(t&&e){var n=t.getComponents();return e.getCode(n,'json')}},setStyle: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},getStyle:function(){return this.get('CssComposer').getAll()},setState:function(t){return this.set('state',t),this},getState:function(){return this.get('state')||''},getHtml:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this.config,n=e.optsHtml,r=e.exportWrapper,i=e.wrapperIsBody,o=e.jsInHtml?this.getJs():'',a=this.get('DomComponents').getComponent(),s=this.get('CodeManager').getCode(a,'html',h(h({exportWrapper:r,wrapperIsBody:i},n),t));return s+=o?"` : '';\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 wrapperIsBody = config.wrapperIsBody;\n const avoidProt = opts.avoidProtected;\n const keepUnusedStyles = !isUndefined(opts.keepUnusedStyles)\n ? opts.keepUnusedStyles\n : config.keepUnusedStyles;\n const cssc = this.get('CssComposer');\n const wrp = this.get('DomComponents').getComponent();\n const protCss = !avoidProt ? config.protectedCss : '';\n\n return (\n protCss +\n this.get('CodeManager').getCode(wrp, 'css', {\n cssc,\n wrapperIsBody,\n keepUnusedStyles,\n ...optsCss\n })\n );\n },\n\n /**\n * Returns JS of all components\n * @return {string} JS string\n * @private\n */\n getJs() {\n var wrp = this.get('DomComponents').getWrapper();\n return this.get('CodeManager')\n .getCode(wrp, 'js')\n .trim();\n },\n\n /**\n * Store data to the current storage\n * @param {Function} clb Callback function\n * @return {Object} Stored data\n * @private\n */\n store(clb) {\n var sm = this.get('StorageManager');\n var store = {};\n if (!sm) return;\n\n // Fetch what to store\n this.get('storables').forEach(m => {\n var obj = m.store(1);\n for (var el in obj) store[el] = obj[el];\n });\n\n sm.store(store, res => {\n clb && clb(res);\n this.set('changesCount', 0);\n this.trigger('storage:store', store);\n });\n\n return store;\n },\n\n /**\n * Load data from the current storage\n * @param {Function} clb Callback function\n * @private\n */\n load(clb = null) {\n this.getCacheLoad(1, res => {\n this.get('storables').forEach(module => {\n module.load(res);\n module.postLoad && module.postLoad(this);\n });\n clb && clb(res);\n });\n },\n\n /**\n * Returns cached load\n * @param {Boolean} force Force to reload\n * @param {Function} clb Callback function\n * @return {Object}\n * @private\n */\n getCacheLoad(force, clb) {\n if (this.cacheLoad && !force) return this.cacheLoad;\n const sm = this.get('StorageManager');\n const load = [];\n\n if (!sm) return {};\n\n this.get('storables').forEach(m => {\n let key = m.storageKey;\n key = isFunction(key) ? key() : key;\n const keys = isArray(key) ? key : [key];\n keys.forEach(k => load.push(k));\n });\n\n sm.load(load, res => {\n this.cacheLoad = res;\n clb && clb(res);\n setTimeout(() => this.trigger('storage:load', res));\n });\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) 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 /**\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 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 return this.get('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 } = this;\n const editor = this.getEditor();\n const { editors = [] } = config.grapesjs || {};\n this.stopDefault();\n this.get('modules')\n .slice()\n .reverse()\n .forEach(mod => mod.destroy());\n this.view.remove();\n this.stopListening();\n this.clear({ silent: true });\n this.destroyed = 1;\n ['config', 'view', '_previousAttributes', '_events', '_listeners'].forEach(\n i => (this[i] = {})\n );\n editors.splice(editors.indexOf(editor), 1);\n $(config.el)\n .empty()\n .attr(this.attrsOrig);\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 * 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, isString, each, isUndefined } from 'underscore';\n\nexport default ({ $ }) => {\n if ($ && $.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 { appendStyles } from 'utils/mixins';\n\nconst $ = Backbone.$;\n\nexport default Backbone.View.extend({\n initialize() {\n const { model } = this;\n model.view = this;\n this.conf = model.config;\n this.pn = model.get('Panels');\n this.cv = model.get('Canvas');\n model.on('loaded', () => {\n this.pn.active();\n this.pn.disableButtons();\n setTimeout(() => {\n model.runDefault();\n model.trigger('load', model.get('Editor'));\n });\n });\n },\n\n render() {\n const { model, $el, conf } = this;\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(this.cv.render());\n $el.append(this.pn.render());\n $el.attr('class', `${pfx}editor ${pfx}one-bg ${pfx}two-color`);\n contEl\n .addClass(`${pfx}editor-cont`)\n .empty()\n .append($el);\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 * ### Components\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 * ### Blocks\n * * `block:add` - New block added\n * * `block:remove` - Block removed\n * * `block:drag:start` - Started dragging block, model of the block is passed as an argument\n * * `block:drag` - Dragging block, the block's model and the drag event are passed as arguments\n * * `block:drag:stop` - Dragging of the block is stopped. As agruments for the callback you get, the dropped component model (if dropped successfully) and the model of the block\n * ### Assets\n * * `asset:add` - New asset added\n * * `asset:remove` - Asset removed\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 * ### Keymaps\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 * ### Style Manager\n * * `styleManager:update:target` - The target (Component or CSSRule) is changed\n * * `styleManager:change` - Triggered on style property change from new selected component, the view of the property is passed as an argument to the callback\n * * `styleManager:change:{propertyName}` - As above but for a specific style property\n * ### Storages\n * * `storage:start` - Before the storage request is started\n * * `storage:start:store` - Before the store request. The object to store is passed as an argumnet (which you can edit)\n * * `storage:start:load` - Before the load request. Items to load are passed as an argumnet (which you can edit)\n * * `storage:load` - Triggered when something was loaded from the storage, loaded object passed as an argumnet\n * * `storage:store` - Triggered when something is stored to the storage, stored object passed as an argumnet\n * * `storage:end` - After the storage request is ended\n * * `storage:end:store` - After the store request\n * * `storage:end:load` - After the load request\n * * `storage:error` - On any error on storage request, passes the error as an argument\n * * `storage:error:store` - Error on store request, passes the error as an argument\n * * `storage:error:load` - Error on load request, passes the error as an argument\n * ### Canvas\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 * ### Selectors\n * * `selector:add` - New selector is add. Passes the new selector as an argument\n * * `selector:remove` - Selector removed. Passes the removed selector as an argument\n * * `selector:update` - Selector updated. Passes the updated selector as an argument\n * * `selector:state` - State changed. Passes the new state value as an argument\n * ### RTE\n * * `rte:enable` - RTE enabled. The view, on which RTE is enabled, is passed as an argument\n * * `rte:disable` - RTE disabled. The view, on which RTE is disabled, is passed as an argument\n * ### Modal\n * * `modal:open` - Modal is opened\n * * `modal:close` - Modal is closed\n * ### Parser\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 * ### Commands\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 * ### General\n * * `canvasScroll` - Canvas is scrolled\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 * @module Editor\n */\nimport $ from 'cash-dom';\nimport defaults from './config/config';\nimport EditorModel from './model/Editor';\nimport EditorView from './view/EditorView';\n\nexport default (config = {}) => {\n const c = {\n ...defaults,\n ...config\n };\n\n c.pStylePrefix = c.stylePrefix;\n var em = new EditorModel(c);\n var editorView = new EditorView({\n model: em,\n config: c\n });\n\n return {\n $,\n\n /**\n * @property {EditorModel}\n * @private\n */\n editor: em,\n\n /**\n * Initialize editor model\n * @return {this}\n * @private\n */\n init(opts = {}) {\n em.init(this, { ...c, ...opts });\n\n [\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 '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 ].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 // Do post render stuff after the iframe is loaded otherwise it'll\n // be empty during tests\n em.on('loaded', () => {\n this.UndoManager.clear();\n em.get('modules').forEach(module => {\n module.postRender && module.postRender(editorView);\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 {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 {Boolean} [opts.avoidProtected=false] Don't include protected CSS\n * @returns {string} CSS string\n */\n getCss(opts) {\n return em.getCss(opts);\n },\n\n /**\n * Returns JS of all components\n * @returns {string} JS string\n */\n getJs() {\n return em.getJs();\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 * @param {Object} opt the options object to be used by the [setStyle]{@link em#setStyle} method\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 * 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 * 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 * @param {Function} clb Callback function\n * @return {Object} Stored data\n */\n store(clb) {\n return em.store(clb);\n },\n\n /**\n * Load data from the current storage\n * @param {Function} clb Callback function\n * @return {Object} Stored data\n */\n load(clb) {\n return em.load(clb);\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 * 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 return em.destroyAll();\n },\n\n /**\n * Returns editor element\n * @return {HTMLElement}\n * @private\n */\n getEl() {\n return 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.render();\n return editorView.el;\n }\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 */\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 (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 $ from 'cash-dom';\nimport Editor from './editor';\nimport { isElement, isFunction } from 'underscore';\nimport polyfills from 'utils/polyfills';\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: '<# 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 * @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 els = config.container;\n if (!els) throw new Error(\"'container' is required\");\n config = { ...defaultConfig, ...config, grapesjs: this };\n config.el = 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 = plugins.get(pluginId);\n const plgOptions = config.pluginsOpts[pluginId] || {};\n\n // Try to search in global context\n if (!plugin) {\n const wplg = window[pluginId];\n plugin = wplg && wplg.default ? 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 && 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","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: 1,\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: '',\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: '',\n\n // In the absence of 'uploadFile' or 'upload' assets will be embedded as Base64\n embedAsBase64: 1,\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: '',\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: 0,\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 //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","import Backbone from 'backbone';\n\nexport default Backbone.Model.extend({\n idAttribute: 'src',\n\n defaults: {\n type: '',\n src: ''\n },\n\n /**\n * Get filename of the asset\n * @return {string}\n * @private\n * */\n getFilename() {\n return this.get('src')\n .split('/')\n .pop();\n },\n\n /**\n * Get extension of the asset\n * @return {string}\n * @private\n * */\n getExtension() {\n return this.getFilename()\n .split('.')\n .pop();\n }\n});\n","import Asset from './Asset';\n\nexport default Asset.extend({\n defaults: {\n ...Asset.prototype.defaults,\n type: 'image',\n unitDim: 'px',\n height: 0,\n width: 0\n }\n});\n","import { isFunction } from 'underscore';\nimport AssetView from './AssetView';\n\nexport default AssetView.extend({\n events: {\n 'click [data-toggle=asset-remove]': 'onRemove',\n click: 'onClick',\n dblclick: 'onDblClick'\n },\n\n getPreview() {\n const pfx = this.pfx;\n const src = this.model.get('src');\n return `\n
\n
\n `;\n },\n\n getInfo() {\n const pfx = this.pfx;\n const model = this.model;\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 `\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 var onClick = this.config.onClick;\n var model = this.model;\n this.collection.trigger('deselectAll');\n this.$el.addClass(this.pfx + 'highlight');\n\n if (isFunction(onClick)) {\n onClick(model);\n } else {\n this.updateTarget(this.collection.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 onDblClick = this.config.onDblClick;\n\n if (isFunction(onDblClick)) {\n onDblClick(model);\n } else {\n this.updateTarget(this.collection.target);\n em && em.get('Modal').close();\n }\n\n var onSelect = this.collection.onSelect;\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","import Backbone from 'backbone';\nimport { clone } from 'underscore';\n\nexport default Backbone.View.extend({\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 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 Backbone from 'backbone';\nimport AssetImage from './AssetImage';\nimport AssetImageView from './../view/AssetImageView';\nimport TypeableCollection from 'domain_abstract/model/TypeableCollection';\n\nexport default Backbone.Collection.extend(TypeableCollection).extend({\n 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});\n","import Backbone from 'backbone';\n\nexport default Backbone.View.extend({\n events: {\n submit: 'handleSubmit'\n },\n\n template({ pfx, ppfx, em, ...view }) {\n let form = '';\n if (this.config.showUrlInput) {\n form = `\n \n `;\n }\n\n return `\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)\n 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 this.rendered = 1;\n return this;\n }\n});\n","import { template } from 'underscore';\nimport Backbone from 'backbone';\nimport fetch from 'utils/fetch';\n\nexport default Backbone.View.extend(\n {\n template: template(`\n \n `),\n\n events: {},\n\n initialize(opts = {}) {\n this.options = opts;\n const c = opts.config || {};\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 =\n c.disableUpload !== undefined\n ? c.disableUpload\n : !c.upload && !c.embedAsBase64;\n this.multiUpload = c.multiUpload !== undefined ? c.multiUpload : true;\n this.events['change #' + this.uploadId] = 'uploadFile';\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 em = this.config.em;\n em && em.trigger('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, config } = this;\n const em = config.em;\n em && em.trigger('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 em = this.config.em;\n console.error(err);\n this.onUploadEnd(err);\n em && em.trigger('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 em = this.config.em;\n const config = this.config;\n const target = this.target;\n let json;\n try {\n json = typeof text === 'string' ? JSON.parse(text) : text;\n } catch (e) {\n json = text;\n }\n\n em && em.trigger('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\n ? res.text()\n : res.text().then(text => Promise.reject(text))\n );\n return fetchResult\n .then(text => this.onUploadResponse(text, clb))\n .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 {\n 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(\n new Error('Unsupported platform, FileReader is not defined')\n );\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);\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 * * [add](#add)\n * * [get](#get)\n * * [getAll](#getall)\n * * [getAllVisible](#getallvisible)\n * * [remove](#remove)\n * * [store](#store)\n * * [load](#load)\n * * [getContainer](#getcontainer)\n * * [getAssetsEl](#getassetsel)\n * * [addType](#addtype)\n * * [getType](#gettype)\n * * [getTypes](#gettypes)\n *\n * @module AssetManager\n */\n\nimport defaults from './config/config';\nimport Assets from './model/Assets';\nimport AssetsView from './view/AssetsView';\nimport FileUpload from './view/FileUploader';\n\nexport default () => {\n let c = {};\n let assets, am, fu;\n\n return {\n /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'AssetManager',\n\n /**\n * Mandatory for the storage manager\n * @type {String}\n * @private\n */\n storageKey: 'assets',\n\n getConfig() {\n return c;\n },\n\n /**\n * Initialize module\n * @param {Object} config Configurations\n * @private\n */\n init(config) {\n c = config || {};\n\n for (let name in defaults) {\n if (!(name in c)) c[name] = defaults[name];\n }\n\n const ppfx = c.pStylePrefix;\n const em = c.em;\n\n if (ppfx) {\n c.stylePrefix = ppfx + c.stylePrefix;\n }\n\n // Global assets collection\n assets = new Assets([]);\n const obj = {\n // Collection visible in asset manager\n collection: new Assets([]),\n globalCollection: assets,\n config: c\n };\n fu = new FileUpload(obj);\n obj.fu = fu;\n am = new AssetsView(obj);\n\n // Setup the sync between the global and public collections\n assets.listenTo(assets, 'add', model => {\n this.getAllVisible().add(model);\n em && em.trigger('asset:add', model);\n });\n\n assets.listenTo(assets, 'remove', model => {\n this.getAllVisible().remove(model);\n em && em.trigger('asset:remove', model);\n });\n\n return this;\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 * @return {Model}\n * @example\n * // In case of strings, would be interpreted as images\n * assetManager.add('http://img.jpg');\n * assetManager.add(['http://img.jpg', './path/to/img.png']);\n *\n * // Using objects you could indicate the type and other meta informations\n * assetManager.add({\n * \tsrc: 'http://img.jpg',\n * \t//type: 'image',\t//image is default\n * \theight: 300,\n *\twidth: 200,\n * });\n * assetManager.add([{\n * \tsrc: 'http://img.jpg',\n * },{\n * \tsrc: './path/to/img.png',\n * }]);\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 * Returns the asset by URL\n * @param {string} src URL of the asset\n * @return {Object} Object representing the asset\n * @example\n * var asset = assetManager.get('http://img.jpg');\n */\n get(src) {\n return assets.where({ src })[0];\n },\n\n /**\n * Return the global collection, containing all the assets\n * @return {Collection}\n */\n getAll() {\n return assets;\n },\n\n /**\n * Return the visible collection, which containes assets actually rendered\n * @return {Collection}\n */\n getAllVisible() {\n return am.collection;\n },\n\n /**\n * Remove the asset by its URL\n * @param {string} src URL of the asset\n * @return {this}\n * @example\n * assetManager.remove('http://img.jpg');\n */\n remove(src) {\n var asset = this.get(src);\n this.getAll().remove(asset);\n return this;\n },\n\n /**\n * Store assets data to the selected storage\n * @param {Boolean} noStore If true, won't store\n * @return {Object} Data to store\n * @example\n * var assets = assetManager.store();\n */\n store(noStore) {\n var obj = {};\n var assets = JSON.stringify(this.getAll().toJSON());\n obj[this.storageKey] = assets;\n if (!noStore && c.stm) c.stm.store(obj);\n return obj;\n },\n\n /**\n * Load data from the passed object.\n * The fetched data will be added to the collection.\n * @param {Object} data Object of data to load\n * @return {Object} Loaded assets\n * @example\n * var assets = assetManager.load({\n * \tassets: [...]\n * })\n *\n */\n load(data = {}) {\n const name = this.storageKey;\n let assets = data[name] || [];\n\n if (typeof assets == 'string') {\n try {\n assets = JSON.parse(data[name]);\n } catch (err) {}\n }\n\n if (assets && assets.length) {\n this.getAll().reset(assets);\n }\n\n return assets;\n },\n\n /**\n * Return the Asset Manager Container\n * @return {HTMLElement}\n */\n getContainer() {\n return am.el;\n },\n\n /**\n * Get assets element container\n * @return {HTMLElement}\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\n * all global assets\n * @return {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(assets) {\n const toRender = assets || this.getAll().models;\n\n if (!am.rendered) {\n am.render();\n }\n\n am.collection.reset(toRender);\n return this.getContainer();\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 * @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 * @return {Object} Type definition\n */\n getType(id) {\n return this.getAll().getType(id);\n },\n\n /**\n * Get types\n * @return {Array}\n */\n getTypes() {\n return this.getAll().getTypes();\n },\n\n //-------\n\n AssetsView() {\n return am;\n },\n\n FileUploader() {\n return fu;\n },\n\n onLoad() {\n this.getAll().reset(c.assets);\n },\n\n postRender(editorView) {\n c.dropzone && fu.initDropzone(editorView);\n },\n\n /**\n * Set new target\n * @param\t{Object}\tm Model\n * @private\n * */\n setTarget(m) {\n am.collection.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 am.collection.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 destroy() {\n assets.reset();\n fu.collection.reset();\n fu.remove();\n am.remove();\n [assets, am, fu].forEach(i => (i = null));\n c = {};\n }\n };\n};\n","export default {\n stylePrefix: 'trt-',\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 // Default options for the target input\n optionsTarget: [{ value: false }, { value: '_blank' }]\n};\n","import Backbone from 'backbone';\nimport { isUndefined, isString, isFunction } from 'underscore';\nimport { capitalize } from 'utils/mixins';\n\nconst $ = Backbone.$;\n\nexport default Backbone.View.extend({\n events: {},\n eventCapture: ['change'],\n\n appendInput: 1,\n\n attributes() {\n return this.model.get('attributes');\n },\n\n templateLabel() {\n const { ppfx } = this;\n const label = this.getLabel();\n return `${label}
`;\n },\n\n templateInput() {\n const { clsField } = this;\n return `
`;\n },\n\n initialize(o = {}) {\n const { config = {} } = o;\n const { model, eventCapture } = this;\n const { target } = model;\n const { type } = model.attributes;\n this.config = config;\n this.em = config.em;\n this.pfx = config.stylePrefix || '';\n this.ppfx = config.pStylePrefix || '';\n this.target = target;\n const { ppfx } = this;\n this.clsField = `${ppfx}field ${ppfx}field-${type}`;\n [\n ['change:value', this.onValueChange],\n ['remove', this.removeView]\n ].forEach(([event, clb]) => {\n model.off(event, clb);\n this.listenTo(model, event, clb);\n });\n model.view = this;\n this.listenTo(model, 'change:label', this.render);\n this.listenTo(model, 'change:placeholder', this.rerender);\n eventCapture.forEach(event => (this.events[event] = 'onChange'));\n this.delegateEvents();\n this.init();\n },\n\n getClbOpts() {\n return {\n component: this.target,\n trait: this.model,\n elInput: this.getInputElem()\n };\n },\n\n removeView() {\n this.remove();\n this.removed();\n },\n\n init() {},\n removed() {},\n onRender() {},\n onUpdate() {},\n onEvent() {},\n\n /**\n * Fires when the input is changed\n * @private\n */\n onChange(event) {\n const el = this.getInputElem();\n if (el && !isUndefined(el.value)) {\n this.model.set('value', el.value);\n }\n this.onEvent({\n ...this.getClbOpts(),\n event\n });\n },\n\n getValueForTarget() {\n return this.model.get('value');\n },\n\n setInputValue(value) {\n const el = this.getInputElem();\n el && (el.value = value);\n },\n\n /**\n * On change callback\n * @private\n */\n onValueChange(model, value, opts = {}) {\n if (opts.fromTarget) {\n this.setInputValue(model.get('value'));\n this.postUpdate();\n } else {\n const val = this.getValueForTarget();\n model.setTargetValue(val, opts);\n }\n },\n\n /**\n * Render label\n * @private\n */\n renderLabel() {\n const { $el, target } = this;\n const label = this.getLabel();\n let tpl = this.templateLabel(target);\n\n if (this.createLabel) {\n tpl =\n this.createLabel({\n label,\n component: target,\n trait: this\n }) || '';\n }\n\n $el.find('[data-label]').append(tpl);\n },\n\n /**\n * Returns label for the input\n * @return {string}\n * @private\n */\n getLabel() {\n const { em } = this;\n const { label, name } = this.model.attributes;\n return (\n em.t(`traitManager.traits.labels.${name}`) ||\n capitalize(label || name).replace(/-/g, ' ')\n );\n },\n\n /**\n * Returns current target component\n */\n getComponent() {\n return this.target;\n },\n\n /**\n * Returns input element\n * @return {HTMLElement}\n * @private\n */\n getInputEl() {\n if (!this.$input) {\n const { em, model } = this;\n const md = model;\n const { name } = model.attributes;\n const plh = md.get('placeholder') || md.get('default') || '';\n const type = md.get('type') || 'text';\n const min = md.get('min');\n const max = md.get('max');\n const value = this.getModelValue();\n const input = $(` `);\n const i18nAttr = em.t(`traitManager.traits.attributes.${name}`) || {};\n input.attr(i18nAttr);\n\n if (!isUndefined(value)) {\n md.set({ value }, { silent: true });\n input.prop('value', value);\n }\n\n if (min) {\n input.prop('min', min);\n }\n\n if (max) {\n input.prop('max', max);\n }\n\n this.$input = input;\n }\n return this.$input.get(0);\n },\n\n getInputElem() {\n const { input, $input } = this;\n return (\n input || ($input && $input.get && $input.get(0)) || this.getElInput()\n );\n },\n\n getModelValue() {\n let value;\n const model = this.model;\n const target = this.target;\n const name = model.get('name');\n\n if (model.get('changeProp')) {\n value = target.get(name);\n } else {\n const attrs = target.get('attributes');\n value = model.get('value') || attrs[name];\n }\n\n return !isUndefined(value) ? value : '';\n },\n\n getElInput() {\n return this.elInput;\n },\n\n /**\n * Renders input\n * @private\n * */\n renderField() {\n const { $el, appendInput, model } = this;\n const inputs = $el.find('[data-input]');\n const el = inputs[inputs.length - 1];\n let tpl = model.el;\n\n if (!tpl) {\n tpl = this.createInput\n ? this.createInput(this.getClbOpts())\n : this.getInputEl();\n }\n\n if (isString(tpl)) {\n el.innerHTML = tpl;\n this.elInput = el.firstChild;\n } else {\n appendInput ? el.appendChild(tpl) : el.insertBefore(tpl, el.firstChild);\n this.elInput = tpl;\n }\n\n model.el = this.elInput;\n },\n\n hasLabel() {\n const { label } = this.model.attributes;\n return !this.noLabel && label !== false;\n },\n\n rerender() {\n this.model.el = null;\n this.render();\n },\n\n postUpdate() {\n this.onUpdate(this.getClbOpts());\n },\n\n render() {\n const { $el, pfx, ppfx, model } = this;\n const { type, id } = model.attributes;\n const hasLabel = this.hasLabel && this.hasLabel();\n const cls = `${pfx}trait`;\n this.$input = null;\n let tmpl = `\n ${hasLabel ? `
` : ''}\n
\n ${\n this.templateInput\n ? isFunction(this.templateInput)\n ? this.templateInput(this.getClbOpts())\n : this.templateInput\n : ''\n }\n
\n
`;\n $el.empty().append(tmpl);\n hasLabel && this.renderLabel();\n this.renderField();\n this.el.className = `${cls}__wrp ${cls}__wrp-${id}`;\n this.postUpdate();\n this.onRender(this.getClbOpts());\n return this;\n }\n});\n","import Backbone from 'backbone';\nimport { isString, isUndefined } from 'underscore';\nimport TraitView from './TraitView';\n\nconst $ = Backbone.$;\n\nexport default TraitView.extend({\n init() {\n this.listenTo(this.model, 'change:options', this.rerender);\n },\n\n templateInput() {\n const { ppfx, clsField } = this;\n return ``;\n },\n\n /**\n * Returns input element\n * @return {HTMLElement}\n * @private\n */\n getInputEl() {\n if (!this.$input) {\n const { model, em } = this;\n const propName = model.get('name');\n const opts = model.get('options') || [];\n const values = [];\n let input = '';\n\n opts.forEach(el => {\n let attrs = '';\n let name, value, style;\n\n if (isString(el)) {\n name = el;\n value = el;\n } else {\n name = el.name || el.label || el.value;\n value = `${isUndefined(el.value) ? el.id : el.value}`.replace(\n /\"/g,\n '"'\n );\n style = el.style ? el.style.replace(/\"/g, '"') : '';\n attrs += style ? ` style=\"${style}\"` : '';\n }\n const resultName =\n em.t(`traitManager.traits.options.${propName}.${value}`) || name;\n input += `${resultName} `;\n values.push(value);\n });\n\n input += ' ';\n this.$input = $(input);\n const val = model.getTargetValue();\n const valResult = values.indexOf(val) >= 0 ? val : model.get('default');\n !isUndefined(valResult) && this.$input.val(valResult);\n }\n\n return this.$input.get(0);\n }\n});\n","import { isUndefined } from 'underscore';\nimport TraitView from './TraitView';\n\nexport default TraitView.extend({\n appendInput: 0,\n\n templateInput() {\n const { ppfx, clsField } = this;\n return `\n \n `;\n },\n\n /**\n * Fires when the input is changed\n * @private\n */\n onChange() {\n const value = this.getInputElem().checked;\n this.model.set('value', this.getCheckedValue(value));\n },\n\n getCheckedValue(checked) {\n let result = checked;\n const { valueTrue, valueFalse } = this.model.attributes;\n\n if (result && !isUndefined(valueTrue)) {\n result = valueTrue;\n }\n\n if (!result && !isUndefined(valueFalse)) {\n result = valueFalse;\n }\n\n return result;\n },\n\n /**\n * Returns input element\n * @return {HTMLElement}\n * @private\n */\n getInputEl(...args) {\n const toInit = !this.$input;\n const el = TraitView.prototype.getInputEl.apply(this, args);\n\n if (toInit) {\n let checked, targetValue;\n const { model, target } = this;\n const { valueTrue, valueFalse } = model.attributes;\n const name = model.get('name');\n\n if (model.get('changeProp')) {\n checked = target.get(name);\n targetValue = checked;\n } else {\n targetValue = target.get('attributes')[name];\n checked = targetValue || targetValue === '' ? !0 : !1;\n }\n\n if (!isUndefined(valueFalse) && targetValue === valueFalse) {\n checked = !1;\n }\n\n el.checked = checked;\n }\n\n return el;\n }\n});\n","import TraitView from './TraitView';\nimport { isUndefined } from 'underscore';\nimport InputNumber from 'domain_abstract/ui/InputNumber';\n\nexport default TraitView.extend({\n getValueForTarget() {\n const { model } = this;\n const { value, unit } = model.attributes;\n return !isUndefined(value) && value !== ''\n ? value + unit\n : model.get('default');\n },\n\n /**\n * Returns input element\n * @return {HTMLElement}\n * @private\n */\n getInputEl() {\n if (!this.input) {\n const { ppfx, model } = this;\n const value = this.getModelValue();\n const inputNumber = new InputNumber({\n contClass: `${ppfx}field-int`,\n type: 'number',\n model: model,\n ppfx\n });\n this.input = inputNumber.render();\n this.$input = this.input.inputEl;\n this.$unit = this.input.unitEl;\n model.set('value', value, { fromTarget: 1 });\n this.$input.val(value);\n this.input = inputNumber.el;\n }\n return this.input;\n }\n});\n","import TraitView from './TraitView';\nimport InputColor from 'domain_abstract/ui/InputColor';\n\nexport default TraitView.extend({\n templateInput: '',\n\n /**\n * Returns input element\n * @return {HTMLElement}\n * @private\n */\n getInputEl() {\n if (!this.input) {\n const model = this.model;\n const value = this.getModelValue();\n const inputColor = new InputColor({\n model,\n target: this.config.em,\n contClass: this.ppfx + 'field-color',\n ppfx: this.ppfx\n });\n const input = inputColor.render();\n input.setValue(value, { fromTarget: 1 });\n this.input = input.el;\n }\n\n return this.input;\n }\n});\n","import { isString } from 'underscore';\nimport TraitView from './TraitView';\n\nexport default TraitView.extend({\n events: {\n 'click button': 'handleClick'\n },\n\n templateInput: '',\n\n handleClick() {\n const { model, em } = this;\n const command = model.get('command');\n\n if (command) {\n if (isString(command)) {\n em.get('Commands').run(command);\n } else {\n command(em.get('Editor'), model);\n }\n }\n },\n\n renderLabel() {\n if (this.model.get('label')) {\n TraitView.prototype.renderLabel.apply(this, arguments);\n }\n },\n\n getInputEl() {\n const { model, ppfx } = this;\n const { labelButton, text, full } = model.props();\n const label = labelButton || text;\n const className = `${ppfx}btn`;\n const input = `${label} `;\n return input;\n }\n});\n","import DomainViews from 'domain_abstract/view/DomainViews';\nimport TraitView from './TraitView';\nimport TraitSelectView from './TraitSelectView';\nimport TraitCheckboxView from './TraitCheckboxView';\nimport TraitNumberView from './TraitNumberView';\nimport TraitColorView from './TraitColorView';\nimport TraitButtonView from './TraitButtonView';\n\nexport default DomainViews.extend({\n ns: 'Traits',\n itemView: TraitView,\n reuseView: 1,\n\n itemsView: {\n text: TraitView,\n number: TraitNumberView,\n select: TraitSelectView,\n checkbox: TraitCheckboxView,\n color: TraitColorView,\n button: TraitButtonView\n },\n\n initialize(o = {}) {\n const config = o.config || {};\n this.config = config;\n this.em = o.editor;\n this.pfx = config.stylePrefix || '';\n this.ppfx = config.pStylePrefix || '';\n this.className = this.pfx + 'traits';\n const toListen = 'component:toggled';\n this.listenTo(this.em, toListen, this.updatedCollection);\n this.updatedCollection();\n },\n\n /**\n * Update view collection\n * @private\n */\n updatedCollection() {\n const ppfx = this.ppfx;\n const comp = this.em.getSelected();\n this.el.className = `${this.className} ${ppfx}one-bg ${ppfx}two-color`;\n this.collection = comp ? comp.get('traits') : [];\n this.render();\n }\n});\n","import { defaults, isElement } from 'underscore';\nimport defaultOpts from './config/config';\nimport TraitsView from './view/TraitsView';\n\nexport default () => {\n let c = {};\n let TraitsViewer;\n\n return {\n TraitsView,\n\n /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'TraitManager',\n\n /**\n * Get configuration object\n * @return {Object}\n * @private\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 */\n init(config = {}) {\n c = config;\n defaults(c, defaultOpts);\n const ppfx = c.pStylePrefix;\n ppfx && (c.stylePrefix = `${ppfx}${c.stylePrefix}`);\n TraitsViewer = new TraitsView({\n collection: [],\n editor: c.em,\n config: c\n });\n return this;\n },\n\n postRender() {\n const elTo = this.getConfig().appendTo;\n\n if (elTo) {\n const el = isElement(elTo) ? elTo : document.querySelector(elTo);\n el.appendChild(this.render());\n }\n },\n\n /**\n *\n * Get Traits viewer\n * @private\n */\n getTraitsViewer() {\n return TraitsViewer;\n },\n\n /**\n * Add new trait type\n * @param {string} name Type name\n * @param {Object} methods Object representing the trait\n */\n addType(name, trait) {\n var itemView = TraitsViewer.itemView;\n TraitsViewer.itemsView[name] = itemView.extend(trait);\n },\n\n /**\n * Get trait type\n * @param {string} name Type name\n * @return {Object}\n */\n getType(name) {\n return TraitsViewer.itemsView[name];\n },\n\n render() {\n return TraitsViewer.render().el;\n },\n\n destroy() {\n TraitsViewer.remove();\n [c, TraitsViewer].forEach(i => (i = {}));\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 appendOnClick: 0,\n\n blocks: []\n};\n","import Backbone from 'backbone';\n\nexport default Backbone.Model.extend({\n defaults: {\n // If true, triggers an 'active' event on dropped component\n activate: 0,\n // If true, the dropped component will be selected\n select: 0,\n // If true, all IDs of dropped component and its style will be changed\n resetId: 0,\n // Block label\n label: '',\n // Disable the drag of the block\n disable: 0,\n // HTML string for the media of the block, eg. SVG icon, image, etc.\n media: '',\n content: '',\n category: '',\n attributes: {}\n }\n});\n","import Backbone from 'backbone';\nimport Block from './Block';\n\nexport default Backbone.Collection.extend({\n model: Block\n});\n","import Backbone from 'backbone';\n\nexport default Backbone.Model.extend({\n defaults: {\n id: '',\n label: '',\n open: true,\n attributes: {}\n }\n});\n","import Backbone from 'backbone';\nimport Category from './Category';\n\nexport default Backbone.Collection.extend({\n model: Category\n});\n","import Backbone from 'backbone';\nimport { isObject } from 'underscore';\nimport { on, off, hasDnd } from 'utils/mixins';\n\nexport default Backbone.View.extend({\n events: {\n click: 'handleClick',\n mousedown: 'startDrag',\n dragstart: 'handleDragStart',\n drag: 'handleDrag',\n dragend: 'handleDragEnd'\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 handleClick() {\n const { config, model, em } = this;\n if (!config.appendOnClick) return;\n const sorter = config.getSorter();\n const content = model.get('content');\n const selected = em.getSelected();\n sorter.setDropContent(content);\n let target, valid;\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) target = parent;\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)[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)\n 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 const { em, model } = this;\n const content = model.get('content');\n const isObj = isObject(content);\n const data = isObj ? JSON.stringify(content) : content;\n em.set('dragResult');\n\n // Note: data are not available on dragenter for security reason,\n // we have to use dragContent as we need it for the Sorter context\n // IE11 supports only 'text' data type\n ev.dataTransfer.setData('text', data);\n em.set('dragContent', content);\n em.trigger('block:drag:start', model, ev);\n },\n\n handleDrag(ev) {\n this.em.trigger('block:drag', this.model, ev);\n },\n\n handleDragEnd() {\n const { em, model } = this;\n const result = em.get('dragResult');\n\n if (result) {\n const oldKey = 'activeOnRender';\n const oldActive = result.get && result.get(oldKey);\n\n if (model.get('activate') || oldActive) {\n result.trigger('active');\n result.unset(oldKey);\n }\n\n if (model.get('select')) {\n em.setSelected(result);\n }\n\n if (model.get('resetId')) {\n result.onAll(model => model.resetId());\n }\n }\n\n em.set({\n dragResult: null,\n dragContent: null\n });\n\n em.trigger('block:drag:stop', result, model);\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 =\n (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 = 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 { template } from 'underscore';\nimport Backbone from 'backbone';\n\nexport default Backbone.View.extend({\n template: template(`\n title\">\n caret-icon\"> \n <%= label %>\n
\n blocks-c\">
\n `),\n\n events: {},\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[`click .${pfx}title`] = 'toggle';\n this.listenTo(this.model, 'change:open', this.updateVisibility);\n this.delegateEvents();\n },\n\n updateVisibility() {\n if (this.model.get('open')) this.open();\n else this.close();\n },\n\n open() {\n this.el.className = `${this.className} ${this.activeClass}`;\n this.getIconEl().className = `${this.iconClass} ${this.caretD}`;\n this.getBlocksEl().style.display = '';\n },\n\n close() {\n this.el.className = this.className;\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 } = this;\n const label =\n em.t(`blockManager.categories.${model.id}`) || model.get('label');\n el.innerHTML = this.template({\n pfx: this.pfx,\n label\n });\n el.className = this.className;\n $el.css({ order: model.get('order') });\n this.updateVisibility();\n\n return this;\n }\n});\n","import Backbone from 'backbone';\nimport { isString, isObject, bindAll } from 'underscore';\nimport BlockView from './BlockView';\nimport CategoryView from './CategoryView';\n\nexport default Backbone.View.extend({\n initialize(opts, config) {\n bindAll(this, 'getSorter', 'onDrag', 'onDrop');\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(\n `.${this.noCatClass} .${this.blockContClass}`\n );\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 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. Before using these methods you should get the module from the instance\n *\n * ```js\n * const blockManager = editor.BlockManager;\n * ```\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 * @module BlockManager\n */\nimport { isElement } from 'underscore';\nimport defaults from './config/config';\nimport Blocks from './model/Blocks';\nimport BlockCategories from './model/Categories';\nimport BlocksView from './view/BlocksView';\n\nexport default () => {\n var c = {};\n var blocks, blocksVisible, blocksView;\n var categories = [];\n\n return {\n /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'BlockManager',\n\n /**\n * Initialize module. Automatically called with a new instance of the editor\n * @param {Object} config Configurations\n * @return {this}\n * @private\n */\n init(config) {\n c = config || {};\n const em = c.em;\n\n for (let name in defaults) {\n if (!(name in c)) {\n c[name] = defaults[name];\n }\n }\n\n // Global blocks collection\n blocks = new Blocks([]);\n blocksVisible = new Blocks([]);\n categories = new BlockCategories();\n\n // Setup the sync between the global and public collections\n blocks.listenTo(blocks, 'add', model => {\n blocksVisible.add(model);\n em && em.trigger('block:add', model);\n });\n\n blocks.listenTo(blocks, 'remove', model => {\n blocksVisible.remove(model);\n em && em.trigger('block:remove', model);\n });\n\n blocks.listenTo(blocks, 'reset', coll => {\n blocksVisible.reset(coll.models);\n });\n\n return this;\n },\n\n /**\n * Get configuration object\n * @return {Object}\n */\n getConfig() {\n return c;\n },\n\n /**\n * Load default blocks if the collection is empty\n */\n onLoad() {\n const blocks = this.getAll();\n !blocks.length && blocks.reset(c.blocks);\n },\n\n /**\n * Executed once the main editor instance is rendered\n * @private\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 el.appendChild(this.render(blocksVisible.models));\n }\n },\n\n /**\n * Add new block to the collection.\n * @param {string} id Block id\n * @param {Object} opts Options\n * @param {string} opts.label Name of the block\n * @param {string} opts.content HTML content\n * @param {string|Object} opts.category Group the block inside a catgegory.\n * You should pass objects with id property, eg:\n * {id: 'some-uid', label: 'My category'}\n * The string will be converted in:\n * 'someid' => {id: 'someid', label: 'someid'}\n * @param {Object} [opts.attributes={}] Block attributes\n * @return {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, opts) {\n var obj = opts || {};\n obj.id = id;\n return blocks.add(obj);\n },\n\n /**\n * Return the block by id\n * @param {string} id Block id\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 * @return {Collection}\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 * @return {Collection}\n */\n getAllVisible() {\n return blocksVisible;\n },\n\n /**\n * Remove a block by id\n * @param {string} id Block id\n * @return {Block} Removed block\n * @example\n * // Id of the block which need to be removed\n * const id = 'button';\n * blockManager.remove(id);\n */\n remove(id) {\n return blocks.remove(id);\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(\n { collection, categories },\n { ...c, ...opts }\n ).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 blocks.reset();\n blocks.stopListening();\n blocksVisible.reset();\n categories.reset();\n blocksView && blocksView.remove();\n [blocks, blocksVisible, categories, blocksView].forEach(i => (i = null));\n c = {};\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 Backbone from 'backbone';\nimport Buttons from './Buttons';\n\nexport default Backbone.Model.extend({\n defaults: {\n id: '',\n content: '',\n visible: true,\n buttons: [],\n attributes: {}\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 Backbone from 'backbone';\nimport Panel from './Panel';\n\nexport default Backbone.Collection.extend({\n model: Panel\n});\n","import Backbone from 'backbone';\nimport { isString, isObject, isFunction } from 'underscore';\n\nconst $ = Backbone.$;\n\nexport default Backbone.View.extend({\n tagName() {\n return this.model.get('tagName');\n },\n\n events: {\n click: 'clicked'\n },\n\n initialize(o) {\n var cls = this.model.get('className');\n this.config = o.config || {};\n this.em = this.config.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 + this.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(this.model, 'change', this.render);\n this.listenTo(this.model, 'change:active updateActive', this.updateActive);\n this.listenTo(this.model, 'checkActive', this.checkActive);\n this.listenTo(this.model, 'change:bntsVis', this.updateBtnsVis);\n this.listenTo(this.model, 'change:attributes', this.updateAttributes);\n this.listenTo(this.model, 'change:className', this.updateClassName);\n this.listenTo(this.model, 'change:disable', this.updateDisable);\n\n if (this.em && this.em.get) this.commands = this.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(opts = {}) {\n const { model, commands, $el, activeCls } = this;\n const { fromCollection } = 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 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 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'))\n 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 Backbone from 'backbone';\nimport ButtonView from './ButtonView';\nimport { result } from 'underscore';\n\nexport default Backbone.View.extend({\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 Backbone from 'backbone';\nimport ButtonsView from './ButtonsView';\n\nexport default Backbone.View.extend({\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 =\n styleWidth && !forContainer ? parseFloat(styleWidth) : rect.width;\n const height =\n styleHeight && !forContainer\n ? parseFloat(styleHeight)\n : 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 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 Backbone from 'backbone';\nimport PanelView from './PanelView';\n\nexport default Backbone.View.extend({\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 PanelsViewObj = new PanelsView({\n collection: panels,\n config: c\n });\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.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 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.remove();\n [c, panels, PanelsViewObj].forEach(i => (i = {}));\n },\n\n Panel\n };\n};\n","export default {\n stylePrefix: 'sm-',\n\n sectors: [],\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 // Hide the property in case it's not stylable for the\n // selected component (each component has 'stylable' property)\n hideNotStylable: true,\n\n // Highlight changed properties of the selected component\n highlightChanged: true,\n\n // Highlight computed properties of the selected component\n highlightComputed: true,\n\n // Show computed properties of the selected component, if this value\n // is set to false, highlightComputed will not take effect\n showComputed: true,\n\n // Adds the possibility to clear property value from the target style\n clearProperties: 0,\n\n // Properties not to take in account for computed styles\n avoidComputed: ['width', 'height']\n};\n","export default () => ({\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 var objs = [];\n var dftFixedValues = ['initial', 'inherit'];\n\n if (typeof props === 'string') props = [props];\n\n for (var i = 0, len = props.length; i < len; i++) {\n var obj = {};\n var prop = props[i];\n obj.property = prop;\n\n // Property\n switch (prop) {\n case 'border-radius-c':\n obj.property = 'border-radius';\n break;\n }\n\n // Fixed values\n switch (prop) {\n case 'top':\n case 'right':\n case 'bottom':\n case 'left':\n case 'margin-top':\n case 'margin-right':\n case 'margin-bottom':\n case 'margin-left':\n case 'padding-top':\n case 'padding-right':\n case 'padding-bottom':\n case 'padding-left':\n case 'width':\n case 'max-width':\n case 'min-width':\n case 'height':\n case 'max-height':\n case 'min-height':\n case 'flex-basis':\n obj.fixedValues = ['initial', 'inherit', 'auto'];\n break;\n case 'font-size':\n obj.fixedValues = [\n 'medium',\n 'xx-small',\n 'x-small',\n 'small',\n 'large',\n 'x-large',\n 'xx-large',\n 'smaller',\n 'larger',\n 'length',\n 'initial',\n 'inherit'\n ];\n break;\n case 'letter-spacing':\n case 'line-height':\n obj.fixedValues = ['normal', 'initial', 'inherit'];\n break;\n }\n\n // Type\n switch (prop) {\n case 'float':\n case 'position':\n case 'text-align':\n obj.type = 'radio';\n break;\n case 'display':\n case 'flex-direction':\n case 'flex-wrap':\n case 'justify-content':\n case 'align-items':\n case 'align-content':\n case 'align-self':\n case 'font-family':\n case 'font-weight':\n case 'border-style':\n case 'box-shadow-type':\n case 'background-repeat':\n case 'background-position':\n case 'background-attachment':\n case 'background-size':\n case 'transition-property':\n case 'transition-timing-function':\n case 'cursor':\n case 'overflow':\n case 'overflow-x':\n case 'overflow-y':\n obj.type = 'select';\n break;\n case 'top':\n case 'right':\n case 'bottom':\n case 'left':\n case 'margin-top':\n case 'margin-right':\n case 'margin-bottom':\n case 'margin-left':\n case 'padding-top':\n case 'padding-right':\n case 'padding-bottom':\n case 'padding-left':\n case 'min-height':\n case 'min-width':\n case 'max-height':\n case 'max-width':\n case 'width':\n case 'height':\n case 'font-size':\n case 'letter-spacing':\n case 'line-height':\n case 'text-shadow-h':\n case 'text-shadow-v':\n case 'text-shadow-blur':\n case 'border-radius-c':\n case 'border-top-left-radius':\n case 'border-top-right-radius':\n case 'border-bottom-left-radius':\n case 'border-bottom-right-radius':\n case 'border-width':\n case 'box-shadow-h':\n case 'box-shadow-v':\n case 'box-shadow-blur':\n case 'box-shadow-spread':\n case 'transition-duration':\n case 'perspective':\n case 'transform-rotate-x':\n case 'transform-rotate-y':\n case 'transform-rotate-z':\n case 'transform-scale-x':\n case 'transform-scale-y':\n case 'transform-scale-z':\n case 'order':\n case 'flex-grow':\n case 'flex-shrink':\n case 'flex-basis':\n obj.type = 'integer';\n break;\n case 'margin':\n case 'padding':\n case 'border-radius':\n case 'border':\n case 'transform':\n obj.type = 'composite';\n break;\n case 'color':\n case 'text-shadow-color':\n case 'background-color':\n case 'border-color':\n case 'box-shadow-color':\n obj.type = 'color';\n break;\n case 'text-shadow':\n case 'box-shadow':\n case 'background':\n case 'transition':\n obj.type = 'stack';\n break;\n case 'background-image':\n obj.type = 'file';\n break;\n }\n\n // Defaults\n switch (prop) {\n case 'float':\n case 'background-color':\n case 'text-shadow':\n obj.defaults = 'none';\n break;\n case 'display':\n obj.defaults = 'block';\n break;\n case 'flex-direction':\n obj.defaults = 'row';\n break;\n case 'flex-wrap':\n obj.defaults = 'nowrap';\n break;\n case 'justify-content':\n obj.defaults = 'flex-start';\n break;\n case 'align-items':\n obj.defaults = 'stretch';\n break;\n case 'align-content':\n obj.defaults = 'stretch';\n break;\n case 'align-self':\n obj.defaults = 'auto';\n break;\n case 'position':\n obj.defaults = 'static';\n break;\n case 'margin-top':\n case 'margin-right':\n case 'margin-bottom':\n case 'margin-left':\n case 'padding-top':\n case 'padding-right':\n case 'padding-bottom':\n case 'padding-left':\n case 'text-shadow-h':\n case 'text-shadow-v':\n case 'text-shadow-blur':\n case 'border-radius-c':\n case 'box-shadow-h':\n case 'box-shadow-v':\n case 'box-shadow-spread':\n case 'perspective':\n case 'transform-rotate-x':\n case 'transform-rotate-y':\n case 'transform-rotate-z':\n case 'order':\n case 'flex-grow':\n obj.defaults = 0;\n break;\n case 'border-top-left-radius':\n case 'border-top-right-radius':\n case 'border-bottom-left-radius':\n case 'border-bottom-right-radius':\n obj.defaults = '0px';\n break;\n case 'transform-scale-x':\n case 'transform-scale-y':\n case 'transform-scale-z':\n case 'flex-shrink':\n obj.defaults = 1;\n break;\n case 'box-shadow-blur':\n obj.defaults = '5px';\n break;\n case 'top':\n case 'right':\n case 'bottom':\n case 'left':\n case 'min-height':\n case 'min-width':\n case 'max-height':\n case 'max-width':\n case 'width':\n case 'height':\n case 'background-size':\n case 'cursor':\n case 'flex-basis':\n obj.defaults = 'auto';\n break;\n case 'font-family':\n obj.defaults = 'Arial, Helvetica, sans-serif';\n break;\n case 'font-size':\n case 'border-width':\n obj.defaults = 'medium';\n break;\n case 'font-weight':\n obj.defaults = '400';\n break;\n case 'letter-spacing':\n case 'line-height':\n obj.defaults = 'normal';\n break;\n case 'color':\n case 'text-shadow-color':\n case 'border-color':\n case 'box-shadow-color':\n obj.defaults = 'black';\n break;\n case 'text-align':\n obj.defaults = 'left';\n break;\n case 'border-style':\n obj.defaults = 'solid';\n break;\n case 'box-shadow-type':\n obj.defaults = '';\n break;\n case 'background-repeat':\n obj.defaults = 'repeat';\n break;\n case 'background-position':\n obj.defaults = 'left top';\n break;\n case 'background-attachment':\n obj.defaults = 'scroll';\n break;\n case 'transition-property':\n obj.defaults = 'width';\n break;\n case 'transition-duration':\n obj.defaults = '2';\n break;\n case 'transition-timing-function':\n obj.defaults = 'ease';\n break;\n case 'overflow':\n case 'overflow-x':\n case 'overflow-y':\n obj.defaults = 'visible';\n break;\n }\n\n /*\n * Add styleable dependency on other properties. Allows properties to be\n * dynamically hidden or shown based on values of other properties.\n *\n * Property will be styleable if all of the properties (keys) in the\n * requires object have any of the values specified in the array.\n */\n switch (prop) {\n case 'flex-direction':\n case 'flex-wrap':\n case 'justify-content':\n case 'align-items':\n case 'align-content':\n obj.requires = { display: ['flex'] };\n break;\n case 'order':\n case 'flex-basis':\n case 'flex-grow':\n case 'flex-shrink':\n case 'align-self':\n obj.requiresParent = { display: ['flex'] };\n break;\n }\n\n // Units\n switch (prop) {\n case 'top':\n case 'bottom':\n case 'margin-top':\n case 'margin-bottom':\n case 'padding-top':\n case 'padding-bottom':\n case 'min-height':\n case 'max-height':\n case 'height':\n obj.units = ['px', '%', 'vh'];\n break;\n case 'right':\n case 'left':\n case 'margin-right':\n case 'margin-left':\n case 'padding-right':\n case 'padding-left':\n case 'min-width':\n case 'max-width':\n case 'width':\n obj.units = ['px', '%', 'vw'];\n break;\n case 'flex-basis':\n obj.units = ['px', '%', 'vw', 'vh'];\n break;\n case 'text-shadow-v':\n case 'text-shadow-h':\n case 'text-shadow-blur':\n case 'border-radius-c':\n case 'border-top-left-radius':\n case 'border-top-right-radius':\n case 'border-bottom-left-radius':\n case 'border-bottom-right-radius':\n case 'box-shadow-h':\n case 'box-shadow-v':\n obj.units = ['px', '%'];\n break;\n case 'font-size':\n case 'letter-spacing':\n case 'line-height':\n obj.units = ['px', 'em', 'rem', '%'];\n break;\n case 'border-width':\n obj.units = ['px', 'em'];\n break;\n case 'box-shadow-blur':\n case 'box-shadow-spread':\n case 'perspective':\n obj.units = ['px'];\n break;\n case 'transition-duration':\n obj.units = ['s'];\n break;\n case 'transform-rotate-x':\n case 'transform-rotate-y':\n case 'transform-rotate-z':\n obj.units = ['deg'];\n break;\n }\n\n // Min/Max\n switch (prop) {\n case 'padding-top':\n case 'padding-right':\n case 'padding-bottom':\n case 'padding-left':\n case 'min-height':\n case 'min-width':\n case 'max-height':\n case 'max-width':\n case 'width':\n case 'height':\n case 'font-size':\n case 'text-shadow-blur':\n case 'border-radius-c':\n case 'border-top-left-radius':\n case 'border-top-right-radius':\n case 'border-bottom-left-radius':\n case 'border-bottom-right-radius':\n case 'border-width':\n case 'box-shadow-blur':\n case 'transition-duration':\n case 'perspective':\n case 'flex-basis':\n obj.min = 0;\n break;\n }\n\n // Preview\n switch (prop) {\n case 'text-shadow':\n case 'box-shadow':\n case 'background':\n obj.preview = true;\n break;\n }\n\n // Detached\n switch (prop) {\n case 'background':\n obj.detached = true;\n break;\n }\n\n // Functions\n switch (prop) {\n case 'transform-rotate-x':\n obj.functionName = 'rotateX';\n break;\n case 'transform-rotate-y':\n obj.functionName = 'rotateY';\n break;\n case 'transform-rotate-z':\n obj.functionName = 'rotateZ';\n break;\n case 'transform-scale-x':\n obj.functionName = 'scaleX';\n break;\n case 'transform-scale-y':\n obj.functionName = 'scaleY';\n break;\n case 'transform-scale-z':\n obj.functionName = 'scaleZ';\n break;\n case 'background-image':\n obj.functionName = 'url';\n break;\n }\n\n // Options\n switch (prop) {\n case 'float':\n obj.list = [{ value: 'none' }, { value: 'left' }, { value: 'right' }];\n break;\n case 'display':\n obj.list = [\n { value: 'block' },\n { value: 'inline' },\n { value: 'inline-block' },\n { value: 'flex' },\n { value: 'none' }\n ];\n break;\n case 'flex-direction':\n obj.list = [\n { value: 'row' },\n { value: 'row-reverse' },\n { value: 'column' },\n { value: 'column-reverse' }\n ];\n break;\n case 'flex-wrap':\n obj.list = [\n { value: 'nowrap' },\n { value: 'wrap' },\n { value: 'wrap-reverse' }\n ];\n break;\n case 'justify-content':\n obj.list = [\n { value: 'flex-start' },\n { value: 'flex-end' },\n { value: 'center' },\n { value: 'space-between' },\n { value: 'space-around' },\n { value: 'space-evenly' }\n ];\n break;\n case 'align-items':\n obj.list = [\n { value: 'flex-start' },\n { value: 'flex-end' },\n { value: 'center' },\n { value: 'baseline' },\n { value: 'stretch' }\n ];\n break;\n case 'align-content':\n obj.list = [\n { value: 'flex-start' },\n { value: 'flex-end' },\n { value: 'center' },\n { value: 'space-between' },\n { value: 'space-around' },\n { value: 'stretch' }\n ];\n break;\n case 'align-self':\n obj.list = [\n { value: 'auto' },\n { value: 'flex-start' },\n { value: 'flex-end' },\n { value: 'center' },\n { value: 'baseline' },\n { value: 'stretch' }\n ];\n break;\n case 'position':\n obj.list = [\n { value: 'static' },\n { value: 'relative' },\n { value: 'absolute' },\n { value: 'fixed' }\n ];\n break;\n case 'font-family':\n var ss = ', sans-serif';\n var fonts = [\n 'Arial, Helvetica' + ss,\n 'Arial Black, Gadget' + ss,\n 'Brush Script MT' + ss,\n 'Comic Sans MS, cursive' + ss,\n 'Courier New, Courier, monospace',\n 'Georgia, serif',\n 'Helvetica' + ss,\n 'Impact, Charcoal' + ss,\n 'Lucida Sans Unicode, Lucida Grande' + ss,\n 'Tahoma, Geneva' + ss,\n 'Times New Roman, Times, serif',\n 'Trebuchet MS, Helvetica' + ss,\n 'Verdana, Geneva' + ss\n ];\n obj.list = [];\n for (var j = 0, l = fonts.length; j < l; j++) {\n var font = {};\n font.value = fonts[j];\n font.name = fonts[j].split(',')[0];\n obj.list.push(font);\n }\n break;\n case 'font-weight':\n obj.list = [\n { value: '100', name: 'Thin' },\n { value: '200', name: 'Extra-Light' },\n { value: '300', name: 'Light' },\n { value: '400', name: 'Normal' },\n { value: '500', name: 'Medium' },\n { value: '600', name: 'Semi-Bold' },\n { value: '700', name: 'Bold' },\n { value: '800', name: 'Extra-Bold' },\n { value: '900', name: 'Ultra-Bold' }\n ];\n break;\n case 'text-align':\n obj.list = [\n { value: 'left' },\n { value: 'center' },\n { value: 'right' },\n { value: 'justify' }\n ];\n break;\n case 'border-style':\n obj.list = [\n { value: 'none' },\n { value: 'solid' },\n { value: 'dotted' },\n { value: 'dashed' },\n { value: 'double' },\n { value: 'groove' },\n { value: 'ridge' },\n { value: 'inset' },\n { value: 'outset' }\n ];\n break;\n case 'box-shadow-type':\n obj.list = [\n { value: '', name: 'Outside' },\n { value: 'inset', name: 'Inside' }\n ];\n break;\n case 'background-repeat':\n obj.list = [\n { value: 'repeat' },\n { value: 'repeat-x' },\n { value: 'repeat-y' },\n { value: 'no-repeat' }\n ];\n break;\n case 'background-position':\n obj.list = [\n { value: 'left top' },\n { value: 'left center' },\n { value: 'left bottom' },\n { value: 'right top' },\n { value: 'right center' },\n { value: 'right bottom' },\n { value: 'center top' },\n { value: 'center center' },\n { value: 'center bottom' }\n ];\n break;\n case 'background-attachment':\n obj.list = [\n { value: 'scroll' },\n { value: 'fixed' },\n { value: 'local' }\n ];\n break;\n case 'background-size':\n obj.list = [\n { value: 'auto' },\n { value: 'cover' },\n { value: 'contain' }\n ];\n break;\n case 'transition-property':\n obj.list = [\n { value: 'all' },\n { value: 'width' },\n { value: 'height' },\n { value: 'background-color' },\n { value: 'transform' },\n { value: 'box-shadow' },\n { value: 'opacity' }\n ];\n break;\n case 'transition-timing-function':\n obj.list = [\n { value: 'linear' },\n { value: 'ease' },\n { value: 'ease-in' },\n { value: 'ease-out' },\n { value: 'ease-in-out' }\n ];\n break;\n case 'cursor':\n obj.list = [\n { value: 'auto' },\n { value: 'pointer' },\n { value: 'copy' },\n { value: 'crosshair' },\n { value: 'grab' },\n { value: 'grabbing' },\n { value: 'help' },\n { value: 'move' },\n { value: 'text' }\n ];\n break;\n case 'overflow':\n case 'overflow-x':\n case 'overflow-y':\n obj.list = [\n { value: 'visible' },\n { value: 'hidden' },\n { value: 'scroll' },\n { value: 'auto' }\n ];\n break;\n }\n\n // Properties\n switch (prop) {\n case 'margin':\n obj.properties = this.build([\n 'margin-top',\n 'margin-right',\n 'margin-bottom',\n 'margin-left'\n ]);\n break;\n case 'padding':\n obj.properties = this.build([\n 'padding-top',\n 'padding-right',\n 'padding-bottom',\n 'padding-left'\n ]);\n break;\n case 'text-shadow':\n obj.properties = this.build([\n 'text-shadow-h',\n 'text-shadow-v',\n 'text-shadow-blur',\n 'text-shadow-color'\n ]);\n break;\n case 'border':\n obj.properties = this.build([\n 'border-width',\n 'border-style',\n 'border-color'\n ]);\n break;\n case 'border-radius':\n obj.properties = this.build([\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-bottom-right-radius',\n 'border-bottom-left-radius'\n ]);\n break;\n case 'box-shadow':\n obj.properties = this.build([\n 'box-shadow-h',\n 'box-shadow-v',\n 'box-shadow-blur',\n 'box-shadow-spread',\n 'box-shadow-color',\n 'box-shadow-type'\n ]);\n break;\n case 'background':\n obj.properties = this.build([\n 'background-image',\n 'background-repeat',\n 'background-position',\n 'background-attachment',\n 'background-size'\n ]);\n break;\n case 'transition':\n obj.properties = this.build([\n 'transition-property',\n 'transition-duration',\n 'transition-timing-function'\n ]);\n break;\n case 'transform':\n obj.properties = this.build([\n 'transform-rotate-x',\n 'transform-rotate-y',\n 'transform-rotate-z',\n 'transform-scale-x',\n 'transform-scale-y',\n 'transform-scale-z'\n ]);\n break;\n }\n\n objs.push(obj);\n }\n\n return objs;\n }\n});\n","import Backbone from 'backbone';\nimport { extend } from 'underscore';\nimport Properties from './Properties';\nimport PropertyFactory from './PropertyFactory';\n\nexport default Backbone.Model.extend({\n defaults: {\n id: '',\n name: '',\n open: true,\n buildProps: '',\n extendBuilded: 1,\n properties: []\n },\n\n initialize(opts) {\n const o = opts || {};\n const builded = this.buildProperties(o.buildProps);\n const name = this.get('name') || '';\n let props = [];\n !this.get('id') && this.set('id', name.replace(/ /g, '_').toLowerCase());\n\n if (!builded) props = this.get('properties');\n else props = this.extendProperties(builded);\n\n const propsModel = new Properties(props);\n propsModel.sector = this;\n this.set('properties', propsModel);\n },\n\n /**\n * Extend properties\n * @param {Array} props Start properties\n * @param {Array} moProps Model props\n * @param {Boolean} ex Returns the same amount of passed model props\n * @return {Array} Final props\n * @private\n */\n extendProperties(props, moProps, ex) {\n var pLen = props.length;\n var mProps = moProps || this.get('properties');\n var ext = this.get('extendBuilded');\n var isolated = [];\n\n for (var i = 0, len = mProps.length; i < len; i++) {\n var mProp = mProps[i];\n var found = 0;\n\n for (var j = 0; j < pLen; j++) {\n var prop = props[j];\n if (mProp.property == prop.property || mProp.id == prop.property) {\n // Check for nested properties\n var mPProps = mProp.properties;\n if (mPProps && mPProps.length) {\n mProp.properties = this.extendProperties(\n prop.properties || [],\n mPProps,\n 1\n );\n }\n props[j] = ext ? extend(prop, mProp) : mProp;\n isolated[j] = props[j];\n found = 1;\n continue;\n }\n }\n\n if (!found) {\n props.push(mProp);\n isolated.push(mProp);\n }\n }\n\n return ex ? isolated.filter(i => i) : props;\n },\n\n /**\n * Build properties\n * @param {Array} propr Array of props as sting\n * @return {Array}\n * @private\n */\n buildProperties(props) {\n var r;\n var buildP = props || [];\n\n if (!buildP.length) return;\n\n if (!this.propFactory) this.propFactory = new PropertyFactory();\n\n r = this.propFactory.build(buildP);\n\n return r;\n }\n});\n","import Backbone from 'backbone';\nimport Sector from './Sector';\n\nexport default Backbone.Collection.extend({\n model: Sector,\n\n initialize() {\n this.listenTo(this, 'reset', this.onReset);\n },\n\n onReset(models, opts = {}) {\n const prev = opts.previousModels || [];\n prev.forEach(sect => sect.get('properties').reset());\n }\n});\n","import Backbone from 'backbone';\nimport { template } from 'underscore';\nimport PropertiesView from './PropertiesView';\n\nexport default Backbone.View.extend({\n template: template(`\n title\" data-sector-title>\n caret\" class=\"fa\"> \n <%= label %>\n
`),\n\n events: {\n 'click [data-sector-title]': 'toggle'\n },\n\n initialize(o) {\n this.config = o.config || {};\n this.em = this.config.em;\n this.pfx = this.config.stylePrefix || '';\n this.target = o.target || {};\n this.propTarget = o.propTarget || {};\n this.caretR = 'fa-caret-right';\n this.caretD = 'fa-caret-down';\n const model = this.model;\n this.listenTo(model, 'change:open', this.updateOpen);\n this.listenTo(model, 'updateVisibility', this.updateVisibility);\n this.listenTo(model, 'destroy remove', this.remove);\n },\n\n /**\n * If all properties are hidden this will hide the sector\n */\n updateVisibility() {\n var show;\n this.model.get('properties').each(prop => {\n if (prop.get('visible')) {\n show = 1;\n }\n });\n this.el.style.display = show ? '' : 'none';\n },\n\n /**\n * Update visibility\n */\n updateOpen() {\n if (this.model.get('open')) this.show();\n else this.hide();\n },\n\n /**\n * Show the content of the sector\n * */\n show() {\n this.$el.addClass(this.pfx + 'open');\n this.getPropertiesEl().style.display = '';\n this.$caret.removeClass(this.caretR).addClass(this.caretD);\n },\n\n /**\n * Hide the content of the sector\n * */\n hide() {\n this.$el.removeClass(this.pfx + 'open');\n this.getPropertiesEl().style.display = 'none';\n this.$caret.removeClass(this.caretD).addClass(this.caretR);\n },\n\n getPropertiesEl() {\n return this.$el.find(`.${this.pfx}properties`).get(0);\n },\n\n /**\n * Toggle visibility\n * */\n toggle(e) {\n var v = this.model.get('open') ? 0 : 1;\n this.model.set('open', v);\n },\n\n render() {\n const { pfx, model, em, $el } = this;\n const { id, name } = model.attributes;\n const label = (em && em.t(`styleManager.sectors.${id}`)) || name;\n $el.html(this.template({ pfx, label }));\n this.$caret = $el.find(`#${pfx}caret`);\n this.renderProperties();\n $el.attr('class', `${pfx}sector ${pfx}sector__${id} no-select`);\n this.updateOpen();\n return this;\n },\n\n renderProperties() {\n var objs = this.model.get('properties');\n\n if (objs) {\n var view = new PropertiesView({\n collection: objs,\n target: this.target,\n propTarget: this.propTarget,\n config: this.config\n });\n this.$el.append(view.render().el);\n }\n }\n});\n","import Backbone from 'backbone';\nimport { extend, isString, isArray } from 'underscore';\nimport { isTaggableNode } from 'utils/mixins';\nimport { appendAtIndex } from 'utils/dom';\nimport SectorView from './SectorView';\n\nconst helperCls = 'hc-state';\n\nexport default Backbone.View.extend({\n initialize(o = {}) {\n const config = o.config || {};\n this.pfx = config.stylePrefix || '';\n this.ppfx = config.pStylePrefix || '';\n this.target = o.target || {};\n this.config = config;\n\n // The target that will emit events for properties\n const target = {};\n extend(target, Backbone.Events);\n const body = document.body;\n const dummy = document.createElement(`el-${new Date().getTime()}`);\n body.appendChild(dummy);\n target.computedDefault = { ...window.getComputedStyle(dummy) };\n body.removeChild(dummy);\n this.propTarget = target;\n const coll = this.collection;\n const events =\n 'component:toggled component:update:classes change:state change:device frame:resized';\n this.listenTo(coll, 'add', this.addTo);\n this.listenTo(coll, 'reset', this.render);\n this.listenTo(this.target, events, this.targetUpdated);\n },\n\n remove() {\n Backbone.View.prototype.remove.apply(this, arguments);\n ['target', 'config', 'propTarget'].forEach(i => (this[i] = {}));\n },\n\n /**\n * Add to collection\n * @param {Object} model Model\n * @return {Object}\n * @private\n * */\n addTo(model, coll, opts = {}) {\n this.addToCollection(model, null, opts);\n },\n\n toggleStateCls(targets = [], enable) {\n targets.forEach(trg => {\n const el = trg.getEl();\n el && el.classList && el.classList[enable ? 'add' : 'remove'](helperCls);\n });\n },\n\n /**\n * Fired when target is updated\n * @private\n */\n targetUpdated(trg) {\n const em = this.target;\n const pt = this.propTarget;\n const targets = em.getSelectedAll();\n let model = em.getSelected();\n const mdToClear = trg && !!trg.toHTML ? trg : model;\n\n // Clean components\n mdToClear && this.toggleStateCls([mdToClear]);\n if (!model) return;\n\n const config = em.get('Config');\n const state = !config.devicePreviewMode ? em.get('state') : '';\n const { componentFirst } = em.get('SelectorManager').getConfig();\n const el = model.getEl();\n pt.helper = null;\n pt.targets = null;\n\n // Create computed style container\n if (el && isTaggableNode(el)) {\n const stateStr = state ? `:${state}` : null;\n pt.computed = window.getComputedStyle(el, stateStr);\n }\n\n // Create a new rule for the state as a helper\n const appendStateRule = (style = {}) => {\n const cc = em.get('CssComposer');\n const rules = cc.getAll();\n let helperRule = cc.getClassRule(helperCls);\n\n if (!helperRule) {\n helperRule = cc.setClassRule(helperCls);\n } else {\n // I will make it last again, otherwise it could be overridden\n rules.remove(helperRule);\n rules.add(helperRule);\n }\n\n helperRule.set('important', 1);\n helperRule.setStyle(style);\n pt.helper = helperRule;\n };\n\n const sm = em.get('StyleManager');\n model = sm.getModelToStyle(model);\n\n if (state) {\n appendStateRule(model.getStyle());\n this.toggleStateCls(targets, 1);\n }\n\n pt.model = model;\n if (componentFirst) {\n pt.targets = targets.map(t => sm.getModelToStyle(t)).filter(Boolean);\n }\n pt.trigger('update');\n },\n\n /**\n * Select different target for the Style Manager.\n * It could be a Component, CSSRule, or a string of any CSS selector\n * @param {Component|CSSRule|String|Array} target\n * @return {Array} Array of Components/CSSRules\n */\n setTarget(target, opts = {}) {\n const em = this.target;\n const trgs = isArray(target) ? target : [target];\n const { targetIsClass, stylable } = opts;\n const models = [];\n\n trgs.forEach(target => {\n let model = target;\n\n if (isString(target)) {\n let rule;\n const rules = em.get('CssComposer').getAll();\n\n if (targetIsClass) {\n rule = rules.filter(\n rule => rule.get('selectors').getFullString() === target\n )[0];\n }\n\n if (!rule) {\n rule = rules.filter(rule => rule.get('selectorsAdd') === target)[0];\n }\n\n if (!rule) {\n rule = rules.add({ selectors: [], selectorsAdd: target });\n }\n\n stylable && rule.set({ stylable });\n model = rule;\n }\n\n models.push(model);\n });\n\n const pt = this.propTarget;\n pt.targets = models;\n pt.trigger('update', { targets: models });\n return models;\n },\n\n /**\n * Add new object to collection\n * @param {Object} model Model\n * @param {Object} fragmentEl collection\n * @return {Object} Object created\n * @private\n * */\n addToCollection(model, fragmentEl, opts = {}) {\n const { pfx, target, propTarget, config, el } = this;\n const appendTo = fragmentEl || el;\n const rendered = new SectorView({\n model,\n id: `${pfx}${model.get('id')}`,\n name: model.get('name'),\n properties: model.get('properties'),\n target,\n propTarget,\n config\n }).render().el;\n appendAtIndex(appendTo, rendered, opts.at);\n\n return rendered;\n },\n\n render() {\n const frag = document.createDocumentFragment();\n const $el = this.$el;\n const pfx = this.pfx;\n const ppfx = this.ppfx;\n $el.empty();\n this.collection.each(model => this.addToCollection(model, frag));\n $el.append(frag);\n $el.addClass(`${pfx}sectors ${ppfx}one-bg ${ppfx}two-color`);\n return this;\n }\n});\n","/**\n * With Style Manager you build categories (called sectors) of CSS properties which could be used to customize the style of components.\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/style_manager/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * styleManager: {\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 styleManager = editor.StyleManager;\n * ```\n *\n * * [getConfig](#getconfig)\n * * [addSector](#addsector)\n * * [getSector](#getsector)\n * * [removeSector](#removesector)\n * * [getSectors](#getsectors)\n * * [addProperty](#addproperty)\n * * [getProperty](#getproperty)\n * * [removeProperty](#removeproperty)\n * * [getProperties](#getproperties)\n * * [getModelToStyle](#getmodeltostyle)\n * * [addType](#addtype)\n * * [getType](#gettype)\n * * [getTypes](#gettypes)\n * * [createType](#createtype)\n *\n * @module StyleManager\n */\n\nimport { isElement } from 'underscore';\nimport defaults from './config/config';\nimport Sectors from './model/Sectors';\nimport Properties from './model/Properties';\nimport PropertyFactory from './model/PropertyFactory';\nimport SectorsView from './view/SectorsView';\n\nexport default () => {\n var c = {};\n let properties;\n var sectors, SectView;\n\n return {\n PropertyFactory: PropertyFactory(),\n\n /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'StyleManager',\n\n /**\n * Get configuration object\n * @return {Object}\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 = { ...defaults, ...config };\n const ppfx = c.pStylePrefix;\n this.em = c.em;\n if (ppfx) c.stylePrefix = ppfx + c.stylePrefix;\n properties = new Properties();\n sectors = new Sectors([], c);\n SectView = new SectorsView({\n collection: sectors,\n target: c.em,\n config: c\n });\n\n return this;\n },\n\n onLoad() {\n // Use silent as sectors' view will be created and rendered on StyleManager.render\n sectors.add(c.sectors, { silent: true });\n },\n\n postRender() {\n const elTo = this.getConfig().appendTo;\n\n if (elTo) {\n const el = isElement(elTo) ? elTo : document.querySelector(elTo);\n el.appendChild(this.render());\n }\n },\n\n /**\n * Add new sector to the collection. If the sector with the same id already exists,\n * that one will be returned\n * @param {string} id Sector id\n * @param {Object} sector Object representing sector\n * @param {string} [sector.name=''] Sector's label\n * @param {Boolean} [sector.open=true] Indicates if the sector should be opened\n * @param {Array} [sector.properties=[]] Array of properties\n * @param {Object} [options={}] Options\n * @return {Sector} Added Sector\n * @example\n * var sector = styleManager.addSector('mySector',{\n * name: 'My sector',\n * open: true,\n * properties: [{ name: 'My property'}]\n * }, { at: 0 });\n * // With `at: 0` we place the new sector at the beginning of the collection\n * */\n addSector(id, sector, opts = {}) {\n let result = this.getSector(id);\n\n if (!result) {\n sector.id = id;\n result = sectors.add(sector, opts);\n }\n\n return result;\n },\n\n /**\n * Get sector by id\n * @param {string} id Sector id\n * @return {Sector|null}\n * @example\n * var sector = styleManager.getSector('mySector');\n * */\n getSector(id, opts = {}) {\n const res = sectors.where({ id })[0];\n !res && opts.warn && this._logNoSector(id);\n return res;\n },\n\n /**\n * Remove a sector by id\n * @param {string} id Sector id\n * @return {Sector} Removed sector\n * @example\n * const removed = styleManager.removeSector('mySector');\n */\n removeSector(id) {\n return this.getSectors().remove(this.getSector(id, { warn: 1 }));\n },\n\n /**\n * Get all sectors\n * @return {Sectors} Collection of sectors\n * */\n getSectors() {\n return sectors;\n },\n\n /**\n * Add property to the sector identified by id\n * @param {string} sectorId Sector id\n * @param {Object} property Property object\n * @param {string} [property.name=''] Name of the property\n * @param {string} [property.property=''] CSS property, eg. `min-height`\n * @param {string} [property.type=''] Type of the property: integer | radio | select | color | file | composite | stack\n * @param {Array} [property.units=[]] Unit of measure available, eg. ['px','%','em']. Only for integer type\n * @param {string} [property.unit=''] Default selected unit from `units`. Only for integer type\n * @param {number} [property.min=null] Min possible value. Only for integer type\n * @param {number} [property.max=null] Max possible value. Only for integer type\n * @param {string} [property.defaults=''] Default value\n * @param {string} [property.info=''] Some description\n * @param {string} [property.icon=''] Class name. If exists no text will be displayed\n * @param {Boolean} [property.preview=false] Show layers preview. Only for stack type\n * @param {string} [property.functionName=''] Indicates if value need to be wrapped in some function, for istance `transform: rotate(90deg)`\n * @param {Array} [property.properties=[]] Nested properties for composite and stack type\n * @param {Array} [property.layers=[]] Layers for stack properties\n * @param {Array} [property.list=[]] List of possible options for radio and select types\n * @param {Object} [options={}] Options\n * @return {Property|null} Added Property or `null` in case sector doesn't exist\n * @example\n * var property = styleManager.addProperty('mySector',{\n * name: 'Minimum height',\n * property: 'min-height',\n * type: 'select',\n * defaults: '100px',\n * list: [{\n * value: '100px',\n * name: '100',\n * },{\n * value: '200px',\n * name: '200',\n * }],\n * }, { at: 0 });\n * // With `at: 0` we place the new property at the beginning of the collection\n */\n addProperty(sectorId, property, opts = {}) {\n const sector = this.getSector(sectorId, { warn: 1 });\n let prop = null;\n if (sector) prop = sector.get('properties').add(property, opts);\n\n return prop;\n },\n\n /**\n * Get property by its CSS name and sector id\n * @param {string} sectorId Sector id\n * @param {string} name CSS property name (or id), eg. 'min-height'\n * @return {Property|null}\n * @example\n * var property = styleManager.getProperty('mySector','min-height');\n */\n getProperty(sectorId, name) {\n const sector = this.getSector(sectorId, { warn: 1 });\n let prop;\n\n if (sector) {\n prop = sector\n .get('properties')\n .filter(\n prop => prop.get('property') === name || prop.get('id') === name\n )[0];\n }\n\n return prop || null;\n },\n\n /**\n * Remove a property from the sector\n * @param {string} sectorId Sector id\n * @param {string} name CSS property name, eg. 'min-height'\n * @return {Property} Removed property\n * @example\n * const property = styleManager.removeProperty('mySector', 'min-height');\n */\n removeProperty(sectorId, name) {\n const props = this.getProperties(sectorId);\n return props && props.remove(this.getProperty(sectorId, name));\n },\n\n /**\n * Get properties of the sector\n * @param {string} sectorId Sector id\n * @return {Properties} Collection of properties\n * @example\n * var properties = styleManager.getProperties('mySector');\n */\n getProperties(sectorId) {\n let props = null;\n const sector = this.getSector(sectorId, { warn: 1 });\n if (sector) props = sector.get('properties');\n\n return props;\n },\n\n /**\n * Get what to style inside Style Manager. If you select the component\n * without classes the entity is the Component itself and all changes will\n * go inside its 'style' property. Otherwise, if the selected component has\n * one or more classes, the function will return the corresponding CSS Rule\n * @param {Model} model\n * @return {Model}\n */\n getModelToStyle(model, options = {}) {\n const em = c.em;\n const { skipAdd } = options;\n const classes = model.get('classes');\n const id = model.getId();\n\n if (em) {\n const config = em.getConfig();\n const um = em.get('UndoManager');\n const cssC = em.get('CssComposer');\n const sm = em.get('SelectorManager');\n const smConf = sm ? sm.getConfig() : {};\n const state = !config.devicePreviewMode ? em.get('state') : '';\n const valid = classes.getStyleable();\n const hasClasses = valid.length;\n const useClasses = !smConf.componentFirst || options.useClasses;\n const addOpts = { noCount: 1 };\n const opts = { state, addOpts };\n let rule;\n\n // I stop undo manager here as after adding the CSSRule (generally after\n // selecting the component) and calling undo() it will remove the rule from\n // the collection, therefore updating it in style manager will not affect it\n // #268\n um.stop();\n\n if (hasClasses && useClasses) {\n const deviceW = em.getCurrentMedia();\n rule = cssC.get(valid, state, deviceW);\n\n if (!rule && !skipAdd) {\n rule = cssC.add(valid, state, deviceW, {}, addOpts);\n }\n } else if (config.avoidInlineStyle) {\n rule = cssC.getIdRule(id, opts);\n !rule && !skipAdd && (rule = cssC.setIdRule(id, {}, opts));\n if (model.is('wrapper')) rule.set('wrapper', 1);\n }\n\n rule && (model = rule);\n um.start();\n }\n\n return model;\n },\n\n /**\n * Add new property 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 *@example\n * styleManager.addType('my-custom-prop', {\n * create({ props, change }) {\n * const el = document.createElement('div');\n * el.innerHTML = ' ';\n * const inputEl = el.querySelector('.my-input');\n * inputEl.addEventListener('change', event => change({ event })); // change will trigger the emit\n * inputEl.addEventListener('input', event => change({ event, complete: false }));\n * return el;\n * },\n * emit({ props, updateStyle }, { event, complete }) {\n * const { value } = event.target;\n * const valueRes = value + 'px';\n * // Pass a string value for the exact CSS property or an object containing multiple properties\n * // eg. updateStyle({ [props.property]: valueRes, color: 'red' });\n * updateStyle(valueRes, { complete });\n * },\n * update({ value, el }) {\n * el.querySelector('.my-input').value = parseInt(value, 10);\n * },\n * destroy() {\n * // In order to prevent memory leaks, use this method to clean, eventually, created instances, global event listeners, etc.\n * }\n *})\n */\n addType(id, definition) {\n properties.addType(id, definition);\n },\n\n /**\n * Get type\n * @param {string} id Type ID\n * @return {Object} Type definition\n */\n getType(id) {\n return properties.getType(id);\n },\n\n /**\n * Get all types\n * @return {Array}\n */\n getTypes() {\n return properties.getTypes();\n },\n\n /**\n * Create new property from type\n * @param {string} id Type ID\n * @param {Object} [options={}] Options\n * @param {Object} [options.model={}] Custom model object\n * @param {Object} [options.view={}] Custom view object\n * @return {PropertyView}\n * @example\n * const propView = styleManager.createType('integer', {\n * model: {units: ['px', 'rem']}\n * });\n * propView.render();\n * propView.model.on('change:value', ...);\n * someContainer.appendChild(propView.el);\n */\n createType(id, { model = {}, view = {} } = {}) {\n const type = this.getType(id);\n\n if (type) {\n return new type.view({\n model: new type.model(model),\n config: c,\n ...view\n });\n }\n },\n\n /**\n * Select different target for the Style Manager.\n * It could be a Component, CSSRule, or a string of any CSS selector\n * @param {Component|CSSRule|String} target\n * @return {Styleable} A Component or CSSRule\n */\n setTarget(target, opts) {\n return SectView.setTarget(target, opts);\n },\n\n getEmitter() {\n return SectView.propTarget;\n },\n\n /**\n * Render sectors and properties\n * @return {HTMLElement}\n * @private\n * */\n render() {\n return SectView.render().el;\n },\n\n _logNoSector(sectorId) {\n const { em } = this;\n em && em.logWarning(`'${sectorId}' sector not found`);\n },\n\n destroy() {\n [properties, sectors].forEach(coll => {\n coll.reset();\n coll.stopListening();\n });\n SectView.remove();\n [c, properties, sectors, SectView].forEach(i => (i = {}));\n this.em = {};\n }\n };\n};\n","export default {\n // Style prefix\n stylePrefix: 'cm-',\n\n inlineCss: false\n};\n","import Backbone from 'backbone';\n\nexport default Backbone.Model.extend({\n build(model, opts = {}) {\n const models = model.components();\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 if (opts.exportWrapper) {\n return model.toHTML({\n ...htmlOpts,\n ...(opts.wrapperIsBody && { tag: 'body' })\n });\n }\n\n return this.buildModels(models, htmlOpts);\n },\n\n buildModels(models, opts = {}) {\n let code = '';\n models.forEach(mod => (code += mod.toHTML(opts)));\n return code;\n }\n});\n","import { each } from 'underscore';\nimport Backbone from 'backbone';\n\nexport default Backbone.Model.extend({\n /** @inheritdoc */\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 Backbone.Model) {\n json[attr] = this.build(obj);\n } else if (obj instanceof Backbone.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 { extend } from 'underscore';\nimport Backbone from 'backbone';\n\nexport default Backbone.Model.extend({\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.props) {\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(){${mapType.code}}.bind(items[i]))();\n }`;\n }\n }\n\n return code;\n }\n});\n","import { bindAll } from 'underscore';\nimport Backbone from 'backbone';\nimport CodeMirror from 'codemirror/lib/codemirror';\nimport 'codemirror/mode/htmlmixed/htmlmixed';\nimport 'codemirror/mode/css/css';\nimport 'codemirror-formatting';\n\nexport default Backbone.Model.extend({\n CodeMirror,\n\n defaults: {\n input: '',\n label: '',\n codeName: '',\n theme: 'hopscotch',\n readOnly: true,\n lineNumbers: true\n },\n\n /** @inheritdoc */\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","import { template } from 'underscore';\nimport Backbone from 'backbone';\n\nexport default Backbone.View.extend({\n template: template(`\n editor\" id=\"<%= pfx %><%= codeName %>\">\n \t
title\"><%= label %>
\n \t
code\">
\n
`),\n\n initialize(o) {\n this.config = o.config || {};\n this.pfx = this.config.stylePrefix;\n },\n\n render() {\n var obj = this.model.toJSON();\n obj.pfx = this.pfx;\n this.$el.html(this.template(obj));\n this.$el.attr('class', this.pfx + 'editor-c');\n this.$el.find('#' + this.pfx + 'code').append(this.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","export default {\n devices: []\n};\n","import Backbone from 'backbone';\n\nexport default Backbone.Model.extend({\n idAttribute: 'name',\n\n defaults: {\n name: '',\n\n // Width to set for the editor iframe\n width: null,\n\n // Height to set for the editor iframe\n height: '',\n\n // The width which will be used in media queries,\n // If empty the width will be used\n widthMedia: null,\n\n // Setup the order of media queries\n priority: null\n },\n\n initialize() {\n this.get('widthMedia') === null &&\n this.set('widthMedia', this.get('width'));\n this.get('width') === null && this.set('width', this.get('widthMedia'));\n !this.get('priority') &&\n 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","import Backbone from 'backbone';\nimport Device from './Device';\n\nexport default Backbone.Collection.extend({\n model: Device,\n\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","import { template } from 'underscore';\nimport Backbone from 'backbone';\n\nexport default Backbone.View.extend({\n template: template(`\n device-label\"><%= deviceLabel %>
\n field <%= ppfx %>select\">\n
input-holder\">\n devices\"> \n \n
sel-arrow\">\n
d-s-arrow\">
\n
\n
\n add-trasp\">+ `),\n\n events: {\n change: 'updateDevice'\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('name') : '';\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 += `${label} `;\n });\n\n return result;\n },\n\n render() {\n const { em, ppfx, $el, el } = this;\n $el.html(\n this.template({\n ppfx,\n deviceLabel: em && em.t && em.t('deviceManager.device')\n })\n );\n this.devicesEl = $el.find(`.${ppfx}devices`);\n this.devicesEl.append(this.getOptions());\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.DeviceManager;\n * ```\n *\n * * [add](#add)\n * * [get](#get)\n * * [getAll](#getAll)\n *\n * @module DeviceManager\n */\nimport defaults from './config/config';\nimport Devices from './model/Devices';\nimport DevicesView from './view/DevicesView';\n\nexport default () => {\n var c = {};\n var devices, view;\n\n return {\n /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'DeviceManager',\n\n /**\n * Initialize module. Automatically called with a new instance of the editor\n * @param {Object} config Configurations\n * @param {Array} [config.devices=[]] Default devices\n * @example\n * ...\n * {\n * devices: [\n * {name: 'Desktop', width: ''}\n * {name: 'Tablet', width: '991px'}\n * ],\n * }\n * ...\n * @return {this}\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 devices = new Devices();\n (c.devices || []).forEach(dv => this.add(dv.id || dv.name, dv.width, dv));\n view = new DevicesView({\n collection: devices,\n config: c\n });\n return this;\n },\n\n /**\n * Add new device to the collection. URLs are supposed to be unique\n * @param {String} id Device id\n * @param {String} width Width of the device\n * @param {Object} [opts] Custom options\n * @returns {Device} Added device\n * @example\n * deviceManager.add('tablet', '900px');\n * deviceManager.add('tablet2', '900px', {\n * height: '300px',\n * // At first, GrapesJS tries to localize the name by device id.\n * // In case is not found, the `name` property is used (or `id` if name is missing)\n * name: 'Tablet 2',\n * widthMedia: '810px', // the width that will be used for the CSS media\n * });\n */\n add(id, width, opts = {}) {\n const obj = {\n ...opts,\n id,\n name: opts.name || id,\n width: width\n };\n return devices.add(obj);\n },\n\n /**\n * Return device by name\n * @param {string} name Name of the device\n * @example\n * var device = deviceManager.get('Tablet');\n * console.log(JSON.stringify(device));\n * // {name: 'Tablet', width: '900px'}\n */\n get(name) {\n return devices.get(name);\n },\n\n /**\n * Return all devices\n * @return {Collection}\n * @example\n * var devices = deviceManager.getAll();\n * console.log(JSON.stringify(devices));\n * // [{name: 'Desktop', width: ''}, ...]\n */\n getAll() {\n return devices;\n },\n\n /**\n * Render devices\n * @return {string} HTML string\n * @private\n */\n render() {\n return view.render().el;\n },\n\n destroy() {\n devices.reset();\n devices.stopListening();\n view.remove();\n [devices, view].forEach(i => (i = null));\n c = {};\n }\n };\n};\n","export default {\n // Prefix identifier that will be used inside storing and loading\n id: 'gjs-',\n\n // Enable/Disable autosaving\n autosave: 1,\n\n // Indicates if load data inside editor after init\n autoload: 1,\n\n // Indicates which storage to use. Available: local | remote\n type: 'local',\n\n // If autosave enabled, indicates how many steps (general changes to structure)\n // need to be done before save. Useful with remoteStorage to reduce remote calls\n stepsBeforeSave: 1,\n\n //Enable/Disable components model (JSON format)\n storeComponents: 1,\n\n //Enable/Disable styles model (JSON format)\n storeStyles: 1,\n\n //Enable/Disable saving HTML template\n storeHtml: 1,\n\n //Enable/Disable saving CSS template\n storeCss: 1,\n\n // ONLY FOR LOCAL STORAGE\n // If enabled, checks if browser supports Local Storage\n checkLocal: 1,\n\n // ONLY FOR REMOTE STORAGE\n // Custom parameters to pass with the remote storage request, eg. csrf token\n params: {},\n\n // Custom headers for the remote storage request\n headers: {},\n\n // Endpoint where to save all stuff\n urlStore: '',\n\n // Endpoint where to fetch data\n urlLoad: '',\n\n //Callback before request\n beforeSend(jqXHR, settings) {},\n\n //Callback after request\n onComplete(jqXHR, status) {},\n\n // set contentType paramater of $.ajax\n // true: application/json; charset=utf-8'\n // false: 'x-www-form-urlencoded'\n contentTypeJson: true,\n\n credentials: 'include',\n\n // Pass custom options to fetch API (remote storage)\n // You can pass a simple object: { someOption: 'someValue' }\n // or a function wich returns and object to add:\n // currentOpts => {\n // return currentOpts.method === 'post' ? { method: 'patch' } : {};\n // }\n fetchOptions: ''\n};\n","import Backbone from 'backbone';\n\nexport default Backbone.Model.extend({\n defaults: {\n checkLocal: true\n },\n\n /**\n * @private\n */\n store(data, clb) {\n this.checkStorageEnvironment();\n\n for (var key in data) localStorage.setItem(key, data[key]);\n\n if (typeof clb == 'function') {\n clb();\n }\n },\n\n /**\n * @private\n */\n load(keys, clb) {\n this.checkStorageEnvironment();\n var result = {};\n\n for (var i = 0, len = keys.length; i < len; i++) {\n var value = localStorage.getItem(keys[i]);\n if (value) result[keys[i]] = value;\n }\n\n if (typeof clb == 'function') {\n clb(result);\n }\n\n return result;\n },\n\n /**\n * @private\n */\n remove(keys) {\n this.checkStorageEnvironment();\n\n for (var i = 0, len = keys.length; i < len; i++)\n localStorage.removeItem(keys[i]);\n },\n\n /**\n * Check storage environment\n * @private\n * */\n checkStorageEnvironment() {\n if (this.get('checkLocal') && !localStorage)\n console.warn(\"Your browser doesn't support localStorage\");\n }\n});\n","import Backbone from 'backbone';\nimport fetch from 'utils/fetch';\nimport { isUndefined, isFunction } from 'underscore';\n\nexport default Backbone.Model.extend({\n fetch,\n\n defaults: {\n urlStore: '',\n urlLoad: '',\n params: {},\n beforeSend() {},\n onComplete() {},\n contentTypeJson: false,\n credentials: 'include',\n fetchOptions: ''\n },\n\n /**\n * Triggered before the request is started\n * @private\n */\n onStart() {\n const em = this.get('em');\n const before = this.get('beforeSend');\n before && before();\n },\n\n /**\n * Triggered on request error\n * @param {Object} err Error\n * @param {Function} [clbErr] Error callback\n * @private\n */\n onError(err, clbErr) {\n if (clbErr) {\n clbErr(err);\n } else {\n const em = this.get('em');\n console.error(err);\n em && em.trigger('storage:error', err);\n }\n },\n\n /**\n * Triggered on request response\n * @param {string} text Response text\n * @private\n */\n onResponse(text, clb) {\n const em = this.get('em');\n const complete = this.get('onComplete');\n const typeJson = this.get('contentTypeJson');\n const parsable = text && typeof text === 'string';\n const res = typeJson && parsable ? JSON.parse(text) : text;\n complete && complete(res);\n clb && clb(res);\n em && em.trigger('storage:response', res);\n },\n\n store(data, clb, clbErr) {\n const body = {};\n\n for (let key in data) {\n body[key] = data[key];\n }\n\n this.request(this.get('urlStore'), { body }, clb, clbErr);\n },\n\n load(keys, clb, clbErr) {\n this.request(this.get('urlLoad'), { method: 'get' }, clb, clbErr);\n },\n\n /**\n * Execute remote request\n * @param {string} url Url\n * @param {Object} [opts={}] Options\n * @param {Function} [clb=null] Callback\n * @param {Function} [clbErr=null] Error callback\n * @private\n */\n request(url, opts = {}, clb = null, clbErr = null) {\n const typeJson = this.get('contentTypeJson');\n const headers = this.get('headers') || {};\n const params = this.get('params');\n const reqHead = 'X-Requested-With';\n const typeHead = 'Content-Type';\n const bodyObj = opts.body || {};\n let fetchOptions;\n let body;\n\n for (let param in params) {\n bodyObj[param] = params[param];\n }\n\n if (isUndefined(headers[reqHead])) {\n headers[reqHead] = 'XMLHttpRequest';\n }\n\n // With `fetch`, have to send FormData without any 'Content-Type'\n // https://stackoverflow.com/questions/39280438/fetch-missing-boundary-in-multipart-form-data-post\n\n if (isUndefined(headers[typeHead]) && typeJson) {\n headers[typeHead] = 'application/json; charset=utf-8';\n }\n\n if (typeJson) {\n body = JSON.stringify(bodyObj);\n } else {\n body = new FormData();\n\n for (let bodyKey in bodyObj) {\n body.append(bodyKey, bodyObj[bodyKey]);\n }\n }\n fetchOptions = {\n method: opts.method || 'post',\n credentials: this.get('credentials'),\n headers\n };\n\n // Body should only be included on POST method\n if (fetchOptions.method === 'post') {\n fetchOptions.body = body;\n }\n\n const fetchOpts = this.get('fetchOptions') || {};\n const addOpts = isFunction(fetchOpts)\n ? fetchOpts(fetchOptions)\n : fetchOptions;\n\n this.onStart();\n this.fetch(url, {\n ...fetchOptions,\n ...(addOpts || {})\n })\n .then(res =>\n ((res.status / 200) | 0) == 1\n ? res.text()\n : res.text().then(text => Promise.reject(text))\n )\n .then(text => this.onResponse(text, clb))\n .catch(err => this.onError(err, clbErr));\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/storage_manager/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * storageManager: {\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 storageManager = editor.StorageManager;\n * ```\n *\n * * [getConfig](#getconfig)\n * * [isAutosave](#isautosave)\n * * [setAutosave](#setautosave)\n * * [getStepsBeforeSave](#getstepsbeforesave)\n * * [setStepsBeforeSave](#setstepsbeforesave)\n * * [setStepsBeforeSave](#setstepsbeforesave)\n * * [getStorages](#getstorages)\n * * [getCurrent](#getcurrent)\n * * [getCurrentStorage](#getcurrentstorage)\n * * [setCurrent](#setcurrent)\n * * [add](#add)\n * * [get](#get)\n * * [store](#store)\n * * [load](#load)\n *\n * @module StorageManager\n */\n\nimport defaults from './config/config';\nimport LocalStorage from './model/LocalStorage';\nimport RemoteStorage from './model/RemoteStorage';\n\nconst eventStart = 'storage:start';\nconst eventEnd = 'storage:end';\nconst eventError = 'storage:error';\n\nexport default () => {\n var c = {};\n let em;\n var storages = {};\n var defaultStorages = {};\n\n return {\n /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'StorageManager',\n\n /**\n * Initialize module. Automatically called with a new instance of the editor\n * @param {Object} config Configurations\n * @param {string} [config.id='gjs-'] The prefix for the fields, useful to differentiate storing/loading\n * with multiple editors on the same page. For example, in local storage, the item of HTML will be saved like 'gjs-html'\n * @param {Boolean} [config.autosave=true] Indicates if autosave mode is enabled, works in conjunction with stepsBeforeSave\n * @param {number} [config.stepsBeforeSave=1] If autosave enabled, indicates how many steps/changes are necessary\n * before autosave is triggered\n * @param {string} [config.type='local'] Default storage type. Available: 'local' | 'remote' | ''(do not store)\n * @private\n * @example\n * ...\n * {\n * autosave: false,\n * type: 'remote',\n * }\n * ...\n */\n init(config = {}) {\n c = { ...defaults, ...config };\n em = c.em;\n if (c._disable) c.type = 0;\n defaultStorages.remote = new RemoteStorage(c);\n defaultStorages.local = new LocalStorage(c);\n c.currentStorage = c.type;\n this.loadDefaultProviders().setCurrent(c.type);\n return this;\n },\n\n /**\n * Get configuration object\n * @return {Object}\n * */\n getConfig() {\n return c;\n },\n\n /**\n * Checks if autosave is enabled\n * @return {Boolean}\n * */\n isAutosave() {\n return !!c.autosave;\n },\n\n /**\n * Set autosave value\n * @param {Boolean} v\n * @return {this}\n * */\n setAutosave(v) {\n c.autosave = !!v;\n return this;\n },\n\n /**\n * Returns number of steps required before trigger autosave\n * @return {number}\n * */\n getStepsBeforeSave() {\n return c.stepsBeforeSave;\n },\n\n /**\n * Set steps required before trigger autosave\n * @param {number} v\n * @return {this}\n * */\n setStepsBeforeSave(v) {\n c.stepsBeforeSave = v;\n return this;\n },\n\n /**\n * Add new storage\n * @param {string} id Storage ID\n * @param {Object} storage Storage wrapper\n * @param {Function} storage.load Load method\n * @param {Function} storage.store Store method\n * @return {this}\n * @example\n * storageManager.add('local2', {\n * load: function(keys, clb, clbErr) {\n * var res = {};\n * for (var i = 0, len = keys.length; i < len; i++){\n * var v = localStorage.getItem(keys[i]);\n * if(v) res[keys[i]] = v;\n * }\n * clb(res); // might be called inside some async method\n * // In case of errors...\n * // clbErr('Went something wrong');\n * },\n * store: function(data, clb, clbErr) {\n * for(var key in data)\n * localStorage.setItem(key, data[key]);\n * clb(); // might be called inside some async method\n * }\n * });\n * */\n add(id, storage) {\n storages[id] = storage;\n return this;\n },\n\n /**\n * Returns storage by id\n * @param {string} id Storage ID\n * @return {Object|null}\n * */\n get(id) {\n return storages[id] || null;\n },\n\n /**\n * Returns all storages\n * @return {Array}\n * */\n getStorages() {\n return storages;\n },\n\n /**\n * Returns current storage type\n * @return {string}\n * */\n getCurrent() {\n return c.currentStorage;\n },\n\n /**\n * Set current storage type\n * @param {string} id Storage ID\n * @return {this}\n * */\n setCurrent(id) {\n c.currentStorage = id;\n return this;\n },\n\n /**\n * Store key-value resources in the current storage\n * @param {Object} data Data in key-value format, eg. {item1: value1, item2: value2}\n * @param {Function} clb Callback function\n * @return {Object|null}\n * @example\n * storageManager.store({item1: value1, item2: value2});\n * */\n store(data, clb) {\n const st = this.get(this.getCurrent());\n const toStore = {};\n this.onStart('store', data);\n\n for (let key in data) {\n toStore[c.id + key] = data[key];\n }\n\n return st\n ? st.store(\n toStore,\n res => {\n clb && clb(res);\n this.onEnd('store', res);\n },\n err => {\n this.onError('store', err);\n }\n )\n : null;\n },\n\n /**\n * Load resource from the current storage by keys\n * @param {string|Array} keys Keys to load\n * @param {Function} clb Callback function\n * @example\n * storageManager.load(['item1', 'item2'], res => {\n * // res -> {item1: value1, item2: value2}\n * });\n * storageManager.load('item1', res => {\n * // res -> {item1: value1}\n * });\n * */\n load(keys, clb) {\n var st = this.get(this.getCurrent());\n var keysF = [];\n var result = {};\n\n if (typeof keys === 'string') keys = [keys];\n this.onStart('load', keys);\n\n for (var i = 0, len = keys.length; i < len; i++) {\n keysF.push(c.id + keys[i]);\n }\n\n if (st) {\n st.load(\n keysF,\n res => {\n // Restore keys name\n var reg = new RegExp('^' + c.id + '');\n for (var itemKey in res) {\n var itemKeyR = itemKey.replace(reg, '');\n result[itemKeyR] = res[itemKey];\n }\n\n clb && clb(result);\n this.onEnd('load', result);\n },\n err => {\n clb && clb(result);\n this.onError('load', err);\n }\n );\n } else {\n clb && clb(result);\n }\n },\n\n /**\n * Load default storages\n * @return {this}\n * @private\n * */\n loadDefaultProviders() {\n for (var id in defaultStorages) this.add(id, defaultStorages[id]);\n return this;\n },\n\n /**\n * Get current storage\n * @return {Storage}\n * */\n getCurrentStorage() {\n return this.get(this.getCurrent());\n },\n\n /**\n * On start callback\n * @private\n */\n onStart(ctx, data) {\n if (em) {\n em.trigger(eventStart);\n ctx && em.trigger(`${eventStart}:${ctx}`, data);\n }\n },\n\n /**\n * On end callback\n * @private\n */\n onEnd(ctx, data) {\n if (em) {\n em.trigger(eventEnd);\n ctx && em.trigger(`${eventEnd}:${ctx}`, data);\n }\n },\n\n /**\n * On error callback\n * @private\n */\n onError(ctx, data) {\n if (em) {\n em.trigger(eventError, data);\n ctx && em.trigger(`${eventError}:${ctx}`, data);\n this.onEnd(ctx, data);\n }\n },\n\n /**\n * Check if autoload is possible\n * @return {Boolean}\n * @private\n * */\n canAutoload() {\n const storage = this.getCurrentStorage();\n return storage && this.getConfig().autoload;\n },\n\n destroy() {\n [c, em, storages, defaultStorages].forEach(i => (i = {}));\n }\n };\n};\n","export default {\n textTags: ['br', 'b', 'i', 'u', 'a', 'ul', 'ol'],\n\n // Custom CSS parser\n parserCss: null,\n\n // Custom HTML parser\n parserHtml: null\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 // console.log('LAST PUSH', result[result.length - 1]);\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","import 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 /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'Parser',\n\n /**\n * Get config object\n * @return {Object}\n */\n getConfig() {\n return conf;\n },\n\n /**\n * Initialize module. Automatically called with a new instance of the editor\n * @param {Object} config Configurations\n * @param {Array} [config.blocks=[]] Default blocks\n * @return {this}\n * @example\n * ...\n * {\n * blocks: [\n * {id:'h1-block' label: 'Heading', content:'... '},\n * ...\n * ],\n * }\n * ...\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 * Parse HTML string and return valid model\n * @param {string} str HTML string\n * @return {Object}\n */\n parseHtml(str) {\n const { em, compTypes } = this;\n pHtml.compTypes = em ? em.get('DomComponents').getTypes() : compTypes;\n return pHtml.parse(str, pCss);\n },\n\n /**\n * Parse CSS string and return valid model\n * @param {string} str CSS string\n * @return {Array}\n */\n parseCss(str) {\n return pCss.parse(str);\n },\n\n destroy() {\n [conf, pHtml, pCss].forEach(i => (i = {}));\n ['em', 'parserCss', 'parserHtml'].forEach(i => (this[i] = {}));\n }\n };\n};\n","export default {\n // Style prefix\n stylePrefix: 'clm-',\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 // Default selectors\n selectors: [],\n\n // States\n states: [{ name: 'hover' }, { name: 'active' }, { name: 'nth-of-type(2n)' }],\n\n // Custom selector name escaping strategy, eg.\n // name => name.replace(' ', '_')\n escapeName: 0,\n\n // Custom selected name strategy (the string you see after 'Selected')\n // ({ result, state, target }) => {\n // return `${result} - ID: ${target.getId()}`\n // }\n selectedName: 0,\n\n // Icon used to add new selector\n iconAdd:\n ' ',\n\n // Icon used to sync styles\n iconSync:\n ' ',\n\n // Icon to show when the selector is enabled\n iconTagOn:\n ' ',\n\n // Icon to show when the selector is disabled\n iconTagOff:\n ' ',\n\n // Icon used to remove the selector\n iconTagRemove:\n ' ',\n\n /**\n * Custom render function for the Select Manager\n * @example\n * render: ({ el, labelHead, labelStates, labelInfo, }) => {\n * // You can use the default `el` to extend/edit the current\n * // DOM element of the Selector Manager\n * const someEl = document.createElement('div');\n * // ...\n * el.appendChild(someEl);\n * // no need to return anything from the function\n *\n * // Create and return a new DOM element\n * const newEl = document.createElement('div');\n * // ...\n * return newEl;\n *\n * // Return an HTML string for a completely different layout.\n * // Use `data-*` attributes to make the module recognize some elements:\n * // `data-states` - Where to append state `` elements (or just write yours)\n * // `data-selectors` - Where to append selectors\n * // `data-input` - Input element which is used to add new selectors\n * // `data-add` - Element which triggers the add of a new selector on click\n * // `data-sync-style` - Element which triggers the sync of styles (visible with `componentFirst` enabled)\n * // `data-selected` - Where to print selected selectors\n * return `\n * \n * \n *
\n *
\n *
Add \n *
Sync \n *
\n * \n *
${labelInfo}
\n *
\n *
\n * `;\n * }\n */\n render: 0,\n\n // When you select a component in the canvas the selected Model (Component or CSS Rule)\n // is passed to the StyleManager which will be then able to be styled, these are the cases:\n // * Selected component doesn't have any classes: Component will be passed\n // * Selected component has at least one class: The CSS Rule will be passed\n //\n // With this option enabled, also in the second case, the Component will be passed.\n // This method allows to avoid styling classes directly and make, for example, some\n // unintended changes below the visible canvas area (when components share same classes)\n componentFirst: 0\n};\n","import Backbone from 'backbone';\n\nconst inputProp = 'contentEditable';\n\nexport default Backbone.View.extend({\n template() {\n const { pfx, model, config } = this;\n const label = model.get('label') || '';\n\n return `\n \n ${label} \n \n ${config.iconTagRemove}\n \n `;\n },\n\n events: {\n 'click [data-tag-remove]': 'removeTag',\n 'click [data-tag-status]': 'changeStatus',\n 'dblclick [data-tag-name]': 'startEditTag',\n 'focusout [data-tag-name]': 'endEditTag'\n },\n\n initialize(o) {\n const config = o.config || {};\n this.config = config;\n this.coll = o.coll || null;\n this.pfx = config.stylePrefix || '';\n this.ppfx = config.pStylePrefix || '';\n this.em = config.em;\n this.listenTo(this.model, 'change:active', this.updateStatus);\n },\n\n /**\n * Returns the element which containes the anme of the tag\n * @return {HTMLElement}\n */\n getInputEl() {\n if (!this.inputEl) {\n this.inputEl = this.el.querySelector('[data-tag-name]');\n }\n\n return this.inputEl;\n },\n\n /**\n * Start editing tag\n * @private\n */\n startEditTag() {\n const { em } = this;\n const inputEl = this.getInputEl();\n inputEl[inputProp] = true;\n inputEl.focus();\n em && em.setEditing(1);\n },\n\n /**\n * End editing tag. If the class typed already exists the\n * old one will be restored otherwise will be changed\n * @private\n */\n endEditTag() {\n const model = this.model;\n const inputEl = this.getInputEl();\n const label = inputEl.textContent;\n const em = this.em;\n const sm = em && em.get('SelectorManager');\n inputEl[inputProp] = false;\n em && em.setEditing(0);\n\n if (sm) {\n const name = sm.escapeName(label);\n\n if (sm.get(name)) {\n inputEl.innerText = model.get('label');\n } else {\n model.set({ name, label });\n }\n }\n },\n\n /**\n * Update status of the tag\n * @private\n */\n changeStatus() {\n const { model } = this;\n model.set('active', !model.get('active'));\n },\n\n /**\n * Remove tag from the selected component\n * @param {Object} e\n * @private\n */\n removeTag() {\n const { em, model } = this;\n const targets = em && em.getSelectedAll();\n targets.forEach(sel => {\n !model.get('protected') && sel && sel.getSelectors().remove(model);\n });\n },\n\n /**\n * Update status of the checkbox\n * @private\n */\n updateStatus() {\n const { model, $el, config } = this;\n const { iconTagOn, iconTagOff } = config;\n const $chk = $el.find('[data-tag-status]');\n\n if (model.get('active')) {\n $chk.html(iconTagOn);\n $el.removeClass('opac50');\n } else {\n $chk.html(iconTagOff);\n $el.addClass('opac50');\n }\n },\n\n render() {\n const pfx = this.pfx;\n const ppfx = this.ppfx;\n this.$el.html(this.template());\n this.$el.attr('class', `${pfx}tag ${ppfx}three-bg`);\n this.updateStatus();\n return this;\n }\n});\n","import { isEmpty, isArray, isString, debounce } from 'underscore';\nimport Backbone from 'backbone';\nimport ClassTagView from './ClassTagView';\n\nexport default Backbone.View.extend({\n template({\n labelInfo,\n labelStates,\n labelHead,\n iconSync,\n iconAdd,\n pfx,\n ppfx\n }) {\n return `\n \n \n `;\n },\n\n events: {\n 'change [data-states]': 'stateChanged',\n 'click [data-add]': 'startNewTag',\n 'focusout [data-input]': 'endNewTag',\n 'keyup [data-input]': 'onInputKeyUp',\n 'click [data-sync-style]': 'syncStyle'\n },\n\n initialize(o = {}) {\n this.config = o.config || {};\n this.pfx = this.config.stylePrefix || '';\n this.ppfx = this.config.pStylePrefix || '';\n this.className = this.pfx + 'tags';\n this.stateInputId = this.pfx + 'states';\n this.stateInputC = this.pfx + 'input-c';\n this.states = this.config.states || [];\n const { em } = this.config;\n const coll = this.collection;\n this.target = this.config.em;\n this.em = em;\n const emitter = this.getStyleEmitter();\n const toList = 'component:toggled component:update:classes';\n const toListCls = 'component:update:classes change:state';\n this.listenTo(em, toList, this.componentChanged);\n this.listenTo(emitter, 'update', this.componentChanged);\n this.listenTo(em, toListCls, this.__handleStateChange);\n this.listenTo(em, 'styleable:change change:device', this.checkSync); // component:styleUpdate\n this.listenTo(coll, 'add', this.addNew);\n this.listenTo(coll, 'reset', this.renderClasses);\n this.listenTo(coll, 'remove', this.tagRemoved);\n this.delegateEvents();\n },\n\n syncStyle() {\n const { em } = this;\n const target = this.getTarget();\n const cssC = em.get('CssComposer');\n const opts = { noDisabled: 1 };\n const selectors = this.getCommonSelectors({ opts });\n const state = em.get('state');\n const mediaText = em.getCurrentMedia();\n const ruleComponents = [];\n const rule =\n cssC.get(selectors, state, mediaText) ||\n cssC.add(selectors, state, mediaText);\n let style;\n\n this.getTargets().forEach(target => {\n const ruleComponent = cssC.getIdRule(target.getId(), {\n state,\n mediaText\n });\n style = ruleComponent.getStyle();\n ruleComponent.setStyle({});\n ruleComponents.push(ruleComponent);\n });\n\n style && rule.addStyle(style);\n em.trigger('component:toggled');\n em.trigger('component:sync-style', {\n component: target,\n selectors,\n mediaText,\n rule,\n ruleComponents,\n state\n });\n },\n\n getStyleEmitter() {\n const { em } = this;\n const sm = em && em.get('StyleManager');\n const emitter = sm && sm.getEmitter();\n return emitter || {};\n },\n\n /**\n * Triggered when a tag is removed from collection\n * @param {Object} model Removed model\n * @private\n */\n tagRemoved(model) {\n this.updateStateVis();\n },\n\n /**\n * Create select input with states\n * @return {string} String of options\n * @private\n */\n getStateOptions() {\n const { states, em } = this;\n let result = [];\n\n states.forEach(state =>\n result.push(\n ` ${em.t(\n `selectorManager.states.${state.name}`\n ) ||\n state.label ||\n state.name} `\n )\n );\n\n return result.join('');\n },\n\n /**\n * Add new model\n * @param {Object} model\n * @private\n */\n addNew(model) {\n this.addToClasses(model);\n },\n\n /**\n * Start tag creation\n * @param {Object} e\n * @private\n */\n startNewTag() {\n this.$addBtn.css({ display: 'none' });\n this.$input.show().focus();\n },\n\n /**\n * End tag creation\n * @param {Object} e\n * @private\n */\n endNewTag() {\n this.$addBtn.css({ display: '' });\n this.$input.hide().val('');\n },\n\n /**\n * Checks what to do on keyup event\n * @param {Object} e\n * @private\n */\n onInputKeyUp(e) {\n if (e.keyCode === 13) this.addNewTag(this.$input.val());\n else if (e.keyCode === 27) this.endNewTag();\n },\n\n checkStates() {\n const state = this.em.getState();\n const statesEl = this.getStates();\n statesEl && statesEl.val(state);\n },\n\n /**\n * Triggered when component is changed\n * @param {Object} e\n * @private\n */\n componentChanged: debounce(function({ targets } = {}) {\n this.updateSelection(targets);\n }),\n\n updateSelection(targets) {\n let trgs = targets || this.getTargets();\n trgs = isArray(trgs) ? trgs : [trgs];\n let selectors = [];\n\n if (trgs && trgs.length) {\n selectors = this.getCommonSelectors({ targets: trgs });\n this.checkSync({ validSelectors: selectors });\n }\n\n this.collection.reset(selectors);\n this.updateStateVis(trgs);\n\n return selectors;\n },\n\n getCommonSelectors({ targets, opts = {} } = {}) {\n const trgs = targets || this.getTargets();\n const selectors = trgs\n .map(tr => tr.getSelectors && tr.getSelectors().getValid(opts))\n .filter(i => i);\n return this._commonSelectors(...selectors);\n },\n\n _commonSelectors(...args) {\n if (!args.length) return [];\n if (args.length === 1) return args[0];\n if (args.length === 2)\n return args[0].filter(item => args[1].indexOf(item) >= 0);\n\n return args\n .slice(1)\n .reduce((acc, item) => this._commonSelectors(acc, item), args[0]);\n },\n\n checkSync: debounce(function() {\n const { $btnSyncEl, config, collection } = this;\n const target = this.getTarget();\n let hasStyle;\n\n if (target && config.componentFirst && collection.length) {\n const style = target.getStyle();\n hasStyle = !isEmpty(style);\n }\n\n $btnSyncEl && $btnSyncEl[hasStyle ? 'show' : 'hide']();\n }),\n\n getTarget() {\n return this.target.getSelected();\n },\n\n getTargets() {\n return this.target.getSelectedAll();\n },\n\n /**\n * Update states visibility. Hides states in case there is no tags\n * inside collection\n * @private\n */\n updateStateVis(target) {\n const em = this.em;\n const avoidInline = em && em.getConfig('avoidInlineStyle');\n const display = this.collection.length || avoidInline ? '' : 'none';\n this.getStatesC().css('display', display);\n this.updateSelector(target);\n },\n\n __handleStateChange() {\n this.updateSelector(this.getTargets());\n },\n\n /**\n * Update selector helper\n * @return {this}\n * @private\n */\n updateSelector(targets) {\n const elSel = this.el.querySelector('[data-selected]');\n const result = [];\n let trgs = targets || this.getTargets();\n trgs = isArray(trgs) ? trgs : [trgs];\n\n trgs.forEach(target => result.push(this.__getName(target)));\n elSel && (elSel.innerHTML = result.join(', '));\n this.checkStates();\n },\n\n __getName(target) {\n const { pfx, config, em } = this;\n const { selectedName, componentFirst } = config;\n let result;\n\n if (isString(target)) {\n result = `${target} `;\n } else {\n const sel = target && target.get && target.getSelectors();\n if (!sel) return;\n const selectors = sel.getStyleable();\n const state = em.get('state');\n const idRes = target.getId\n ? `${target.getName()} #${target.getId()} `\n : '';\n result = this.collection.getFullString(selectors);\n result = result\n ? `${result} `\n : target.get('selectorsAdd') || idRes;\n result = componentFirst && idRes ? idRes : result;\n result += state ? `:${state} ` : '';\n result = selectedName ? selectedName({ result, state, target }) : result;\n }\n\n return result && `${result} `;\n },\n\n /**\n * Triggered when the select with states is changed\n * @param {Object} e\n * @private\n */\n stateChanged(ev) {\n const { em } = this;\n const { value } = ev.target;\n em.set('state', value);\n },\n\n /**\n * Add new tag to collection, if possible, and to the component\n * @param {Object} e\n * @private\n */\n addNewTag(label) {\n const { em } = this;\n\n if (!label.trim()) return;\n\n if (em) {\n const sm = em.get('SelectorManager');\n const model = sm.add({ label });\n\n this.getTargets().forEach(target => {\n target.getSelectors().add(model);\n this.collection.add(model);\n this.updateStateVis();\n });\n }\n\n this.endNewTag();\n },\n\n /**\n * Add new object to collection\n * @param {Object} model Model\n * @param {Object} fragmentEl Fragment collection\n * @return {Object} Object created\n * @private\n * */\n addToClasses(model, fragmentEl = null) {\n const fragment = fragmentEl;\n const classes = this.getClasses();\n const rendered = new ClassTagView({\n model,\n config: this.config,\n coll: this.collection\n }).render().el;\n\n fragment ? fragment.appendChild(rendered) : classes.append(rendered);\n\n return rendered;\n },\n\n /**\n * Render the collection of classes\n * @private\n */\n renderClasses() {\n const frag = document.createDocumentFragment();\n const classes = this.getClasses();\n classes.empty();\n this.collection.each(model => this.addToClasses(model, frag));\n classes.append(frag);\n },\n\n /**\n * Return classes element\n * @return {HTMLElement}\n * @private\n */\n getClasses() {\n return this.$el.find('[data-selectors]');\n },\n\n /**\n * Return states element\n * @return {HTMLElement}\n * @private\n */\n getStates() {\n if (!this.$states) {\n const el = this.$el.find('[data-states]');\n this.$states = el[0] && el;\n }\n return this.$states;\n },\n\n /**\n * Return states container element\n * @return {HTMLElement}\n * @private\n */\n getStatesC() {\n if (!this.$statesC) this.$statesC = this.$el.find('#' + this.stateInputC);\n return this.$statesC;\n },\n\n render() {\n const { em, pfx, ppfx, config, $el, el } = this;\n const { render, iconSync, iconAdd } = config;\n const tmpOpts = {\n iconSync,\n iconAdd,\n labelHead: em.t('selectorManager.label'),\n labelStates: em.t('selectorManager.emptyState'),\n labelInfo: em.t('selectorManager.selected'),\n ppfx,\n pfx,\n el\n };\n $el.html(this.template(tmpOpts));\n const renderRes = render && render(tmpOpts);\n renderRes && renderRes !== el && $el.empty().append(renderRes);\n this.$input = $el.find('[data-input]');\n this.$addBtn = $el.find('[data-add]');\n this.$classes = $el.find('#' + pfx + 'tags-c');\n this.$btnSyncEl = $el.find('[data-sync-style]');\n this.$input.hide();\n const statesEl = this.getStates();\n statesEl && statesEl.append(this.getStateOptions());\n this.renderClasses();\n $el.attr('class', `${this.className} ${ppfx}one-bg ${ppfx}two-color`);\n return this;\n }\n});\n","/**\n * Selectors in GrapesJS are used in CSS Composer inside Rules and in Components as classes. To illustrate this concept let's take\n * a look at this code:\n *\n * ```css\n * span > #send-btn.btn{\n * ...\n * }\n * ```\n * ```html\n * \n * \n * \n * ```\n *\n * In this scenario we get:\n * * span -> selector of type `tag`\n * * send-btn -> selector of type `id`\n * * btn -> selector of type `class`\n *\n * So, for example, being `btn` the same class entity it'll be easier to refactor and track things.\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/selector_manager/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * selectorManager: {\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 selectorManager = editor.SelectorManager;\n * ```\n *\n * * [getConfig](#getconfig)\n * * [add](#add)\n * * [addClass](#addclass)\n * * [get](#get)\n * * [getAll](#getall)\n * * [setState](#setstate)\n * * [getState](#getstate)\n *\n * @module SelectorManager\n */\n\nimport { isString, isElement, isObject, isArray } from 'underscore';\nimport { isComponent, isRule } from 'utils/mixins';\nimport defaults from './config/config';\nimport Selector from './model/Selector';\nimport Selectors from './model/Selectors';\nimport ClassTagsView from './view/ClassTagsView';\n\nconst isId = str => isString(str) && str[0] == '#';\nconst isClass = str => isString(str) && str[0] == '.';\n\nexport default config => {\n var c = config || {};\n var selectors;\n\n return {\n Selector,\n\n Selectors,\n\n /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'SelectorManager',\n\n /**\n * Get configuration object\n * @return {Object}\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 * @return {this}\n * @private\n */\n init(conf = {}) {\n c = {\n ...defaults,\n ...conf\n };\n const em = c.em;\n const ppfx = c.pStylePrefix;\n this.em = em;\n\n if (ppfx) {\n c.stylePrefix = ppfx + c.stylePrefix;\n }\n\n this.selectorTags = new ClassTagsView({\n collection: new Selectors([], { em, config: c }),\n config: c\n });\n\n // Global selectors container\n selectors = new Selectors(c.selectors);\n selectors.on('add', model => em.trigger('selector:add', model));\n selectors.on('remove', model => em.trigger('selector:remove', model));\n selectors.on('change', model =>\n em.trigger(\n 'selector:update',\n model,\n model.previousAttributes(),\n model.changedAttributes()\n )\n );\n em.on('change:state', (m, value) => em.trigger('selector:state', value));\n\n return this;\n },\n\n postRender() {\n const elTo = this.getConfig().appendTo;\n\n if (elTo) {\n const el = isElement(elTo) ? elTo : document.querySelector(elTo);\n el.appendChild(this.render([]));\n }\n },\n\n select(value, opts = {}) {\n const targets = Array.isArray(value) ? value : [value];\n const toSelect = this.em.get('StyleManager').setTarget(targets, opts);\n const res = toSelect\n .filter(i => i)\n .map(sel =>\n isComponent(sel)\n ? sel\n : isRule(sel) && !sel.get('selectorsAdd')\n ? sel\n : sel.getSelectorsString()\n );\n this.selectorTags.componentChanged({ targets: res });\n return this;\n },\n\n /**\n * Change the selector state\n * @param {String} value State value\n * @returns {this}\n * @example\n * selectorManager.setState('hover');\n */\n setState(value) {\n this.em.setState(value);\n return this;\n },\n\n /**\n * Get the current selector state\n * @returns {String}\n */\n getState() {\n return this.em.getState();\n },\n\n addSelector(name, opt = {}) {\n let opts = { ...opt };\n\n if (isObject(name)) {\n opts = name;\n } else {\n opts.name = name;\n }\n\n if (isId(opts.name)) {\n opts.name = opts.name.substr(1);\n opts.type = Selector.TYPE_ID;\n } else if (isClass(opts.name)) {\n opts.name = opts.name.substr(1);\n }\n\n if (opts.label && !opts.name) {\n opts.name = this.escapeName(opts.label);\n }\n\n const cname = opts.name;\n const selector = cname\n ? this.get(cname, opts.type)\n : selectors.where(opts)[0];\n\n if (!selector) {\n return selectors.add(opts, { config: c });\n }\n\n return selector;\n },\n\n getSelector(name, type = Selector.TYPE_CLASS) {\n if (isId(name)) {\n name = name.substr(1);\n type = Selector.TYPE_ID;\n } else if (isClass(name)) {\n name = name.substr(1);\n }\n\n return selectors.where({ name, type })[0];\n },\n\n /**\n * Add a new selector to collection if it's not already exists. Class type is a default one\n * @param {String|Array} name Selector/s name\n * @param {Object} opts Selector options\n * @param {String} [opts.label=''] Label for the selector, if it's not provided the label will be the same as the name\n * @param {String} [opts.type=1] Type of the selector. At the moment, only 'class' (1) is available\n * @return {Model|Array}\n * @example\n * const selector = selectorManager.add('selectorName');\n * // Same as\n * const selector = selectorManager.add('selectorName', {\n * type: 1,\n * label: 'selectorName'\n * });\n * // Multiple selectors\n * const selectors = selectorManager.add(['.class1', '.class2', '#id1']);\n * */\n add(name, opts = {}) {\n if (isArray(name)) {\n return name.map(item => this.addSelector(item, opts));\n } else {\n return this.addSelector(name, opts);\n }\n },\n\n /**\n * Add class selectors\n * @param {Array|string} classes Array or string of classes\n * @return {Array} Array of added selectors\n * @example\n * sm.addClass('class1');\n * sm.addClass('class1 class2');\n * sm.addClass(['class1', 'class2']);\n * // -> [SelectorObject, ...]\n */\n addClass(classes) {\n const added = [];\n\n if (isString(classes)) {\n classes = classes.trim().split(' ');\n }\n\n classes.forEach(name => added.push(this.addSelector(name)));\n return added;\n },\n\n /**\n * Get the selector by its name\n * @param {String|Array} name Selector name\n * @param {String} type Selector type\n * @return {Model|Array}\n * @example\n * const selector = selectorManager.get('selectorName');\n * // or get an array\n * const selectors = selectorManager.get(['class1', 'class2']);\n * */\n get(name, type) {\n if (isArray(name)) {\n const result = [];\n const selectors = name\n .map(item => this.getSelector(item))\n .filter(item => item);\n selectors.forEach(\n item => result.indexOf(item) < 0 && result.push(item)\n );\n return result;\n } else {\n return this.getSelector(name, type);\n }\n },\n\n /**\n * Get all selectors\n * @return {Collection}\n * */\n getAll() {\n return selectors;\n },\n\n /**\n * Return escaped selector name\n * @param {String} name Selector name to escape\n * @returns {String} Escaped name\n */\n escapeName(name) {\n const { escapeName } = c;\n return escapeName ? escapeName(name) : Selector.escapeName(name);\n },\n\n /**\n * Render class selectors. If an array of selectors is provided a new instance of the collection will be rendered\n * @param {Array} selectors\n * @return {HTMLElement}\n * @private\n */\n render(selectors) {\n if (selectors) {\n this.selectorTags = new ClassTagsView({\n collection: new Selectors(selectors),\n config: c\n });\n return this.selectorTags.render().el;\n } else return this.selectorTags.render().el;\n },\n\n destroy() {\n selectors.reset();\n selectors.stopListening();\n this.selectorTags.remove();\n [c, selectors].forEach(i => (i = {}));\n this.em = {};\n this.selectorTags = {};\n }\n };\n};\n","export default {\n stylePrefix: 'mdl-',\n\n title: '',\n\n content: '',\n\n backdrop: true\n};\n","import Backbone from 'backbone';\n\nexport default Backbone.Model.extend({\n defaults: {\n title: '',\n content: '',\n open: false\n }\n});\n","import Backbone from 'backbone';\n\nexport default Backbone.View.extend({\n template({ pfx, ppfx, content, title }) {\n return `\n
`;\n },\n\n events: {\n click: 'onClick',\n 'click [data-close-modal]': 'hide'\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)\n 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() {\n if (!this.$title) this.$title = this.$el.find('.' + this.pfx + 'title');\n return 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 var title = this.getTitle();\n if (title) title.innerHTML = 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.set('open', 0);\n },\n\n /**\n * Show modal\n * @private\n * */\n show(opts = {}) {\n this.model.set('open', 1);\n this.updateAttr(opts.attributes);\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 * * [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 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 modal = new ModalView({\n model,\n config: c\n });\n\n return this;\n },\n\n postRender(view) {\n const el = view.model.getConfig().el || view.el;\n this.render().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 * @return {this}\n */\n open(opts = {}) {\n opts.title && this.setTitle(opts.title);\n opts.content && this.setContent(opts.content);\n modal.show(opts);\n return this;\n },\n\n /**\n * Close the modal window\n * @return {this}\n */\n close() {\n modal.hide();\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\n * @returns {this}\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\n * @returns {this}\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 * @return {Boolean}\n */\n isOpen() {\n return !!model.get('open');\n },\n\n /**\n * Set the title to the modal window\n * @param {string} title Title\n * @return {this}\n * @example\n * modal.setTitle('New title');\n */\n setTitle(title) {\n model.set('title', title);\n return this;\n },\n\n /**\n * Returns the title of the modal window\n * @return {string}\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 * @return {this}\n * @example\n * modal.setContent('Some HTML content
');\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 * @return {string}\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 return modal.render().$el;\n },\n\n destroy() {\n modal.remove();\n [c, model, modal].forEach(i => (i = {}));\n this.em = {};\n }\n };\n};\n","import Backbone from 'backbone';\nimport {\n isString,\n isFunction,\n isArray,\n result,\n each,\n bindAll\n} from 'underscore';\nimport {\n on,\n off,\n matches,\n getElement,\n getPointerEvent,\n isTextNode,\n getModel\n} from 'utils/mixins';\nconst $ = Backbone.$;\n\nexport default Backbone.View.extend({\n initialize(opt) {\n this.opt = opt || {};\n bindAll(\n this,\n 'startSort',\n 'onMove',\n 'endMove',\n 'rollback',\n 'updateOffset',\n 'moveDragHelper'\n );\n var o = opt || {};\n this.elT = 0;\n this.elL = 0;\n this.borderOffset = o.borderOffset || 10;\n\n var el = o.container;\n this.el = typeof el === 'string' ? document.querySelector(el) : el;\n this.$el = $(this.el);\n\n this.containerSel = o.containerSel || 'div';\n this.itemSel = o.itemSel || 'div';\n this.draggable = o.draggable || true;\n this.nested = o.nested || 0;\n this.pfx = o.pfx || '';\n this.ppfx = o.ppfx || '';\n this.freezeClass = o.freezeClass || this.pfx + 'freezed';\n this.onStart = o.onStart || '';\n this.onEndMove = o.onEndMove || '';\n this.direction = o.direction || 'v'; // v (vertical), h (horizontal), a (auto)\n this.onMoveClb = o.onMove || '';\n this.relative = o.relative || 0;\n this.ignoreViewChildren = o.ignoreViewChildren || 0;\n this.ignoreModels = o.ignoreModels || 0;\n this.plh = o.placer || '';\n // Frame offset\n this.wmargin = o.wmargin || 0;\n this.offTop = o.offsetTop || 0;\n this.offLeft = o.offsetLeft || 0;\n this.document = o.document || document;\n this.$document = $(this.document);\n this.dropContent = null;\n this.em = o.em || '';\n this.dragHelper = null;\n this.canvasRelative = o.canvasRelative || 0;\n this.selectOnEnd = !o.avoidSelectOnEnd;\n this.scale = o.scale;\n this.activeTextModel = null;\n\n if (this.em && this.em.on) {\n this.em.on('change:canvasOffset', this.updateOffset);\n this.updateOffset();\n }\n },\n\n getScale() {\n return result(this, scale) || 1;\n },\n\n getContainerEl(elem) {\n if (elem) this.el = elem;\n\n if (!this.el) {\n var el = this.opt.container;\n this.el = typeof el === 'string' ? document.querySelector(el) : el;\n this.$el = $(this.el);\n }\n return this.el;\n },\n\n getDocuments(el) {\n const em = this.em;\n const elDoc = el\n ? el.ownerDocument\n : em && em.get('Canvas').getBody().ownerDocument;\n const docs = [document];\n elDoc && docs.push(elDoc);\n return docs;\n },\n\n /**\n * Triggered when the offset of the editro is changed\n */\n updateOffset() {\n const offset = this.em.get('canvasOffset') || {};\n this.offTop = offset.top;\n this.offLeft = offset.left;\n },\n\n /**\n * Set content to drop\n * @param {String|Object} content\n */\n setDropContent(content) {\n this.dropModel = null;\n this.dropContent = content;\n },\n\n updateTextViewCursorPosition(e) {\n const Canvas = this.em.get('Canvas');\n const targetDoc = Canvas.getDocument();\n let range = null;\n\n if (targetDoc.caretRangeFromPoint) {\n // Chrome\n const poiner = getPointerEvent(e);\n range = targetDoc.caretRangeFromPoint(poiner.clientX, poiner.clientY);\n } else if (e.rangeParent) {\n // Firefox\n range = targetDoc.createRange();\n range.setStart(e.rangeParent, e.rangeOffset);\n }\n\n const sel = Canvas.getWindow().getSelection();\n Canvas.getFrameEl().focus();\n sel.removeAllRanges();\n range && sel.addRange(range);\n },\n\n setContentEditable(model, mode) {\n if (model) {\n const el = model.getEl();\n if (el.contentEditable != mode) el.contentEditable = mode;\n }\n },\n\n /**\n * Toggle cursor while sorting\n * @param {Boolean} active\n */\n toggleSortCursor(active) {\n const { em } = this;\n const cv = em && em.get('Canvas');\n\n // Avoid updating body className as it causes a huge repaint\n // Noticeable with \"fast\" drag of blocks\n cv && (active ? cv.startAutoscroll() : cv.stopAutoscroll());\n },\n\n /**\n * Set drag helper\n * @param {HTMLElement} el\n * @param {Event} event\n */\n setDragHelper(el, event) {\n const ev = event || '';\n const clonedEl = el.cloneNode(1);\n const rect = el.getBoundingClientRect();\n const computed = getComputedStyle(el);\n let style = '';\n\n for (var i = 0; i < computed.length; i++) {\n const prop = computed[i];\n style += `${prop}:${computed.getPropertyValue(prop)};`;\n }\n\n document.body.appendChild(clonedEl);\n clonedEl.className += ` ${this.pfx}bdrag`;\n clonedEl.setAttribute('style', style);\n this.dragHelper = clonedEl;\n clonedEl.style.width = `${rect.width}px`;\n clonedEl.style.height = `${rect.height}px`;\n ev && this.moveDragHelper(ev);\n\n // Listen mouse move events\n if (this.em) {\n $(this.em.get('Canvas').getBody().ownerDocument)\n .off('mousemove', this.moveDragHelper)\n .on('mousemove', this.moveDragHelper);\n }\n $(document)\n .off('mousemove', this.moveDragHelper)\n .on('mousemove', this.moveDragHelper);\n },\n\n /**\n * Update the position of the helper\n * @param {Event} e\n */\n moveDragHelper(e) {\n const doc = e.target.ownerDocument;\n\n if (!this.dragHelper || !doc) {\n return;\n }\n\n let posY = e.pageY;\n let posX = e.pageX;\n let addTop = 0;\n let addLeft = 0;\n const window = doc.defaultView || doc.parentWindow;\n const frame = window.frameElement;\n const dragHelperStyle = this.dragHelper.style;\n\n // If frame is present that means mouse has moved over the editor's canvas,\n // which is rendered inside the iframe and the mouse move event comes from\n // the iframe, not the parent window. Mouse position relative to the frame's\n // parent window needs to account for the frame's position relative to the\n // parent window.\n if (frame) {\n const frameRect = frame.getBoundingClientRect();\n addTop = frameRect.top + document.documentElement.scrollTop;\n addLeft = frameRect.left + document.documentElement.scrollLeft;\n posY = e.clientY;\n posX = e.clientX;\n }\n\n dragHelperStyle.top = posY + addTop + 'px';\n dragHelperStyle.left = posX + addLeft + 'px';\n },\n\n /**\n * Returns true if the element matches with selector\n * @param {Element} el\n * @param {String} selector\n * @return {Boolean}\n */\n matches(el, selector, useBody) {\n return matches.call(el, selector);\n },\n\n /**\n * Closest parent\n * @param {Element} el\n * @param {String} selector\n * @return {Element|null}\n */\n closest(el, selector) {\n if (!el) return;\n var elem = el.parentNode;\n while (elem && elem.nodeType === 1) {\n if (this.matches(elem, selector)) return elem;\n elem = elem.parentNode;\n }\n return null;\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 + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n };\n },\n\n /**\n * Create placeholder\n * @return {HTMLElement}\n */\n createPlaceholder() {\n var pfx = this.pfx;\n var el = document.createElement('div');\n var ins = document.createElement('div');\n el.className = pfx + 'placeholder';\n el.style.display = 'none';\n el.style['pointer-events'] = 'none';\n ins.className = pfx + 'placeholder-int';\n el.appendChild(ins);\n return el;\n },\n\n /**\n * Picking component to move\n * @param {HTMLElement} src\n * */\n startSort(src, opts = {}) {\n const em = this.em;\n const itemSel = this.itemSel;\n const contSel = this.containerSel;\n const container = this.getContainerEl(opts.container);\n const docs = this.getDocuments(src);\n const onStart = this.onStart;\n let srcModel;\n let plh = this.plh;\n this.dropModel = null;\n this.target = null;\n this.prevTarget = null;\n this.moved = 0;\n\n // Check if the start element is a valid one, if not get the\n // closest valid one\n if (src && !this.matches(src, `${itemSel}, ${contSel}`)) {\n src = this.closest(src, itemSel);\n }\n\n this.eV = src;\n\n // Create placeholder if not yet exists\n if (!plh) {\n plh = this.createPlaceholder();\n container.appendChild(plh);\n this.plh = plh;\n }\n\n if (src) {\n srcModel = this.getSourceModel(src);\n srcModel && srcModel.set && srcModel.set('status', 'freezed');\n this.srcModel = srcModel;\n }\n\n on(container, 'mousemove dragover', this.onMove);\n on(docs, 'mouseup dragend touchend', this.endMove);\n on(docs, 'keydown', this.rollback);\n onStart &&\n onStart({\n target: srcModel,\n parent: srcModel && srcModel.parent(),\n index: srcModel && srcModel.index()\n });\n\n // Avoid strange effects on dragging\n em && em.clearSelection();\n this.toggleSortCursor(1);\n\n em && em.trigger('sorter:drag:start', src, srcModel);\n },\n\n /**\n * Get the model from HTMLElement target\n * @return {Model|null}\n */\n getTargetModel(el) {\n let elem = el || this.target;\n return $(elem).data('model');\n },\n\n /**\n * Get the model of the current source element (element to drag)\n * @return {Model}\n */\n getSourceModel(source, { target, avoidChildren = 1 } = {}) {\n const { em, eV } = this;\n const src = source || eV;\n let { dropModel, dropContent } = this;\n const isTextable = src =>\n src &&\n target &&\n src.opt &&\n src.opt.avoidChildren &&\n this.isTextableActive(src, target);\n\n if (dropContent && em) {\n if (isTextable(dropModel)) {\n dropModel = null;\n }\n\n if (!dropModel) {\n const comps = em.get('DomComponents').getComponents();\n const opts = {\n avoidChildren,\n avoidStore: 1,\n avoidUpdateStyle: 1\n };\n const tempModel = comps.add(dropContent, { ...opts, temporary: 1 });\n dropModel = comps.remove(tempModel, opts);\n dropModel = dropModel instanceof Array ? dropModel[0] : dropModel;\n this.dropModel = dropModel;\n\n if (isTextable(dropModel)) {\n return this.getSourceModel(src, { target, avoidChildren: 0 });\n }\n }\n\n return dropModel;\n }\n\n return src && $(src).data('model');\n },\n\n /**\n * Highlight target\n * @param {Model|null} model\n */\n selectTargetModel(model, source) {\n if (model instanceof Backbone.Collection) {\n return;\n }\n\n // Prevents loops in Firefox\n // https://github.com/artf/grapesjs/issues/2911\n if (source && source === model) return;\n\n const { targetModel } = this;\n\n // Reset the previous model but not if it's the same as the source\n // https://github.com/artf/grapesjs/issues/2478#issuecomment-570314736\n if (targetModel && targetModel !== this.srcModel) {\n targetModel.set('status', '');\n }\n\n if (model && model.set) {\n model.set('status', 'selected-parent');\n this.targetModel = model;\n }\n },\n\n /**\n * During move\n * @param {Event} e\n * */\n onMove(e) {\n const ev = e;\n const { em, onMoveClb, plh } = this;\n this.moved = 1;\n\n // Turn placeholder visibile\n var dsp = plh.style.display;\n if (!dsp || dsp === 'none') plh.style.display = 'block';\n\n // Cache all necessary positions\n var eO = this.offset(this.el);\n this.elT = this.wmargin ? Math.abs(eO.top) : eO.top;\n this.elL = this.wmargin ? Math.abs(eO.left) : eO.left;\n var rY = e.pageY - this.elT + this.el.scrollTop;\n var rX = e.pageX - this.elL + this.el.scrollLeft;\n\n if (this.canvasRelative && em) {\n const mousePos = em\n .get('Canvas')\n .getMouseRelativeCanvas(e, { noScroll: 1 });\n rX = mousePos.x;\n rY = mousePos.y;\n }\n\n this.rX = rX;\n this.rY = rY;\n this.eventMove = e;\n\n //var targetNew = this.getTargetFromEl(e.target);\n const sourceModel = this.getSourceModel();\n const dims = this.dimsFromTarget(e.target, rX, rY);\n const target = this.target;\n const targetModel = target && this.getTargetModel(target);\n this.selectTargetModel(targetModel, sourceModel);\n if (!targetModel) plh.style.display = 'none';\n if (!target) return;\n\n this.lastDims = dims;\n const pos = this.findPosition(dims, rX, rY);\n\n if (this.isTextableActive(sourceModel, targetModel)) {\n this.activeTextModel = targetModel;\n this.setContentEditable(targetModel, true);\n\n plh.style.display = 'none';\n this.lastPos = pos;\n this.updateTextViewCursorPosition(ev);\n } else {\n this.disableTextable();\n this.activeTextModel = null;\n\n // If there is a significant changes with the pointer\n if (\n !this.lastPos ||\n this.lastPos.index != pos.index ||\n this.lastPos.method != pos.method\n ) {\n this.movePlaceholder(this.plh, dims, pos, this.prevTargetDim);\n if (!this.$plh) this.$plh = $(this.plh);\n\n // With canvasRelative the offset is calculated automatically for\n // each element\n if (!this.canvasRelative) {\n if (this.offTop) this.$plh.css('top', '+=' + this.offTop + 'px');\n if (this.offLeft) this.$plh.css('left', '+=' + this.offLeft + 'px');\n }\n\n this.lastPos = pos;\n }\n }\n\n isFunction(onMoveClb) &&\n onMoveClb({\n event: e,\n target: sourceModel,\n parent: targetModel,\n index: pos.index + (pos.method == 'after' ? 1 : 0)\n });\n\n em &&\n em.trigger('sorter:drag', {\n target,\n targetModel,\n sourceModel,\n dims,\n pos,\n x: rX,\n y: rY\n });\n },\n\n isTextableActive(src, trg) {\n return src && src.get && src.get('textable') && trg && trg.is('text');\n },\n\n disableTextable() {\n const { activeTextModel } = this;\n activeTextModel && activeTextModel.getView().disableEditing();\n },\n\n /**\n * Returns true if the elements is in flow, so is not in flow where\n * for example the component is with float:left\n * @param {HTMLElement} el\n * @param {HTMLElement} parent\n * @return {Boolean}\n * @private\n * */\n isInFlow(el, parent) {\n if (!el) return false;\n\n parent = parent || document.body;\n var ch = -1,\n h;\n var elem = el;\n h = elem.offsetHeight;\n if (/*h < ch || */ !this.styleInFlow(elem, parent)) return false;\n else return true;\n },\n\n /**\n * Check if el has style to be in flow\n * @param {HTMLElement} el\n * @param {HTMLElement} parent\n * @return {Boolean}\n * @private\n */\n styleInFlow(el, parent) {\n if (isTextNode(el)) return;\n const style = el.style || {};\n const $el = $(el);\n const $parent = parent && $(parent);\n\n if (style.overflow && style.overflow !== 'visible') return;\n if ($el.css('float') !== 'none') return;\n if (\n $parent &&\n $parent.css('display') == 'flex' &&\n $parent.css('flex-direction') !== 'column'\n )\n return;\n switch (style.position) {\n case 'static':\n case 'relative':\n case '':\n break;\n default:\n return;\n }\n switch (el.tagName) {\n case 'TR':\n case 'TBODY':\n case 'THEAD':\n case 'TFOOT':\n return true;\n }\n switch ($el.css('display')) {\n case 'block':\n case 'list-item':\n case 'table':\n case 'flex':\n return true;\n }\n return;\n },\n\n /**\n * Check if the target is valid with the actual source\n * @param {HTMLElement} trg\n * @return {Boolean}\n */\n validTarget(trg, src) {\n const trgModel = this.getTargetModel(trg);\n const srcModel = this.getSourceModel(src, { target: trgModel });\n src = srcModel && srcModel.view && srcModel.view.el;\n trg = trgModel && trgModel.view && trgModel.view.el;\n let result = {\n valid: true,\n src,\n srcModel,\n trg,\n trgModel\n };\n\n if (!src || !trg) {\n result.valid = false;\n return result;\n }\n\n // check if the source is draggable in target\n let draggable = srcModel.get('draggable');\n draggable = draggable instanceof Array ? draggable.join(', ') : draggable;\n result.dragInfo = draggable;\n draggable = isString(draggable) ? this.matches(trg, draggable) : draggable;\n result.draggable = draggable;\n\n // Check if the target could accept the source\n let droppable = trgModel.get('droppable');\n droppable = droppable instanceof Backbone.Collection ? 1 : droppable;\n droppable = droppable instanceof Array ? droppable.join(', ') : droppable;\n result.dropInfo = droppable;\n droppable = isString(droppable) ? this.matches(src, droppable) : droppable;\n droppable =\n draggable && this.isTextableActive(srcModel, trgModel) ? 1 : droppable;\n result.droppable = droppable;\n\n if (!droppable || !draggable) {\n result.valid = false;\n }\n\n return result;\n },\n\n /**\n * Get dimensions of nodes relative to the coordinates\n * @param {HTMLElement} target\n * @param {number} rX Relative X position\n * @param {number} rY Relative Y position\n * @return {Array}\n */\n dimsFromTarget(target, rX, rY) {\n const em = this.em;\n var dims = [];\n\n if (!target) {\n return dims;\n }\n\n // Select the first valuable target\n if (!this.matches(target, `${this.itemSel}, ${this.containerSel}`)) {\n target = this.closest(target, this.itemSel);\n }\n\n // If draggable is an array the target will be one of those\n if (this.draggable instanceof Array) {\n target = this.closest(target, this.draggable.join(','));\n }\n\n if (!target) {\n return dims;\n }\n\n // Check if the target is different from the previous one\n if (this.prevTarget && this.prevTarget != target) {\n this.prevTarget = null;\n }\n\n // New target found\n if (!this.prevTarget) {\n this.targetP = this.closest(target, this.containerSel);\n\n // Check if the source is valid with the target\n let validResult = this.validTarget(target);\n em && em.trigger('sorter:drag:validation', validResult);\n\n if (!validResult.valid && this.targetP) {\n return this.dimsFromTarget(this.targetP, rX, rY);\n }\n\n this.prevTarget = target;\n this.prevTargetDim = this.getDim(target);\n this.cacheDimsP = this.getChildrenDim(this.targetP);\n this.cacheDims = this.getChildrenDim(target);\n }\n\n // If the target is the previous one will return the cached dims\n if (this.prevTarget == target) dims = this.cacheDims;\n\n // Target when I will drop element to sort\n this.target = this.prevTarget;\n\n // Generally, on any new target the poiner enters inside its area and\n // triggers nearBorders(), so have to take care of this\n if (\n this.nearBorders(this.prevTargetDim, rX, rY) ||\n (!this.nested && !this.cacheDims.length)\n ) {\n const targetParent = this.targetP;\n\n if (targetParent && this.validTarget(targetParent).valid) {\n dims = this.cacheDimsP;\n this.target = targetParent;\n }\n }\n\n this.lastPos = null;\n return dims;\n },\n\n /**\n * Get valid target from element\n * This method should replace dimsFromTarget()\n * @param {HTMLElement} el\n * @return {HTMLElement}\n */\n getTargetFromEl(el) {\n let target = el;\n let targetParent;\n let targetPrev = this.targetPrev;\n const em = this.em;\n const containerSel = this.containerSel;\n const itemSel = this.itemSel;\n\n // Select the first valuable target\n if (!this.matches(target, `${itemSel}, ${containerSel}`)) {\n target = this.closest(target, itemSel);\n }\n\n // If draggable is an array the target will be one of those\n // TODO check if this options is used somewhere\n if (this.draggable instanceof Array) {\n target = this.closest(target, this.draggable.join(','));\n }\n\n // Check if the target is different from the previous one\n if (targetPrev && targetPrev != target) {\n this.targetPrev = '';\n }\n\n // New target found\n if (!this.targetPrev) {\n targetParent = this.closest(target, containerSel);\n\n // If the current target is not valid (src/trg reasons) try with\n // the parent one (if exists)\n const validResult = this.validTarget(target);\n em && em.trigger('sorter:drag:validation', validResult);\n\n if (!validResult.valid && targetParent) {\n return this.getTargetFromEl(targetParent);\n }\n\n this.targetPrev = target;\n }\n\n // Generally, on any new target the poiner enters inside its area and\n // triggers nearBorders(), so have to take care of this\n if (this.nearElBorders(target)) {\n targetParent = this.closest(target, containerSel);\n\n if (targetParent && this.validTarget(targetParent).valid) {\n target = targetParent;\n }\n }\n\n return target;\n },\n\n /**\n * Check if the current pointer is neare to element borders\n * @return {Boolen}\n */\n nearElBorders(el) {\n const off = 10;\n const rect = el.getBoundingClientRect();\n const body = el.ownerDocument.body;\n const { x, y } = this.getCurrentPos();\n const top = rect.top + body.scrollTop;\n const left = rect.left + body.scrollLeft;\n const width = rect.width;\n const height = rect.height;\n\n if (\n y < top + off || // near top edge\n y > top + height - off || // near bottom edge\n x < left + off || // near left edge\n x > left + width - off // near right edge\n ) {\n return 1;\n }\n },\n\n getCurrentPos() {\n const ev = this.eventMove;\n const x = ev.pageX || 0;\n const y = ev.pageY || 0;\n return { x, y };\n },\n\n /**\n * Returns dimensions and positions about the element\n * @param {HTMLElement} el\n * @return {Array}\n */\n getDim(el) {\n const { em, canvasRelative } = this;\n var top, left, height, width;\n\n if (canvasRelative && em) {\n const canvas = em.get('Canvas');\n const pos = canvas.getElementPos(el, { noScroll: 1 });\n const elOffsets = canvas.getElementOffsets(el);\n top = pos.top - elOffsets.marginTop;\n left = pos.left - elOffsets.marginLeft;\n height = pos.height + elOffsets.marginTop + elOffsets.marginBottom;\n width = pos.width + elOffsets.marginLeft + elOffsets.marginRight;\n } else {\n var o = this.offset(el);\n top = this.relative\n ? el.offsetTop\n : o.top - (this.wmargin ? -1 : 1) * this.elT;\n left = this.relative\n ? el.offsetLeft\n : o.left - (this.wmargin ? -1 : 1) * this.elL;\n height = el.offsetHeight;\n width = el.offsetWidth;\n }\n\n return [top, left, height, width];\n },\n\n /**\n * Get children dimensions\n * @param {HTMLELement} el Element root\n * @retun {Array}\n * */\n getChildrenDim(trg) {\n const dims = [];\n if (!trg) return dims;\n\n // Get children based on getChildrenContainer\n const trgModel = this.getTargetModel(trg);\n if (trgModel && trgModel.view && !this.ignoreViewChildren) {\n const view = trgModel.getCurrentView\n ? trgModel.getCurrentView()\n : trgModel.view;\n trg = view.getChildrenContainer();\n }\n\n each(trg.children, (el, i) => {\n const model = getModel(el, $);\n const elIndex = model && model.index ? model.index() : i;\n\n if (!isTextNode(el) && !this.matches(el, this.itemSel)) {\n return;\n }\n\n const dim = this.getDim(el);\n let dir = this.direction;\n\n if (dir == 'v') dir = true;\n else if (dir == 'h') dir = false;\n else dir = this.isInFlow(el, trg);\n\n dim.push(dir, el, elIndex);\n dims.push(dim);\n });\n\n return dims;\n },\n\n /**\n * Check if the coordinates are near to the borders\n * @param {Array} dim\n * @param {number} rX Relative X position\n * @param {number} rY Relative Y position\n * @return {Boolean}\n * */\n nearBorders(dim, rX, rY) {\n var result = 0;\n var off = this.borderOffset;\n var x = rX || 0;\n var y = rY || 0;\n var t = dim[0];\n var l = dim[1];\n var h = dim[2];\n var w = dim[3];\n if (t + off > y || y > t + h - off || l + off > x || x > l + w - off)\n result = 1;\n\n return !!result;\n },\n\n /**\n * Find the position based on passed dimensions and coordinates\n * @param {Array} dims Dimensions of nodes to parse\n * @param {number} posX X coordindate\n * @param {number} posY Y coordindate\n * @retun {Object}\n * */\n findPosition(dims, posX, posY) {\n var result = { index: 0, indexEl: 0, method: 'before' };\n var leftLimit = 0,\n xLimit = 0,\n dimRight = 0,\n yLimit = 0,\n xCenter = 0,\n yCenter = 0,\n dimDown = 0,\n dim = 0;\n // Each dim is: Top, Left, Height, Width\n for (var i = 0, len = dims.length; i < len; i++) {\n dim = dims[i];\n // Right position of the element. Left + Width\n dimRight = dim[1] + dim[3];\n // Bottom position of the element. Top + Height\n dimDown = dim[0] + dim[2];\n // X center position of the element. Left + (Width / 2)\n xCenter = dim[1] + dim[3] / 2;\n // Y center position of the element. Top + (Height / 2)\n yCenter = dim[0] + dim[2] / 2;\n // Skip if over the limits\n if (\n (xLimit && dim[1] > xLimit) ||\n (yLimit && yCenter >= yLimit) || // >= avoid issue with clearfixes\n (leftLimit && dimRight < leftLimit)\n )\n continue;\n result.index = i;\n result.indexEl = dim[6];\n // If it's not in flow (like 'float' element)\n if (!dim[4]) {\n if (posY < dimDown) yLimit = dimDown;\n //If x lefter than center\n if (posX < xCenter) {\n xLimit = xCenter;\n result.method = 'before';\n } else {\n leftLimit = xCenter;\n result.method = 'after';\n }\n } else {\n // If y upper than center\n if (posY < yCenter) {\n result.method = 'before';\n break;\n } else result.method = 'after'; // After last element\n }\n }\n return result;\n },\n\n /**\n * Updates the position of the placeholder\n * @param {HTMLElement} phl\n * @param {Array} dims\n * @param {Object} pos Position object\n * @param {Array} trgDim target dimensions\n * */\n movePlaceholder(plh, dims, pos, trgDim) {\n var marg = 0,\n t = 0,\n l = 0,\n w = 0,\n h = 0,\n un = 'px',\n margI = 5,\n method = pos.method;\n var elDim = dims[pos.index];\n\n // Placeholder orientation\n plh.classList.remove('vertical');\n plh.classList.add('horizontal');\n\n if (elDim) {\n // If it's not in flow (like 'float' element)\n if (!elDim[4]) {\n w = 'auto';\n h = elDim[2] - marg * 2 + un;\n t = elDim[0] + marg;\n l = method == 'before' ? elDim[1] - marg : elDim[1] + elDim[3] - marg;\n\n plh.classList.remove('horizontal');\n plh.classList.add('vertical');\n } else {\n w = elDim[3] + un;\n h = 'auto';\n t = method == 'before' ? elDim[0] - marg : elDim[0] + elDim[2] - marg;\n l = elDim[1];\n }\n } else {\n if (!this.nested) {\n plh.style.display = 'none';\n return;\n }\n if (trgDim) {\n t = trgDim[0] + margI;\n l = trgDim[1] + margI;\n w = parseInt(trgDim[3]) - margI * 2 + un;\n h = 'auto';\n }\n }\n plh.style.top = t + un;\n plh.style.left = l + un;\n if (w) plh.style.width = w;\n if (h) plh.style.height = h;\n },\n\n /**\n * Leave item\n * @param event\n *\n * @return void\n * */\n endMove(e) {\n const src = this.eV;\n const moved = [];\n const docs = this.getDocuments();\n const container = this.getContainerEl();\n const onEndMove = this.onEndMove;\n const { target, lastPos } = this;\n let srcModel;\n off(container, 'mousemove dragover', this.onMove);\n off(docs, 'mouseup dragend touchend', this.endMove);\n off(docs, 'keydown', this.rollback);\n this.plh.style.display = 'none';\n\n if (src) {\n srcModel = this.getSourceModel();\n if (this.selectOnEnd && srcModel && srcModel.set) {\n srcModel.set('status', '');\n srcModel.set('status', 'selected');\n }\n }\n\n if (this.moved) {\n const toMove = this.toMove;\n const toMoveArr = isArray(toMove) ? toMove : toMove ? [toMove] : [src];\n toMoveArr.forEach(model => {\n moved.push(this.move(target, model, lastPos));\n });\n }\n\n if (this.plh) this.plh.style.display = 'none';\n var dragHelper = this.dragHelper;\n\n if (dragHelper) {\n dragHelper.parentNode.removeChild(dragHelper);\n this.dragHelper = null;\n }\n\n this.disableTextable();\n this.selectTargetModel();\n this.toggleSortCursor();\n\n this.toMove = null;\n this.eventMove = 0;\n this.dropModel = null;\n\n if (isFunction(onEndMove)) {\n const data = {\n target: srcModel,\n parent: srcModel && srcModel.parent(),\n index: srcModel && srcModel.index()\n };\n moved.length\n ? moved.forEach(m => onEndMove(m, this, data))\n : onEndMove(null, this, { ...data, cancelled: 1 });\n }\n },\n\n /**\n * Move component to new position\n * @param {HTMLElement} dst Destination target\n * @param {HTMLElement} src Element to move\n * @param {Object} pos Object with position coordinates\n * */\n move(dst, src, pos) {\n const { em, activeTextModel, dropContent } = this;\n const srcEl = getElement(src);\n em && em.trigger('component:dragEnd:before', dst, srcEl, pos); // @depricated\n let index = pos.indexEl;\n let modelToDrop, modelTemp, created;\n const warns = [];\n const validResult = this.validTarget(dst, srcEl);\n const targetCollection = $(dst).data('collection');\n const model = validResult.srcModel;\n let { droppable } = validResult;\n const { trgModel, draggable } = validResult;\n const dropInfo =\n validResult.dropInfo || (trgModel && trgModel.get('droppable'));\n const dragInfo = validResult.dragInfo || (model && model.get('draggable'));\n droppable = trgModel instanceof Backbone.Collection ? 1 : droppable;\n const isTextableActive = this.isTextableActive(model, trgModel);\n\n if (targetCollection && droppable && draggable) {\n index = pos.method === 'after' ? index + 1 : index;\n var opts = { at: index, noIncrement: 1 };\n\n if (!dropContent) {\n // Putting `avoidStore` here will make the UndoManager behave wrong\n opts.temporary = 1;\n modelTemp = targetCollection.add({}, { ...opts });\n\n if (model.collection) {\n modelToDrop = model.collection.remove(model, { temporary: 1 });\n }\n } else {\n modelToDrop = dropContent;\n opts.silent = false;\n opts.avoidUpdateStyle = 1;\n }\n\n if (isTextableActive) {\n const viewActive = activeTextModel.getView();\n activeTextModel.trigger('active');\n const { activeRte } = viewActive;\n const modelEl = model.getEl();\n delete model.opt.temporary;\n model.getView().render();\n modelEl.setAttribute('data-gjs-textable', 'true');\n const { outerHTML } = modelEl;\n activeRte.insertHTML && activeRte.insertHTML(outerHTML);\n } else {\n created = targetCollection.add(modelToDrop, opts);\n }\n\n if (!dropContent) {\n targetCollection.remove(modelTemp);\n } else {\n this.dropContent = null;\n }\n\n // This will cause to recalculate children dimensions\n this.prevTarget = null;\n } else if (em) {\n !targetCollection && warns.push('Target collection not found');\n !droppable &&\n dropInfo &&\n warns.push(`Target is not droppable, accepts [${dropInfo}]`);\n !draggable &&\n dragInfo &&\n warns.push(`Component not draggable, acceptable by [${dragInfo}]`);\n em.logWarning('Invalid target position', {\n errors: warns,\n model,\n context: 'sorter',\n target: trgModel\n });\n }\n\n if (em) {\n em.trigger('component:dragEnd', targetCollection, modelToDrop, warns); // @depricated\n em.trigger('sorter:drag:end', {\n targetCollection,\n modelToDrop,\n warns,\n validResult,\n dst,\n srcEl\n });\n }\n\n return created;\n },\n\n /**\n * Rollback to previous situation\n * @param {Event}\n * @param {Bool} Indicates if rollback in anycase\n * */\n rollback(e) {\n off(this.getDocuments(), 'keydown', this.rollback);\n const key = e.which || e.keyCode;\n\n if (key == 27) {\n this.moved = 0;\n this.endMove();\n }\n }\n});\n","import { bindAll, defaults, isFunction, each } from 'underscore';\nimport { on, off, normalizeFloat } from 'utils/mixins';\n\nvar defaultOpts = {\n // Function which returns custom X and Y coordinates of the mouse\n mousePosFetcher: null,\n // Indicates custom target updating strategy\n updateTarget: null,\n // Function which gets HTMLElement as an arg and returns it relative position\n ratioDefault: 0,\n posFetcher: null,\n onStart: null,\n onMove: null,\n onEnd: null,\n onUpdateContainer: () => {},\n\n // Resize unit step\n step: 1,\n\n // Minimum dimension\n minDim: 10,\n\n // Maximum dimension\n maxDim: '',\n\n // Unit used for height resizing\n unitHeight: 'px',\n\n // Unit used for width resizing\n unitWidth: 'px',\n\n // The key used for height resizing\n keyHeight: 'height',\n\n // The key used for width resizing\n keyWidth: 'width',\n\n // If true, will override unitHeight and unitWidth, on start, with units\n // from the current focused element (currently used only in SelectComponent)\n currentUnit: 1,\n\n // With this option active the mousemove event won't be altered when\n // the pointer comes over iframes\n silentFrames: 0,\n\n // If true the container of handlers won't be updated\n avoidContainerUpdate: 0,\n\n // If height is 'auto', this setting will preserve it and only update width\n keepAutoHeight: false,\n\n // If width is 'auto', this setting will preserve it and only update height\n keepAutoWidth: false,\n\n // When keepAutoHeight is true and the height has the value 'auto', this is set to true and height isn't updated\n autoHeight: false,\n\n // When keepAutoWidth is true and the width has the value 'auto', this is set to true and width isn't updated\n autoWidth: false,\n\n // Handlers\n tl: 1, // Top left\n tc: 1, // Top center\n tr: 1, // Top right\n cl: 1, // Center left\n cr: 1, // Center right\n bl: 1, // Bottom left\n bc: 1, // Bottom center\n br: 1 // Bottom right\n};\n\nvar createHandler = (name, opts) => {\n var pfx = opts.prefix || '';\n var el = document.createElement('i');\n el.className = pfx + 'resizer-h ' + pfx + 'resizer-h-' + name;\n el.setAttribute('data-' + pfx + 'handler', name);\n return el;\n};\n\nvar getBoundingRect = (el, win) => {\n var w = win || window;\n var rect = el.getBoundingClientRect();\n return {\n left: rect.left + w.pageXOffset,\n top: rect.top + w.pageYOffset,\n width: rect.width,\n height: rect.height\n };\n};\n\nclass Resizer {\n /**\n * Init the Resizer with options\n * @param {Object} options\n */\n constructor(opts = {}) {\n this.setOptions(opts);\n bindAll(this, 'handleKeyDown', 'handleMouseDown', 'move', 'stop');\n return this;\n }\n\n /**\n * Get current connfiguration options\n * @return {Object}\n */\n getConfig() {\n return this.opts;\n }\n\n /**\n * Setup options\n * @param {Object} options\n */\n setOptions(options = {}) {\n this.opts = defaults(options, defaultOpts);\n this.setup();\n }\n\n /**\n * Setup resizer\n */\n setup() {\n const opts = this.opts;\n const pfx = opts.prefix || '';\n const appendTo = opts.appendTo || document.body;\n let container = this.container;\n\n // Create container if not yet exist\n if (!container) {\n container = document.createElement('div');\n container.className = `${pfx}resizer-c`;\n appendTo.appendChild(container);\n this.container = container;\n }\n\n while (container.firstChild) {\n container.removeChild(container.firstChild);\n }\n\n // Create handlers\n const handlers = {};\n ['tl', 'tc', 'tr', 'cl', 'cr', 'bl', 'bc', 'br'].forEach(\n hdl => (handlers[hdl] = opts[hdl] ? createHandler(hdl, opts) : '')\n );\n\n for (let n in handlers) {\n const handler = handlers[n];\n handler && container.appendChild(handler);\n }\n\n this.handlers = handlers;\n this.mousePosFetcher = opts.mousePosFetcher;\n this.updateTarget = opts.updateTarget;\n this.posFetcher = opts.posFetcher;\n this.onStart = opts.onStart;\n this.onMove = opts.onMove;\n this.onEnd = opts.onEnd;\n this.onUpdateContainer = opts.onUpdateContainer;\n }\n\n /**\n * Toggle iframes pointer event\n * @param {Boolean} silent If true, iframes will be silented\n */\n toggleFrames(silent) {\n if (this.opts.silentFrames) {\n const frames = document.querySelectorAll('iframe');\n each(frames, frame => (frame.style.pointerEvents = silent ? 'none' : ''));\n }\n }\n\n /**\n * Detects if the passed element is a resize handler\n * @param {HTMLElement} el\n * @return {Boolean}\n */\n isHandler(el) {\n var handlers = this.handlers;\n\n for (var n in handlers) {\n if (handlers[n] === el) return true;\n }\n\n return false;\n }\n\n /**\n * Returns the focused element\n * @return {HTMLElement}\n */\n getFocusedEl() {\n return this.el;\n }\n\n /**\n * Returns the parent of the focused element\n * @return {HTMLElement}\n */\n getParentEl() {\n return this.el.parentElement;\n }\n\n /**\n * Returns documents\n */\n getDocumentEl() {\n return [this.el.ownerDocument, document];\n }\n\n /**\n * Return element position\n * @param {HTMLElement} el\n * @param {Object} opts Custom options\n * @return {Object}\n */\n getElementPos(el, opts = {}) {\n var posFetcher = this.posFetcher || '';\n return posFetcher ? posFetcher(el, opts) : getBoundingRect(el);\n }\n\n /**\n * Focus resizer on the element, attaches handlers to it\n * @param {HTMLElement} el\n */\n focus(el) {\n // Avoid focusing on already focused element\n if (el && el === this.el) {\n return;\n }\n\n this.el = el;\n this.updateContainer({ forceShow: 1 });\n on(this.getDocumentEl(), 'mousedown', this.handleMouseDown);\n }\n\n /**\n * Blur from element\n */\n blur() {\n this.container.style.display = 'none';\n\n if (this.el) {\n off(this.getDocumentEl(), 'mousedown', this.handleMouseDown);\n this.el = null;\n }\n }\n\n /**\n * Start resizing\n * @param {Event} e\n */\n start(e) {\n //Right or middel click\n if (e.button !== 0) return;\n e.preventDefault();\n e.stopPropagation();\n const el = this.el;\n const parentEl = this.getParentEl();\n const resizer = this;\n const config = this.opts || {};\n var attrName = 'data-' + config.prefix + 'handler';\n var rect = this.getElementPos(el, { target: 'el' });\n var parentRect = this.getElementPos(parentEl);\n this.handlerAttr = e.target.getAttribute(attrName);\n this.clickedHandler = e.target;\n this.startDim = {\n t: rect.top,\n l: rect.left,\n w: rect.width,\n h: rect.height\n };\n this.rectDim = {\n t: rect.top,\n l: rect.left,\n w: rect.width,\n h: rect.height\n };\n this.startPos = {\n x: e.clientX,\n y: e.clientY\n };\n this.parentDim = {\n t: parentRect.top,\n l: parentRect.left,\n w: parentRect.width,\n h: parentRect.height\n };\n\n // Listen events\n var doc = this.getDocumentEl();\n on(doc, 'mousemove', this.move);\n on(doc, 'keydown', this.handleKeyDown);\n on(doc, 'mouseup', this.stop);\n isFunction(this.onStart) &&\n this.onStart(e, { docs: doc, config, el, resizer });\n this.toggleFrames(1);\n this.move(e);\n }\n\n /**\n * While resizing\n * @param {Event} e\n */\n move(e) {\n const onMove = this.onMove;\n var mouseFetch = this.mousePosFetcher;\n var currentPos = mouseFetch\n ? mouseFetch(e)\n : {\n x: e.clientX,\n y: e.clientY\n };\n\n this.currentPos = currentPos;\n this.delta = {\n x: currentPos.x - this.startPos.x,\n y: currentPos.y - this.startPos.y\n };\n this.keys = {\n shift: e.shiftKey,\n ctrl: e.ctrlKey,\n alt: e.altKey\n };\n\n this.rectDim = this.calc(this);\n this.updateRect(0);\n\n // Move callback\n onMove && onMove(e);\n\n // In case the mouse button was released outside of the window\n if (e.which === 0) {\n this.stop(e);\n }\n }\n\n /**\n * Stop resizing\n * @param {Event} e\n */\n stop(e) {\n const config = this.opts;\n var doc = this.getDocumentEl();\n off(doc, 'mousemove', this.move);\n off(doc, 'keydown', this.handleKeyDown);\n off(doc, 'mouseup', this.stop);\n this.updateRect(1);\n this.toggleFrames();\n isFunction(this.onEnd) && this.onEnd(e, { docs: doc, config });\n }\n\n /**\n * Update rect\n */\n updateRect(store) {\n const el = this.el;\n const resizer = this;\n const config = this.opts;\n const rect = this.rectDim;\n const updateTarget = this.updateTarget;\n const selectedHandler = this.getSelectedHandler();\n const { unitHeight, unitWidth, keyWidth, keyHeight } = config;\n\n // Use custom updating strategy if requested\n if (isFunction(updateTarget)) {\n updateTarget(el, rect, {\n store,\n selectedHandler,\n resizer,\n config\n });\n } else {\n const elStyle = el.style;\n elStyle[keyWidth] = rect.w + unitWidth;\n elStyle[keyHeight] = rect.h + unitHeight;\n }\n\n this.updateContainer();\n }\n\n updateContainer(opt = {}) {\n const { opts, container, el } = this;\n const { style } = container;\n\n if (!opts.avoidContainerUpdate && el) {\n // On component resize container fits the tool,\n // to check if this update is required somewhere else point\n // const toUpdate = ['left', 'top', 'width', 'height'];\n // const rectEl = this.getElementPos(el, { target: 'container' });\n // toUpdate.forEach(pos => (style[pos] = `${rectEl[pos]}px`));\n if (opt.forceShow) style.display = 'block';\n }\n\n this.onUpdateContainer({\n el: container,\n resizer: this,\n opts: {\n ...opts,\n ...opt\n }\n });\n }\n\n /**\n * Get selected handler name\n * @return {string}\n */\n getSelectedHandler() {\n var handlers = this.handlers;\n\n if (!this.selectedHandler) {\n return;\n }\n\n for (let n in handlers) {\n if (handlers[n] === this.selectedHandler) return n;\n }\n }\n\n /**\n * Handle ESC key\n * @param {Event} e\n */\n handleKeyDown(e) {\n if (e.keyCode === 27) {\n // Rollback to initial dimensions\n this.rectDim = this.startDim;\n this.stop(e);\n }\n }\n\n /**\n * Handle mousedown to check if it's possible to start resizing\n * @param {Event} e\n */\n handleMouseDown(e) {\n var el = e.target;\n if (this.isHandler(el)) {\n this.selectedHandler = el;\n this.start(e);\n } else if (el !== this.el) {\n this.selectedHandler = '';\n this.blur();\n }\n }\n\n /**\n * All positioning logic\n * @return {Object}\n */\n calc(data) {\n let value;\n const opts = this.opts || {};\n const step = opts.step;\n const startDim = this.startDim;\n const minDim = opts.minDim;\n const maxDim = opts.maxDim;\n const deltaX = data.delta.x;\n const deltaY = data.delta.y;\n const parentW = this.parentDim.w;\n const parentH = this.parentDim.h;\n const unitWidth = this.opts.unitWidth;\n const unitHeight = this.opts.unitHeight;\n const startW =\n unitWidth === '%' ? (startDim.w / 100) * parentW : startDim.w;\n const startH =\n unitHeight === '%' ? (startDim.h / 100) * parentH : startDim.h;\n var box = {\n t: 0,\n l: 0,\n w: startW,\n h: startH\n };\n\n if (!data) return;\n\n var attr = data.handlerAttr;\n if (~attr.indexOf('r')) {\n value =\n unitWidth === '%'\n ? normalizeFloat(((startW + deltaX * step) / parentW) * 100, 0.01)\n : normalizeFloat(startW + deltaX * step, step);\n value = Math.max(minDim, value);\n maxDim && (value = Math.min(maxDim, value));\n box.w = value;\n }\n if (~attr.indexOf('b')) {\n value =\n unitHeight === '%'\n ? normalizeFloat(((startH + deltaY * step) / parentH) * 100, 0.01)\n : normalizeFloat(startH + deltaY * step, step);\n value = Math.max(minDim, value);\n maxDim && (value = Math.min(maxDim, value));\n box.h = value;\n }\n if (~attr.indexOf('l')) {\n value =\n unitWidth === '%'\n ? normalizeFloat(((startW - deltaX * step) / parentW) * 100, 0.01)\n : normalizeFloat(startW - deltaX * step, step);\n value = Math.max(minDim, value);\n maxDim && (value = Math.min(maxDim, value));\n box.w = value;\n }\n if (~attr.indexOf('t')) {\n value =\n unitHeight === '%'\n ? normalizeFloat(((startH - deltaY * step) / parentH) * 100, 0.01)\n : normalizeFloat(startH - deltaY * step, step);\n value = Math.max(minDim, value);\n maxDim && (value = Math.min(maxDim, value));\n box.h = value;\n }\n\n // Enforce aspect ratio (unless shift key is being held)\n var ratioActive = opts.ratioDefault ? !data.keys.shift : data.keys.shift;\n if (attr.indexOf('c') < 0 && ratioActive) {\n var ratio = startDim.w / startDim.h;\n if (box.w / box.h > ratio) {\n box.h = Math.round(box.w / ratio);\n } else {\n box.w = Math.round(box.h * ratio);\n }\n }\n\n if (~attr.indexOf('l')) {\n box.l = startDim.w - box.w;\n }\n if (~attr.indexOf('t')) {\n box.t = startDim.h - box.h;\n }\n\n return box;\n }\n}\n\nexport default {\n init(opts) {\n return new Resizer(opts);\n }\n};\n","import Dragger from './Dragger';\nimport Sorter from './Sorter';\nimport Resizer from './Resizer';\n\nexport default () => {\n return {\n /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'Utils',\n\n /**\n * Initialize module\n */\n init() {\n return this;\n },\n\n destroy() {},\n\n Sorter,\n Resizer,\n Dragger\n };\n};\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 // The core library generates the name by their `property` name\n properties: {\n // float: 'Float',\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};\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: 1,\n\n // Show warnings when some of the i18n resources are missing\n debug: 0,\n\n // Messages to translate\n messages: {\n en\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/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 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\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 &&\n !messages[lang] &&\n 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 &&\n this._debug(`'${key}' i18n key not found in '${locale}' lang`, opts);\n result =\n result && isString(result) ? this._addParams(result, param) : result;\n\n return result;\n },\n\n _localLang() {\n const nav = 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 RTE was borrowed from https://github.com/jaredreich/pell\n// and adapted to the GrapesJS's need\n\nimport { on, off } from 'utils/mixins';\n\nconst RTE_KEY = '_rte';\n\nconst btnState = {\n ACTIVE: 1,\n INACTIVE: 0,\n DISABLED: -1\n};\nconst isValidAnchor = rte => {\n const anchor = rte.selection().anchorNode;\n const parentNode = anchor && anchor.parentNode;\n const nextSibling = anchor && anchor.nextSibling;\n return (\n (parentNode && parentNode.nodeName == 'A') ||\n (nextSibling && nextSibling.nodeName == 'A')\n );\n};\nconst defActions = {\n bold: {\n name: 'bold',\n icon: 'B ',\n attributes: { title: 'Bold' },\n result: rte => rte.exec('bold')\n },\n italic: {\n name: 'italic',\n icon: 'I ',\n attributes: { title: 'Italic' },\n result: rte => rte.exec('italic')\n },\n underline: {\n name: 'underline',\n icon: 'U ',\n attributes: { title: 'Underline' },\n result: rte => rte.exec('underline')\n },\n strikethrough: {\n name: 'strikethrough',\n icon: 'S ',\n attributes: { title: 'Strike-through' },\n result: rte => rte.exec('strikeThrough')\n },\n link: {\n icon: `⫘ `,\n name: 'link',\n attributes: {\n style: 'font-size:1.4rem;padding:0 4px 2px;',\n title: 'Link'\n },\n state: (rte, doc) => {\n if (rte && rte.selection()) {\n return isValidAnchor(rte) ? btnState.ACTIVE : btnState.INACTIVE;\n } else {\n return btnState.INACTIVE;\n }\n },\n result: rte => {\n if (isValidAnchor(rte)) {\n rte.exec('unlink');\n } else {\n rte.insertHTML(`${rte.selection()} `);\n }\n }\n }\n};\n\nexport default class RichTextEditor {\n constructor(settings = {}) {\n const el = settings.el;\n\n if (el[RTE_KEY]) {\n return el[RTE_KEY];\n }\n\n el[RTE_KEY] = this;\n this.setEl(el);\n this.updateActiveActions = this.updateActiveActions.bind(this);\n\n const settAct = settings.actions || [];\n settAct.forEach((action, i) => {\n if (typeof action === 'string') {\n action = defActions[action];\n } else if (defActions[action.name]) {\n action = { ...defActions[action.name], ...action };\n }\n settAct[i] = action;\n });\n const actions = settAct.length\n ? settAct\n : Object.keys(defActions).map(action => defActions[action]);\n\n settings.classes = {\n ...{\n actionbar: 'actionbar',\n button: 'action',\n active: 'active',\n disabled: 'disabled',\n inactive: 'inactive'\n },\n ...settings.classes\n };\n\n const classes = settings.classes;\n let actionbar = settings.actionbar;\n this.actionbar = actionbar;\n this.settings = settings;\n this.classes = classes;\n this.actions = actions;\n\n if (!actionbar) {\n const actionbarCont = settings.actionbarContainer;\n actionbar = document.createElement('div');\n actionbar.className = classes.actionbar;\n actionbarCont.appendChild(actionbar);\n this.actionbar = actionbar;\n actions.forEach(action => this.addAction(action));\n }\n\n settings.styleWithCSS && this.exec('styleWithCSS');\n this.syncActions();\n\n return this;\n }\n\n destroy() {\n this.el = 0;\n this.doc = 0;\n this.actionbar = 0;\n this.settings = {};\n this.classes = {};\n this.actions = [];\n }\n\n setEl(el) {\n this.el = el;\n this.doc = el.ownerDocument;\n }\n\n updateActiveActions() {\n this.getActions().forEach(action => {\n const btn = action.btn;\n const update = action.update;\n const { active, inactive, disabled } = { ...this.classes };\n const state = action.state;\n const name = action.name;\n const doc = this.doc;\n btn.className = btn.className.replace(active, '').trim();\n btn.className = btn.className.replace(inactive, '').trim();\n btn.className = btn.className.replace(disabled, '').trim();\n\n // if there is a state function, which depicts the state,\n // i.e. `active`, `disabled`, then call it\n if (state) {\n switch (state(this, doc)) {\n case btnState.ACTIVE:\n btn.className += ` ${active}`;\n break;\n case btnState.INACTIVE:\n btn.className += ` ${inactive}`;\n break;\n case btnState.DISABLED:\n btn.className += ` ${disabled}`;\n break;\n }\n } else {\n // otherwise default to checking if the name command is supported & enabled\n if (doc.queryCommandSupported(name) && doc.queryCommandState(name)) {\n btn.className += ` ${active}`;\n }\n }\n update && update(this, action);\n });\n }\n\n enable() {\n if (this.enabled) {\n return this;\n }\n\n this.actionbarEl().style.display = '';\n this.el.contentEditable = true;\n on(this.el, 'mouseup keyup', this.updateActiveActions);\n this.syncActions();\n this.updateActiveActions();\n this.el.focus();\n this.enabled = 1;\n return this;\n }\n\n disable() {\n this.actionbarEl().style.display = 'none';\n this.el.contentEditable = false;\n off(this.el, 'mouseup keyup', this.updateActiveActions);\n this.enabled = 0;\n return this;\n }\n\n /**\n * Sync actions with the current RTE\n */\n syncActions() {\n this.getActions().forEach(action => {\n if (this.settings.actionbar) {\n if (\n !action.state ||\n (action.state && action.state(this, this.doc) >= 0)\n ) {\n const event = action.event || 'click';\n action.btn[`on${event}`] = e => {\n action.result(this, action);\n this.updateActiveActions();\n };\n }\n }\n });\n }\n\n /**\n * Add new action to the actionbar\n * @param {Object} action\n * @param {Object} [opts={}]\n */\n addAction(action, opts = {}) {\n const sync = opts.sync;\n const btn = document.createElement('span');\n const icon = action.icon;\n const attr = action.attributes || {};\n btn.className = this.classes.button;\n action.btn = btn;\n\n for (let key in attr) {\n btn.setAttribute(key, attr[key]);\n }\n\n if (typeof icon == 'string') {\n btn.innerHTML = icon;\n } else {\n btn.appendChild(icon);\n }\n\n this.actionbarEl().appendChild(btn);\n\n if (sync) {\n this.actions.push(action);\n this.syncActions();\n }\n }\n\n /**\n * Get the array of current actions\n * @return {Array}\n */\n getActions() {\n return this.actions;\n }\n\n /**\n * Returns the Selection instance\n * @return {Selection}\n */\n selection() {\n return this.doc.getSelection();\n }\n\n /**\n * Execute the command\n * @param {string} command Command name\n * @param {any} [value=null Command's arguments\n */\n exec(command, value = null) {\n this.doc.execCommand(command, false, value);\n }\n\n /**\n * Get the actionbar element\n * @return {HTMLElement}\n */\n actionbarEl() {\n return this.actionbar;\n }\n\n /**\n * Set custom HTML to the selection, useful as the default 'insertHTML' command\n * doesn't work in the same way on all browsers\n * @param {string} value HTML string\n */\n insertHTML(value) {\n let lastNode;\n const doc = this.doc;\n const sel = doc.getSelection();\n\n if (sel && sel.rangeCount) {\n const node = doc.createElement('div');\n const range = sel.getRangeAt(0);\n range.deleteContents();\n node.innerHTML = value;\n Array.prototype.slice.call(node.childNodes).forEach(nd => {\n range.insertNode(nd);\n lastNode = nd;\n });\n\n sel.removeAllRanges();\n sel.addRange(range);\n this.el.focus();\n }\n }\n}\n","export default {\n stylePrefix: 'rte-',\n\n // If true, moves the toolbar below the element when the top canvas\n // edge is reached\n adjustToolbar: 1,\n\n // Default RTE actions\n actions: ['bold', 'italic', 'underline', 'strikethrough', 'link']\n};\n","/**\n * This module allows to customize the built-in toolbar of the Rich Text Editor and use commands from the [HTML Editing APIs](https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand).\n * It's highly recommended to keep this toolbar as small as possible, especially from styling commands (eg. 'fontSize') and leave this task to the Style Manager\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/rich_text_editor/config/config.js)\n * ```js\n * const editor = grapesjs.init({\n * richTextEditor: {\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 rte = editor.RichTextEditor;\n * ```\n *\n * * [add](#add)\n * * [get](#get)\n * * [getAll](#getall)\n * * [remove](#remove)\n * * [getToolbarEl](#gettoolbarel)\n *\n * @module RichTextEditor\n */\n\nimport RichTextEditor from './model/RichTextEditor';\nimport { on, off } from 'utils/mixins';\nimport defaults from './config/config';\n\nexport default () => {\n let config = {};\n let toolbar, actions, lastEl, lastElPos, globalRte;\n\n const hideToolbar = () => {\n const style = toolbar.style;\n const size = '-1000px';\n style.top = size;\n style.left = size;\n style.display = 'none';\n };\n\n return {\n customRte: null,\n\n /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'RichTextEditor',\n\n getConfig() {\n return config;\n },\n\n /**\n * Initialize module. Automatically called with a new instance of the editor\n * @param {Object} opts Options\n * @private\n */\n init(opts = {}) {\n config = {\n ...defaults,\n ...opts\n };\n const ppfx = config.pStylePrefix;\n\n if (ppfx) {\n config.stylePrefix = ppfx + config.stylePrefix;\n }\n\n this.pfx = config.stylePrefix;\n actions = config.actions || [];\n toolbar = document.createElement('div');\n toolbar.className = `${ppfx}rte-toolbar ${ppfx}one-bg`;\n globalRte = this.initRte(document.createElement('div'));\n\n //Avoid closing on toolbar clicking\n on(toolbar, 'mousedown', e => e.stopPropagation());\n return this;\n },\n\n destroy() {\n const { customRte } = this;\n globalRte && globalRte.destroy();\n customRte && customRte.destroy && customRte.destroy();\n this.actionbar = 0;\n this.actions = 0;\n [config, toolbar, actions, lastEl, lastElPos, globalRte].forEach(\n i => (i = {})\n );\n },\n\n /**\n * Post render callback\n * @param {View} ev\n * @private\n */\n postRender(ev) {\n const canvas = ev.model.get('Canvas');\n toolbar.style.pointerEvents = 'all';\n hideToolbar();\n canvas.getToolsEl().appendChild(toolbar);\n },\n\n /**\n * Init the built-in RTE\n * @param {HTMLElement} el\n * @return {RichTextEditor}\n * @private\n */\n initRte(el) {\n const pfx = this.pfx;\n const actionbarContainer = toolbar;\n const actionbar = this.actionbar;\n const actions = this.actions || [...config.actions];\n const classes = {\n actionbar: `${pfx}actionbar`,\n button: `${pfx}action`,\n active: `${pfx}active`,\n inactive: `${pfx}inactive`,\n disabled: `${pfx}disabled`\n };\n const rte = new RichTextEditor({\n el,\n classes,\n actions,\n actionbar,\n actionbarContainer\n });\n globalRte && globalRte.setEl(el);\n\n if (rte.actionbar) {\n this.actionbar = rte.actionbar;\n }\n\n if (rte.actions) {\n this.actions = rte.actions;\n }\n\n return rte;\n },\n\n /**\n * Add a new action to the built-in RTE toolbar\n * @param {string} name Action name\n * @param {Object} action Action options\n * @example\n * rte.add('bold', {\n * icon: 'B ',\n * attributes: {title: 'Bold'},\n * result: rte => rte.exec('bold')\n * });\n * rte.add('link', {\n * icon: document.getElementById('t'),\n * attributes: {title: 'Link',}\n * // Example on it's easy to wrap a selected content\n * result: rte => rte.insertHTML(`${rte.selection()} `)\n * });\n * // An example with fontSize\n * rte.add('fontSize', {\n * icon: `\n * 1 \n * 4 \n * 7 \n * `,\n * // Bind the 'result' on 'change' listener\n * event: 'change',\n * result: (rte, action) => rte.exec('fontSize', action.btn.firstChild.value),\n * // Callback on any input change (mousedown, keydown, etc..)\n * update: (rte, action) => {\n * const value = rte.doc.queryCommandValue(action.name);\n * if (value != 'false') { // value is a string\n * action.btn.firstChild.value = value;\n * }\n * }\n * })\n * // An example with state\n * const isValidAnchor = (rte) => {\n * // a utility function to help determine if the selected is a valid anchor node\n * const anchor = rte.selection().anchorNode;\n * const parentNode = anchor && anchor.parentNode;\n * const nextSibling = anchor && anchor.nextSibling;\n * return (parentNode && parentNode.nodeName == 'A') || (nextSibling && nextSibling.nodeName == 'A')\n * }\n * rte.add('toggleAnchor', {\n * icon: `⫘ `,\n * state: (rte, doc) => {\n * if (rte && rte.selection()) {\n * // `btnState` is a integer, -1 for disabled, 0 for inactive, 1 for active\n * return isValidAnchor(rte) ? btnState.ACTIVE : btnState.INACTIVE;\n * } else {\n * return btnState.INACTIVE;\n * }\n * },\n * result: (rte, action) => {\n * if (isValidAnchor(rte)) {\n * rte.exec('unlink');\n * } else {\n * rte.insertHTML(`${rte.selection()} `);\n * }\n * }\n * })\n */\n add(name, action = {}) {\n action.name = name;\n globalRte.addAction(action, { sync: 1 });\n },\n\n /**\n * Get the action by its name\n * @param {string} name Action name\n * @return {Object}\n * @example\n * const action = rte.get('bold');\n * // {name: 'bold', ...}\n */\n get(name) {\n let result;\n globalRte.getActions().forEach(action => {\n if (action.name == name) {\n result = action;\n }\n });\n return result;\n },\n\n /**\n * Get all actions\n * @return {Array}\n */\n getAll() {\n return globalRte.getActions();\n },\n\n /**\n * Remove the action from the toolbar\n * @param {string} name\n * @return {Object} Removed action\n * @example\n * const action = rte.remove('bold');\n * // {name: 'bold', ...}\n */\n remove(name) {\n const actions = this.getAll();\n const action = this.get(name);\n\n if (action) {\n const btn = action.btn;\n const index = actions.indexOf(action);\n btn.parentNode.removeChild(btn);\n actions.splice(index, 1);\n }\n\n return action;\n },\n\n /**\n * Get the toolbar element\n * @return {HTMLElement}\n */\n getToolbarEl() {\n return toolbar;\n },\n\n /**\n * Triggered when the offset of the editor is changed\n * @private\n */\n updatePosition() {\n const un = 'px';\n const canvas = config.em.get('Canvas');\n const { style } = toolbar;\n const pos = canvas.getTargetToElementFixed(lastEl, toolbar, {\n event: 'rteToolbarPosUpdate'\n });\n\n style.top = pos.top + un;\n style.left = 0 + un;\n },\n\n /**\n * Enable rich text editor on the element\n * @param {View} view Component view\n * @param {Object} rte The instance of already defined RTE\n * @private\n * */\n enable(view, rte) {\n lastEl = view.el;\n const canvas = config.em.get('Canvas');\n const em = config.em;\n const el = view.getChildrenContainer();\n const customRte = this.customRte;\n lastElPos = canvas.getElementPos(lastEl);\n\n toolbar.style.display = '';\n rte = customRte ? customRte.enable(el, rte) : this.initRte(el).enable();\n\n if (em) {\n setTimeout(this.updatePosition.bind(this), 0);\n const event =\n 'change:canvasOffset canvasScroll frame:scroll component:update';\n em.off(event, this.updatePosition, this);\n em.on(event, this.updatePosition, this);\n em.trigger('rte:enable', view, rte);\n }\n\n return rte;\n },\n\n /**\n * Unbind rich text editor from the element\n * @param {View} view\n * @param {Object} rte The instance of already defined RTE\n * @private\n * */\n disable(view, rte) {\n const em = config.em;\n const customRte = this.customRte;\n var el = view.getChildrenContainer();\n\n if (customRte) {\n customRte.disable(el, rte);\n } else {\n rte && rte.disable();\n }\n\n hideToolbar();\n em && em.trigger('rte:disable', view, rte);\n }\n };\n};\n","export default {\n // Style prefix\n stylePrefix: 'css-',\n\n // Custom CSS string to render on top\n staticRules: '',\n\n // Default CSS style\n rules: []\n};\n","/**\n * This module contains and manage CSS rules for the template inside 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 cssComposer = editor.CssComposer;\n * ```\n *\n * * [load](#load)\n * * [store](#store)\n * * [add](#add)\n * * [get](#get)\n * * [getAll](#getall)\n * * [clear](#clear)\n * * [setRule](#setrule)\n * * [getRule](#getrule)\n *\n * @module CssComposer\n */\n\nimport { isArray } from 'underscore';\nimport defaults from './config/config';\nimport CssRule from './model/CssRule';\nimport CssRules from './model/CssRules';\nimport CssRulesView from './view/CssRulesView';\nimport Selectors from 'selector_manager/model/Selectors';\nimport Selector from 'selector_manager/model/Selector';\n\nexport default () => {\n let em;\n var c = {};\n var rules, rulesView;\n\n return {\n Selectors,\n\n /**\n * Name of the module\n * @type {String}\n * @private\n */\n name: 'CssComposer',\n\n getConfig() {\n return c;\n },\n\n /**\n * Mandatory for the storage manager\n * @type {String}\n * @private\n */\n storageKey() {\n var keys = [];\n var smc = (c.stm && c.stm.getConfig()) || {};\n if (smc.storeCss) keys.push('css');\n if (smc.storeStyles) keys.push('styles');\n return keys;\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 rulesView = new CssRulesView({\n collection: rules,\n config: c\n });\n return this;\n },\n\n /**\n * On load callback\n * @private\n */\n onLoad() {\n rules.add(c.rules);\n },\n\n /**\n * Do stuff after load\n * @param {Editor} em\n * @private\n */\n postLoad(em) {\n const ev = 'add remove';\n const rules = this.getAll();\n const um = em.get('UndoManager');\n um && um.add(rules);\n em.stopListening(rules, ev, this.handleChange);\n em.listenTo(rules, ev, this.handleChange);\n rules.each(rule => this.handleChange(rule, null, { avoidStore: 1 }));\n },\n\n /**\n * Handle rule changes\n * @private\n */\n handleChange(model, val, opts = {}) {\n const ev = 'change:style';\n const um = em.get('UndoManager');\n um && um.add(model);\n const handleUpdates = em.handleUpdates.bind(em);\n em.stopListening(model, ev, handleUpdates);\n em.listenTo(model, ev, handleUpdates);\n !opts.avoidStore && handleUpdates('', '', opts);\n },\n\n /**\n * Load data from the passed object, if the object is empty will try to fetch them\n * autonomously from the storage manager.\n * The fetched data will be added to the collection\n * @param {Object} data Object of data to load\n * @return {Object} Loaded rules\n */\n load(data) {\n var d = data || '';\n\n if (!d && c.stm) {\n d = c.em.getCacheLoad();\n }\n\n var obj = d.styles || '';\n\n if (d.styles) {\n try {\n obj = JSON.parse(d.styles);\n } catch (err) {}\n } else if (d.css) {\n obj = c.em.get('Parser').parseCss(d.css);\n }\n\n if (isArray(obj)) {\n obj.length && rules.reset(obj);\n } else if (obj) {\n rules.reset(obj);\n }\n\n return obj;\n },\n\n /**\n * Store data to the selected storage\n * @param {Boolean} noStore If true, won't store\n * @return {Object} Data to store\n */\n store(noStore) {\n if (!c.stm) return;\n var obj = {};\n var keys = this.storageKey();\n if (keys.indexOf('css') >= 0) obj.css = c.em.getCss();\n if (keys.indexOf('styles') >= 0) obj.styles = JSON.stringify(rules);\n if (!noStore) c.stm.store(obj);\n return obj;\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 * @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 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 {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} ruleProps Other rule props\n * @return {Model|null}\n * @example\n * var sm = editor.SelectorManager;\n * var sel1 = sm.add('myClass1');\n * var sel2 = sm.add('myClass2');\n * var rule = cssComposer.get([sel1, sel2], 'hover');\n * // Update the style\n * rule.set('style', {\n * width: '300px',\n * color: '#000',\n * });\n * */\n get(selectors, state, width, ruleProps) {\n var rule = null;\n rules.each(m => {\n if (rule) return;\n if (m.compare(selectors, state, width, ruleProps)) rule = m;\n });\n return rule;\n },\n\n /**\n * Get the collection of rules\n * @return {Collection}\n * */\n getAll() {\n return rules;\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 /**\n * Add a raw collection of rule objects\n * This method overrides styles, in case, of already defined rule\n * @param {Array} data Array of rule objects, eg . [{selectors: ['class1'], style: {....}}, ..]\n * @param {Object} opts Options\n * @return {Array}\n * @private\n */\n addCollection(data, opts = {}) {\n var result = [];\n var 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);\n var updateStyle = !modelExists || !opts.avoidUpdateStyle;\n const style = rule.style || {};\n\n if (updateStyle) {\n let styleUpdate = opts.extend\n ? { ...model.get('style'), ...style }\n : style;\n model.set('style', styleUpdate);\n }\n\n result.push(model);\n }\n\n return result;\n },\n\n /**\n * Add/update the CSS rule with a generic selector\n * @param {string} selectors Selector, 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 * @return {CssRule} The new/updated rule\n * @example\n * // Simple class-based rule\n * const rule = cc.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 = cc.setRule('.class1.class2:hover, div#myid', { color: 'red' });\n * // output: .class1.class2:hover, div#myid { color: red }\n * // With media\n * const rule = cc.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 CSS rule by a generic selector\n * @param {string} selectors Selector, eg. '.myclass:hover'\n * @param {String} [opts.atRuleType=''] At-rule type, eg. 'media'\n * @param {String} [opts.atRuleParams=''] At-rule parameters, eg. '(min-width: 500px)'\n * @return {CssRule}\n * @example\n * const rule = cc.getRule('.myclass1:hover');\n * const rule2 = cc.getRule('.myclass1:hover, div#myid');\n * const rule3 = cc.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 * Find rules, in different states (eg. like `:hover`) and media queries, matching the selector.\n * @param {string} selector Selector, eg. '.myclass'\n * @returns {Array}\n * @example\n * // Common scenario, take all the component specific rules\n * const id = someComponent.getId();\n * const rules = cc.getRules(`#${id}`);\n * console.log(rules.map(rule => rule.toCSS()))\n */\n getRules(selector) {\n const rules = this.getAll();\n const result = rules.filter(\n r => r.getSelectors().getFullString() === selector\n );\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 = cc.setIdRule('myid', { color: 'red' });\n * const ruleHover = cc.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 = {} } = 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_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 = cc.getIdRule('myid');\n * const ruleHover = cc.setIdRule('myid', { state: 'hover' });\n */\n getIdRule(name, opts = {}) {\n const state = opts.state || '';\n const media = opts.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 = cc.setClassRule('myclass', { color: 'red' });\n * const ruleHover = cc.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 = cc.getClassRule('myclass');\n * const ruleHover = cc.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 * Render the block of CSS rules\n * @return {HTMLElement}\n * @private\n */\n render() {\n return rulesView.render().el;\n },\n\n destroy() {\n rules.reset();\n rules.stopListening();\n rulesView.remove();\n [em, rules, rulesView].forEach(i => (i = null));\n c = {};\n }\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. Before using these methods you should get the module from the instance\n *\n * ```js\n * const commands = editor.Commands;\n * ```\n *\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');\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) =>\n em.trigger(`${name}:${cmdName}`, ...args)\n );\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(\n cmd => `core:${cmd[0]}` === id && cmd[2]\n )[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 = 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"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack://grapesjs/webpack/universalModuleDefinition","webpack://grapesjs/webpack/bootstrap","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/./node_modules/backbone/backbone.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://grapesjs/./src/utils/mixins.js","webpack://grapesjs/./node_modules/underscore/modules/_setup.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/view/ComponentView.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/typeof.js","webpack://grapesjs/./src/utils/dom.js","webpack://grapesjs/./src/selector_manager/model/Selector.js","webpack://grapesjs/./node_modules/cash-dom/dist/cash.esm.js","webpack://grapesjs/./src/selector_manager/model/Selectors.js","webpack://grapesjs/./node_modules/codemirror/lib/codemirror.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/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/createClass.js","webpack://grapesjs/./src/utils/Dragger.js","webpack://grapesjs/./src/domain_abstract/ui/Input.js","webpack://grapesjs/./src/style_manager/view/PropertiesView.js","webpack://grapesjs/./src/domain_abstract/view/DomainViews.js","webpack://grapesjs/./src/dom_components/model/Components.js","webpack://grapesjs/./src/commands/view/CommandAbstract.js","webpack://grapesjs/./src/domain_abstract/model/Styleable.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/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/PropertyIntegerView.js","webpack://grapesjs/./src/style_manager/view/PropertyColorView.js","webpack://grapesjs/./src/style_manager/model/PropertyRadio.js","webpack://grapesjs/./src/style_manager/model/PropertySelect.js","webpack://grapesjs/./src/style_manager/view/PropertySelectView.js","webpack://grapesjs/./src/style_manager/view/PropertyRadioView.js","webpack://grapesjs/./src/style_manager/model/PropertyInteger.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/./node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack://grapesjs/(webpack)/buildin/global.js","webpack://grapesjs/./src/commands/view/SelectPosition.js","webpack://grapesjs/./src/utils/fetch.js","webpack://grapesjs/./src/parser/model/ParserHtml.js","webpack://grapesjs/./src/domain_abstract/model/TypeableCollection.js","webpack://grapesjs/./src/code_manager/model/CssGenerator.js","webpack://grapesjs/./src/domain_abstract/ui/InputNumber.js","webpack://grapesjs/./src/css_composer/model/CssRules.js","webpack://grapesjs/./src/css_composer/model/CssRule.js","webpack://grapesjs/./src/dom_components/view/ComponentsView.js","webpack://grapesjs/./src/navigator/view/ItemView.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/domain_abstract/ui/InputColor.js","webpack://grapesjs/./src/utils/ColorPicker.js","webpack://grapesjs/./node_modules/keymaster/keymaster.js","webpack://grapesjs/./node_modules/promise-polyfill/src/index.js","webpack://grapesjs/./src/panels/model/Button.js","webpack://grapesjs/./src/panels/model/Buttons.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://grapesjs/./node_modules/codemirror/mode/css/css.js","webpack://grapesjs/./src/commands/view/CanvasClear.js","webpack://grapesjs/./src/commands/view/CanvasMove.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/commands/view/ShowOffset.js","webpack://grapesjs/./src/commands/view/SwitchVisibility.js","webpack://grapesjs/./src/navigator/config/config.js","webpack://grapesjs/./src/navigator/index.js","webpack://grapesjs/./node_modules/backbone-undo/Backbone.Undo.js","webpack://grapesjs/./node_modules/promise-polyfill/src/finally.js","webpack://grapesjs/./node_modules/promise-polyfill/src/allSettled.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://grapesjs/./src/keymaps/index.js","webpack://grapesjs/./src/undo_manager/index.js","webpack://grapesjs/./node_modules/timers-browserify/main.js","webpack://grapesjs/./node_modules/setimmediate/setImmediate.js","webpack://grapesjs/./node_modules/process/browser.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://grapesjs/./node_modules/codemirror/mode/htmlmixed/htmlmixed.js","webpack://grapesjs/./node_modules/codemirror/mode/xml/xml.js","webpack://grapesjs/./node_modules/codemirror/mode/javascript/javascript.js","webpack://grapesjs/./node_modules/codemirror-formatting/formatting.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://grapesjs/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://grapesjs/./src/navigator/view/ItemsView.js","webpack://grapesjs/./src/commands/view sync ^\\.\\/.*$","webpack://grapesjs/./src/dom_components/config/config.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/index.js","webpack://grapesjs/./src/utils/Droppable.js","webpack://grapesjs/./src/canvas/config/config.js","webpack://grapesjs/./src/canvas/model/Frame.js","webpack://grapesjs/./src/canvas/model/Frames.js","webpack://grapesjs/./src/canvas/model/Canvas.js","webpack://grapesjs/./src/canvas/view/FrameView.js","webpack://grapesjs/./src/canvas/view/FrameWrapView.js","webpack://grapesjs/./src/canvas/view/FramesView.js","webpack://grapesjs/./src/canvas/view/CanvasView.js","webpack://grapesjs/./src/canvas/index.js","webpack://grapesjs/./src/editor/config/config.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","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/AssetImageView.js","webpack://grapesjs/./src/asset_manager/view/AssetView.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/trait_manager/config/config.js","webpack://grapesjs/./src/trait_manager/view/TraitView.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/view/TraitsView.js","webpack://grapesjs/./src/trait_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/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/style_manager/config/config.js","webpack://grapesjs/./src/style_manager/model/PropertyFactory.js","webpack://grapesjs/./src/style_manager/model/Sector.js","webpack://grapesjs/./src/style_manager/model/Sectors.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/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/JsGenerator.js","webpack://grapesjs/./src/code_manager/model/CodeMirrorEditor.js","webpack://grapesjs/./src/code_manager/view/EditorView.js","webpack://grapesjs/./src/code_manager/index.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/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/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/selector_manager/config/config.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/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/utils/Sorter.js","webpack://grapesjs/./src/utils/Resizer.js","webpack://grapesjs/./src/utils/index.js","webpack://grapesjs/./src/i18n/locale/en.js","webpack://grapesjs/./src/i18n/config.js","webpack://grapesjs/./src/i18n/index.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/css_composer/config/config.js","webpack://grapesjs/./src/css_composer/index.js","webpack://grapesjs/./src/commands/config/config.js","webpack://grapesjs/./src/commands/index.js"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","restArguments","func","startIndex","length","Math","max","arguments","rest","Array","index","this","args","apply","isObject","obj","type","isNull","isUndefined","isBoolean","isElement","nodeType","tagTester","tag","isFunction","nodelist","document","childNodes","Int8Array","hasStringTagBug","DataView","ArrayBuffer","isIE11","Map","isDataView","getInt8","isArrayBuffer","buffer","has","isArguments","isSymbol","isNaN","parseFloat","isNumber","constant","createSizePropertyCheck","getSizeProperty","collection","sizeProperty","shallowProperty","typedArrayPattern","test","collectNonEnumProps","keys","hash","contains","push","emulatedSet","nonEnumIdx","constructor","proto","prop","isEmpty","isArray","isString","isMatch","attrs","_keys","_","_wrapped","toBufferView","bufferSource","Uint8Array","byteOffset","VERSION","valueOf","toJSON","toString","String","tagDataView","eq","a","b","aStack","bStack","deepEq","className","areArrays","aCtor","bCtor","pop","isEqual","allKeys","ie11fingerprint","methods","weakMapMethods","forEachName","hasName","commonInit","mapTail","mapMethods","concat","setMethods","values","pairs","invert","result","functions","names","sort","createAssigner","keysFunc","defaults","source","baseCreate","Ctor","props","extendOwn","clone","slice","extend","tap","interceptor","toPath","path","deepGet","defaultValue","identity","optimizeCb","context","argCount","accumulator","baseIteratee","Infinity","cb","iteratee","mapObject","results","currentKey","noop","propertyOf","times","accum","random","min","floor","Date","getTime","createEscaper","map","escaper","match","join","testRegexp","RegExp","replaceRegexp","string","replace","templateSettings","evaluate","interpolate","escape","noMatch","escapes","escapeRegExp","escapeChar","text","settings","oldSettings","render","matcher","offset","variable","Function","e","template","data","argument","fallback","idCounter","uniqueId","prefix","id","chain","instance","_chain","executeBound","sourceFunc","boundFunc","callingContext","self","partial","boundArgs","placeholder","bound","position","TypeError","callArgs","flatten","input","depth","strict","output","idx","j","len","Error","hasher","memoize","cache","address","wait","setTimeout","delay","throttle","options","timeout","previous","later","leading","now","throttled","_now","remaining","clearTimeout","trailing","cancel","debounce","immediate","debounced","callNow","wrap","wrapper","negate","predicate","compose","start","after","before","memo","findKey","createPredicateIndexFinder","dir","array","low","high","mid","createIndexFinder","predicateFind","sortedIndex","item","findIndex","findLastIndex","find","findWhere","each","createReduce","reducer","initial","filter","list","reject","every","some","fromIndex","guard","indexOf","contextPath","method","pluck","where","computed","lastComputed","v","sample","last","rand","temp","shuffle","sortBy","criteria","left","right","group","behavior","partition","pass","reStrSymbol","toArray","size","keyInObj","pick","first","compact","Boolean","otherArrays","difference","uniq","isSorted","seen","arrays","intersection","argsLength","unzip","range","stop","step","ceil","chunk","count","chainResult","mixin","global","$","Backbone","previousBackbone","noConflict","emulateHTTP","emulateJSON","addUnderscoreMethods","Class","attribute","defaultVal","unshift","addMethod","_isModel","modelMatcher","model","matches","attributes","Events","eventSplitter","eventsApi","events","callback","opts","split","on","internalOn","listening","_events","onApi","ctx","_listeners","listenTo","_listenId","listeningTo","_listeningTo","thisId","objId","handlers","off","offApi","listeners","stopListening","ids","handler","_callback","once","onceMap","listenToOnce","offer","trigger","triggerApi","objEvents","allEvents","all","triggerEvents","ev","a1","a2","a3","unbind","Model","cid","cidPrefix","parse","set","changed","initialize","validationError","idAttribute","sync","attr","val","_validate","unset","silent","changes","changing","_changing","_previousAttributes","current","prev","_pending","clear","hasChanged","changedAttributes","diff","old","previousAttributes","fetch","success","resp","serverAttrs","wrapError","save","validate","isNew","patch","xhr","destroy","defer","url","base","urlError","encodeURIComponent","isValid","error","omit","Collection","models","comparator","_reset","reset","setOptions","add","remove","merge","addOptions","splice","insert","at","tail","singular","removed","_removeModels","added","merged","toAdd","toMerge","toRemove","modelMap","sortable","sortAttr","existing","_prepareModel","_addReference","orderChanged","_removeReference","previousModels","shift","_byId","modelId","callbackOpts","_onModelEvent","event","prevId","forEach","collect","reduce","foldl","inject","reduceRight","foldr","detect","select","any","include","includes","invoke","head","take","drop","without","lastIndexOf","groupBy","countBy","indexBy","View","viewOptions","_ensureElement","delegateEventSplitter","tagName","selector","$el","_removeElement","setElement","element","undelegateEvents","_setElement","delegateEvents","el","delegate","eventName","listener","undelegate","_createElement","createElement","_setAttributes","methodMap","params","dataType","contentType","JSON","stringify","_method","beforeSend","setRequestHeader","processData","textStatus","errorThrown","ajax","Router","routes","_bindRoutes","optionalParam","namedParam","splatParam","route","isRegExp","_routeToRegExp","router","history","fragment","_extractParameters","execute","navigate","optional","exec","param","decodeURIComponent","History","checkUrl","location","routeStripper","rootStripper","pathStripper","started","interval","atRoot","pathname","getSearch","matchRoot","decodeFragment","decodeURI","href","getHash","getPath","charAt","getFragment","_usePushState","_wantsHashChange","hashChange","_hasHashChange","documentMode","_useHashChange","_wantsPushState","pushState","_hasPushState","rootPath","iframe","src","style","display","tabIndex","body","iWindow","insertBefore","firstChild","contentWindow","open","close","addEventListener","attachEvent","_checkUrlInterval","setInterval","loadUrl","removeEventListener","detachEvent","removeChild","clearInterval","title","assign","_updateHash","protoProps","staticProps","child","parent","__super__","configurable","writable","elProt","Element","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","appendStyles","styles","stls","unique","querySelector","link","rel","prepand","appendChild","shallowDiff","objOrig","objNew","keysNew","origValue","newValue","fn","elem","getUnitFromValue","upFirst","toUpperCase","toLowerCase","camelCase","normalizeFloat","valueDef","stepDecimals","side","toFixed","hasDnd","em","nativeDnD","getElement","isTextNode","getEl","isTaggableNode","isCommentNode","getModel","getElRect","rectText","def","top","width","height","createRange","selectNode","getBoundingClientRect","detach","getPointerEvent","touches","getKeyCode","which","keyCode","getKeyChar","fromCharCode","isEscKey","isEmptyObj","capitalize","str","substring","isComponent","toHTML","isRule","toCSS","getViewEl","__gjsv","setViewEl","view","ArrayProto","ObjProto","SymbolProto","supportsArrayBuffer","supportsDataView","nativeIsArray","nativeKeys","nativeCreate","nativeIsView","isView","_isNaN","_isFinite","isFinite","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","MAX_ARRAY_INDEX","pow","label","unit","target","default","changeProp","targetEvent","targetUpdated","getTargetValue","fromTarget","getAttributes","setTargetValue","valueToSet","setValueFromInput","final","toSet","avoidStore","getInitValue","Trait","coll","handleAdd","handleReset","setTarget","opt","tm","tf","config","build","objs","optionsTarget","TraitFactory","getConfig","avoidInline","eventDrag","keySymbols","keySymbol","Component","Styleable","removable","draggable","droppable","badgable","stylable","unstylable","highlightable","copyable","resizable","editable","layerable","selectable","hoverable","void","state","status","content","icon","classes","script","traits","propagate","dmode","toolbar","init","updated","bindAll","parentAttr","newAttr","toPropagate","voidElements","frame","ccid","createId","initClasses","initTraits","initComponents","initToolbar","initScriptProps","scriptUpdated","tagUpdated","attrUpdated","_idUpdated","__emitUpdateTlb","views","trim","emitUpdate","temporary","__isSymbolOrInst","__initSymb","is","setDragMode","query","$els","findType","components","closest","closestType","component","replaceWith","class","setClass","setStyle","attrPrev","pr","setAttributes","addAttributes","noClass","removeAttributes","attrArr","compAttr","getStyle","rule","getIdRule","getId","parseStyle","cc","propOrig","setIdRule","hasStyle","sm","cls","Selector","TYPE_ID","addClass","removeClass","selectors","TYPE_CLASS","classe","getClasses","classStr","__logSymbol","toUp","symbol","__getSymbol","symbols","__getSymbols","log","__symbReady","__upSymbProps","__isSymbol","__isSymbolTop","__getAllById","allById","symb","ref","symbs","__getSymbToUp","symbEnabled","fromInstance","md","prevColl","__getSymbTop","__upSymbCls","__upSymbComps","toUpOpts","isTemp","addedInstances","isMainSymb","addSymb","symbTop","toAppend","addedInst","addedTop","symbolInv","append","toUpInst","inst","newMods","mod","attrCls","toListen","clsArr","normalizeClasses","Selectors","comps","Components","addChild","avoidChildren","loadTraits","trait","prevProps","newProps","prevPropsEv","newPropsEv","__scriptPropsChange","compArr","comp","empty","ppfx","tb","command","ed","runCommand","force","Traits","trt","tr","getTrait","updateTrait","getTraitIndex","removeTrait","addTrait","arr","res","clm","cssc","_inner","cloned","newId","rulesToClone","getRules","newRule","getAll","getName","cName","isDiv","defName","nameTag","i18nPfx","i18nName","i18nNameTag","i18nDefName","getIcon","customTag","sTag","customAttr","getAttrToHTML","attrString","code","keepSymbols","getChangedProps","setId","getView","_getFrame","getCurrentView","__getScriptProps","modelProps","acc","getScriptString","scr","scrStr","tagVarStart","tagVarEnd","reg","onAll","clb","rmOpts","abort","move","resetId","oldId","_getStyleRule","idS","_getStyleSelector","idUpdate","idPrev","getList","ensureInList","nextId","getIncrementId","getNewId","ilen","uid","keepIds","counter","domc","componentsById","checkId","sel","modelOpt","draggableComponents","pfx","stylePrefix","pStylePrefix","updateStyle","renderAttributes","updateHighlight","updateStatus","updateContent","handleChange","onActive","onDisable","avoidRender","__isDraggable","dragstart","_clbObj","_innertext","editor","getEditor","frameM","childrenView","scriptContainer","handleDragStart","preventDefault","stopPropagation","run","updateClasses","importClasses","renderChildren","chgArr","selectedCls","selectedParentCls","freezedCls","hoveredCls","actualCls","getAttribute","avoidHover","setAttribute","hl","removeAttribute","styleToString","removeAttr","updateAttributes","textable","defaultAttr","contenteditable","nodeName","hasComps","getChildrenContainer","innerHTML","prevDef","updateScript","getCanvasView","container","getChildrenSelector","getTemplate","getOffsetRect","rect","gtop","gleft","assignRect","offsetParent","offsetTop","offsetLeft","bottom","offsetHeight","offsetWidth","isInViewport","elDoc","ownerDocument","frameElement","defaultView","scrollTop","scrollLeft","scrollBottom","scrollIntoView","scrollTo","block","_setData","frameView","ComponentsView","componentTypes","onAttrUpdate","postRender","onRender","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","_typeof","iterator","KEY_TAG","KEY_ATTR","motionsEv","isDoc","isVisible","getClientRects","node","oldEl","newEl","parentNode","replaceChild","appendAtIndex","total","insertAdjacentHTML","lastChild","createEl","createCustomEvent","oEvent","createEvent","initEvent","keyCodeVal","_parentEvent","appendVNodes","vNodes","vNodesArr","vnode","active","private","protected","namePreEsc","escapeName","nameEsc","isId","isClass","getFullName","objLen","doc","win","_Array$prototype","reverse","idRe","classRe","htmlRe","tagRe","getElementsByClassName","getElementsByTagName","querySelectorAll","Cash","__cash","eles","getElementById","parseHTML","ready","cash","undefined","ele","camelCaseRe","camelCaseWhitespaceRe","letter","removeProp","guid","oMatchesSelector","x","isNumeric","getCompareFunction","splitValuesRe","getSplitValues","computeStyle","isVariable","getComputedStyle","getPropertyValue","computeStyleInt","parseInt","hasClass","check","classList","_value","toggleClass","isForce","toggle","cssVariableRe","isCSSVariable","prefixedProps","vendorsPrefixes","getPrefixedProp","propCC","propUC","prefixedProp","numericProps","animationIterationCount","columnCount","flexGrow","flexShrink","fontWeight","lineHeight","opacity","order","orphans","widows","zIndex","getSuffixedValue","css","setProperty","dataNamespace","dataAttributeRe","getDataCache","getData","dataset","getExtraSpace","xAxis","hasNamespaces","ns1","ns2","removeEventListeners","_ref","hasData","_this","setData","removeData","boxSizing","includeMargins","eventsNamespace","eventsNamespacesSeparator","getEventsCache","parseEventName","parts","removeEvent","namespaces","eventCache","_ref2","eventFullName","_this2","_parseEventName","_one","_this3","_parseEventName2","finalCallback","namespace","thisArg","returnValue","addEvent","one","readyState","evt","_parseEventName3","dispatchEvent","selectOneRe","selectMultipleRe","getValue","selectedIndex","getValueSelectSingle","option","selected","disabled","getValueSelectMultiple","queryEncodeSpaceRe","skippableRe","checkableRe","serialize","elements","checked","queryEncode","substr","isMultiple","eleValue","cloneNode","containers","fragmentRe","singleTagRe","html","table","td","th","thead","tbody","tfoot","initContainers","$1","insertContent","prepend","isStr","insertElement","_this4","appendTo","outerHTML","insertAfter","_this5","nextSibling","_this6","_this7","_this8","_this9","prependTo","_this10","$eles","replaceAll","textContent","docEle","documentElement","pageYOffset","clientTop","pageXOffset","clientLeft","children","contents","contentDocument","found","next","nextElementSibling","not","parents","previousElementSibling","siblings","getStyleable","getValid","noDisabled","getFullString","userAgent","navigator","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","Number","flipCtrlCmd","captureRightClick","classTest","rmClass","removeChildren","removeChildrenAndAdd","elt","cssText","createTextNode","eltP","host","activeElt","activeElement","shadowRoot","joinClasses","as","end","endNode","setEnd","setStart","createTextRange","moveToElementText","collapse","moveEnd","moveStart","selectInput","f","copyObj","overwrite","countColumn","tabSize","startValue","search","nextTab","selectionStart","selectionEnd","_e","Delayed","time","onTimeout","ms","scrollerGap","Pass","sel_dontScroll","scroll","sel_mouse","origin","sel_move","findColumn","goal","pos","col","skipped","spaceStrs","spaceStr","lst","out","nothing","createObj","nonASCIISingleCaseWordChar","isWordCharBasic","ch","isWordChar","helper","extendingChars","isExtendingChar","charCodeAt","skipExtendingChars","findFirst","pred","from","to","midF","bidiOther","getBidiPartAt","sticky","cur","bidiOrdering","lowTypes","arabicTypes","bidiRE","isNeutral","isStrong","countsAsLeft","countsAsNum","BidiSpan","level","direction","outerType","types","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","line","noHandlers","emitter","_handlers","getHandlers","signal","signalDOMEvent","cm","override","defaultPrevented","e_defaultPrevented","codemirrorIgnore","signalCursorActivity","cursorActivity","curOp","cursorActivityHandlers","hasHandler","eventMixin","ctor","e_preventDefault","e_stopPropagation","cancelBubble","e_stop","e_target","srcElement","e_button","button","ctrlKey","zwspSupported","badBidiRects","dragAndDrop","div","zeroWidthElement","measure","hasBadBidiRects","txt","r0","r1","splitLinesAuto","nl","rt","hasSelection","getSelection","te","selection","parentElement","compareEndPoints","hasCopyEvent","oncopy","badZoomedRects","modes","mimeModes","defineMode","dependencies","resolveMode","spec","getMode","mfactory","modeObj","modeExtensions","exts","helperType","modeProps","prop$1","extendMode","properties","copyState","nstate","innerMode","info","startState","StringStream","lineOracle","lastColumnPos","lastColumnValue","lineStart","getLine","lines","sz","chunkSize","getBetween","iter","getLines","updateLineHeight","lineNo","no","lineAtHeight","h","outer","lh","isLine","lineNumberFor","lineNumberFormatter","firstLineNumber","Pos","cmp","equalCursorPos","copyPos","maxPos","minPos","clipLine","clipPos","linelen","clipToLen","clipPosArray","eol","sol","peek","eat","eatWhile","eatSpace","skipToEnd","skipTo","backUp","column","indentation","pattern","consume","caseInsensitive","cased","hideFirstChars","inner","lookAhead","oracle","baseToken","SavedContext","Context","maxLookAhead","baseTokens","baseTokenPos","highlightLine","forceToEnd","st","modeGen","lineClasses","runMode","loop","overlay","overlays","i_end","opaque","bgClass","textClass","getLineStyles","updateFrontier","getContextBefore","resetState","maxHighlightLength","stateAfter","styleClasses","highlightFrontier","modeFrontier","precise","minindent","minline","lim","indented","findStartLine","saved","fromSaved","processLine","viewFrom","viewTo","nextLine","startAt","stream","callBlankLine","readToken","blankLine","token","copy","Token","takeToken","asArray","tokens","extractLineClasses","lineClass","flattenSpans","curStart","curStyle","addModeClass","mName","sawReadOnlySpans","sawCollapsedSpans","MarkedSpan","marker","getMarkedSpanFor","spans","span","removeMarkedSpan","stretchSpansOverChange","change","full","oldFirst","markedSpans","oldLast","startCh","endCh","isInsert","nw","inclusiveLeft","insertLeft","endsAfter","inclusiveRight","markedSpansBefore","startsBefore","markedSpansAfter","sameLine","span$1","clearEmptySpans","newMarkers","gapMarkers","gap","clearWhenEmpty","detachMarkedSpans","detachLine","attachMarkedSpans","attachLine","extraLeft","extraRight","compareCollapsedMarkers","lenDiff","aPos","bPos","fromCmp","toCmp","collapsedSpanAtSide","sps","sp","collapsed","collapsedSpanAtStart","collapsedSpanAtEnd","collapsedSpanAround","conflictingCollapsedRange","visualLine","visualLineNo","lineN","vis","visualLineEndNo","lastLine","lineIsHidden","widgetNode","lineIsHiddenInner","heightAtLine","lineObj","lineLength","found$1","findMaxLine","maxLine","maxLineLength","maxLineChanged","Line","estimateHeight","cleanUpLine","styleToClassCache","styleToClassCacheWithMode","interpretTokenStyle","buildLineContent","lineView","builder","pre","trailingSpace","splitSpaces","getOption","addToken","buildToken","buildTokenBadBidi","insertLineContent","externalMeasured","maps","caches","defaultSpecialCharPlaceholder","startStyle","endStyle","displayText","trailingBefore","spaceBefore","special","specialChars","mustWrap","createDocumentFragment","lastIndex","txt$1","tabWidth","specialCharPlaceholder","fullStyle","part","buildCollapsedSpan","ignoreWidget","widget","needsContentAttribute","setUneditable","allText","spanStyle","spanEndStyle","spanStartStyle","nextChange","foundBookmarks","endStyles","upto","tokenText","LineView","visualLineContinued","hidden","buildViewArray","nextPos","operationGroup","orphanDelayedCallbacks","signalLater","delayedCallbacks","fireOrphanDelayed","delayed","updateLineForChanges","dims","updateLineText","updateLineGutter","updateLineClasses","updateLineWidgets","ensureLineWrapped","getLineContent","ext","built","background","updateLineBackground","wrapClass","gutter","gutterBackground","gutterClass","fixedGutter","fixedPos","gutterTotalWidth","markers","gutterMarkers","lineNumbers","wrap$1","gutterWrap","lineNumber","gutterLeft","k","gutterSpecs","gutterWidth","alignable","isWidget","insertLineWidgets","buildLineElement","insertLineWidgetsFor","allowAbove","widgets","ws","handleMouseEvents","positionLineWidget","above","noHScroll","wrapperWidth","coverGutter","paddingLeft","marginLeft","widgetHeight","parentStyle","gutters","clientWidth","eventInWidget","sizer","mover","paddingTop","lineSpace","paddingVert","paddingH","cachedPaddingH","currentStyle","paddingRight","scrollGap","nativeBarWidth","displayWidth","scroller","barWidth","displayHeight","clientHeight","barHeight","mapFromLineView","measureChar","bias","measureCharPrepared","prepareMeasureForLine","findViewForLine","findViewIndex","getDimensions","forceUpdate","lineMeasure","updateExternalMeasurement","hasHeights","prepared","varHeight","wrapping","lineWrapping","curWidth","heights","rects","abs","ensureLineHeights","place","nodeAndOffsetInLineMap","coverStart","coverEnd","getUsefulRect","screen","logicalXDPI","deviceXDPI","normal","fromRange","hasBadZoomedRects","scaleX","scaleY","logicalYDPI","deviceYDPI","maybeUpdateRectForZooming","rSpan","charWidth","nullRect","rtop","rbot","bot","bogus","singleCursorHeightPerLine","rbottom","measureCharInner","measureText","mStart","mEnd","clearLineMeasurementCacheFor","clearLineMeasurementCache","externalMeasure","clearCaches","cachedCharWidth","cachedTextHeight","lineNumChars","pageScrollX","pageScrollY","marginTop","widgetTopHeight","intoCoordSystem","includeWidgets","yOff","viewOffset","lOff","xOff","fromCoordSystem","coords","localBox","lineSpaceBox","charCoords","cursorCoords","preparedMeasure","getBidi","partPos","other","estimateCoords","PosWithInfo","outside","xRel","coordsChar","y","coordsCharInner","rangeEnd","wrappedLineExtent","begin","wrappedLineExtentChar","boxIsAfter","box","ltr","coordsBidiPartWrapped","coordsBidiPart","baseX","chAround","boxAround","atLeft","atStart","_lineNo","closestDist","endX","dist","textHeight","anchor","compensateForHScroll","perLine","widgetsHeight","estimateLineHeights","est","estHeight","posFromMouse","liberal","forRect","space","clientX","clientY","e$1","colDiff","round","regChange","lendiff","updateLineNumbers","viewChanged","resetView","cut","viewCuttingPoint","cut$1","cutTop","cutBot","regLineChange","oldN","newN","countDirtyView","dirty","updateSelection","showSelection","prepareSelection","primary","curFragment","cursors","selFragment","ranges","primIndex","showCursorWhenSelecting","drawSelectionCursor","drawSelectionRange","cursor","cursorHeight","otherCursor","cmpCoords","padding","leftSide","rightSide","sizerWidth","docLTR","drawForLine","fromArg","toArg","lineLen","wrapX","extent","iterateBidiSections","fromPos","toPos","openStart","openEnd","openRight","topLeft","topRight","botLeft","botRight","sFrom","sTo","fromLine","toLine","singleVLine","leftEnd","rightStart","restartBlink","focused","blinker","cursorDiv","visibility","cursorBlinkRate","hasFocus","onBlur","ensureFocus","focus","onFocus","delayBlurEvent","delayingBlurEvent","draggingText","readOnly","selForContextMenu","receivedFocus","updateHeightsInViewport","prevBottom","lineDiv","updateWidgetHeight","chWidth","w","visibleLines","viewport","ensure","ensureFrom","ensureTo","calculateScrollPos","snapMargin","screentop","docBottom","atTop","atBottom","newTop","gutterSpace","screenleft","screenw","tooWide","addToScrollTop","resolveScrollToPos","ensureCursorVisible","getCursor","scrollToPos","margin","cursorScrollMargin","scrollToCoords","scrollToCoordsRange","sPos","updateScrollTop","updateDisplaySimple","setScrollTop","startWorker","forceScroll","scrollHeight","scrollbars","setScrollLeft","isScroller","scrollWidth","alignHorizontally","measureForScrollbars","gutterW","docH","viewHeight","viewWidth","barLeft","docHeight","NativeScrollbars","vert","horiz","checkedZeroWidth","minHeight","minWidth","update","needsH","needsV","sWidth","totalHeight","totalWidth","zeroWidthHack","disableHoriz","enableZeroWidthBar","disableVert","pointerEvents","bar","maybeDisable","elementFromPoint","NullScrollbars","updateScrollbars","startWidth","startHeight","updateScrollbarsInner","sizes","paddingBottom","heightForcer","borderBottom","scrollbarFiller","coverGutterNextToScrollbar","gutterFiller","scrollbarModel","initScrollbars","scrollbarStyle","axis","nextOpId","startOperation","op","updateInput","typing","changeObjs","cursorActivityCalled","selectionChanged","updateMaxLine","ops","ownsGroup","endOperation","endCb","callbacks","fireCallbacksForOps","finishOperation","endOperation_R1","endOperation_W1","endOperation_R2","endOperation_W2","endOperation_finish","endOperations","scrollbarsClipped","marginBottom","borderRightWidth","maybeClipScrollbars","mustUpdate","DisplayUpdate","updatedDisplay","updateDisplayIfNeeded","barMeasure","adjustWidthTo","maxScrollLeft","preparedSelection","takeFocus","setDocumentHeight","postUpdateDisplay","wheelStartX","wheelStartY","doScroll","innerHeight","scrollNode","maybeScrollWindow","limit","endCoords","scrollPos","startTop","startLeft","scrollPosIntoView","maybeHiddenMarkers","unhidden","maybeUnhiddenMarkers","finish","runInOp","operation","methodOp","docMethodOp","highlight","highlightWorker","workTime","changedLines","oldStyles","highlighted","oldCls","newCls","ischange","workDelay","visible","editorIsHidden","wrapperHeight","oldDisplayWidth","renderedView","maybeUpdateLineNumberWidth","viewportMargin","different","lastWrapHeight","lastWrapWidth","adjustView","toUpdate","selSnapshot","anchorNode","anchorOffset","focusNode","focusOffset","selectionSnapshot","updateNumbersFrom","rm","currentWheelTarget","updateNumber","patchDisplay","snapshot","removeAllRanges","addRange","restoreSelection","selectionDiv","reportedViewFrom","reportedViewTo","updateGutterSpace","alignWidgets","align","innerW","lineGutter","lineNumInnerWidth","lineNumWidth","getGutters","sawLineNumbers","renderGutters","specs","gElt","updateGutters","Display","wheelDX","wheelDY","activeTouch","wheelSamples","wheelPixelsPerUnit","wheelEventDelta","dx","wheelDeltaX","dy","wheelDeltaY","detail","HORIZONTAL_AXIS","VERTICAL_AXIS","wheelDelta","wheelEventPixels","delta","onScrollWheel","canScrollX","canScrollY","pixels","movedX","movedY","Selection","equals","here","there","deepCopy","Range","somethingSelected","normalizeSelection","mayTouch","selectionsMayTouch","prim","inv","simpleSelection","changeEnd","adjustForChange","computeSelAfterChange","offsetPos","loadMode","modeOption","resetModeState","isWholeLineUpdate","wholeLineUpdateBefore","updateDoc","spansFor","updateLine","linesFor","firstLine","lastText","lastSpans","nlines","added$1","added$2","linkedDocs","sharedHistOnly","skip","sharedHist","linked","shared","attachDoc","setDirectionClass","startGen","done","undone","undoDepth","lastModTime","lastSelTime","lastOp","lastSelOp","lastOrigin","lastSelOrigin","generation","maxGeneration","historyChangeFromChange","histChange","attachLocalSpans","clearSelectionEvents","addChangeToHistory","selAfter","opId","hist","historyEventDelay","lastChangeEvent","pushSelectionToHistory","addSelectionToHistory","selectionEventCanBeMerged","clearRedo","dest","removeClearedSpans","explicitlyCleared","mergeOldSpans","getOldSpans","stretched","oldCur","stretchCur","copyHistoryArray","newGroup","instantiateSel","newChanges","extendRange","posBefore","extendSelection","setSelection","extendSelections","heads","replaceOneSelection","setSimpleSelection","setSelectionReplaceHistory","setSelectionNoUndo","NaN","filterSelectionChange","setSelectionInner","skipAtomicInSelection","reCheckSelection","mayClear","newAnchor","skipAtomic","newHead","skipAtomicInner","oldPos","preventCursorLeft","selectLeft","preventCursorRight","selectRight","atomic","near","movePos","far","cantEdit","selectAll","filterChange","canceled","makeChange","ignoreReadOnly","suppressEdits","mark","mk","newParts","dfrom","dto","removeReadOnlyRanges","makeChangeInner","makeChangeSingleDoc","rebased","rebaseHist","makeChangeFromHistory","allowSelectionOnly","suppress","antiChanges","returned","shiftDoc","distance","recomputeMaxLength","checkWidthStart","retreatFrontier","changesHandler","changeHandler","makeChangeSingleDocInEditor","replaceRange","splitLines","rebaseHistSelSingle","rebaseHistArray","sub","ok","copied","changeLine","handle","changeType","LeafChunk","BranchChunk","removeInner","insertInner","iterN","oldHeight","leaf","maybeSpill","me","sibling","myIndex","used","LineWidget","adjustScrollWhenAboveVisible","this$1","oldH","nextMarkerId","TextMarker","markText","isParent","SharedTextMarker","markTextShared","replacedWith","addToHistory","curLine","addMarkedSpan","clearOnEnter","clearHistory","withOp","visual","dHeight","findSharedMarkers","findMarks","detachSharedMarkers","subMarker","nextDocId","Doc","lineSep","cleanGeneration","lineSeparator","setValue","getRange","getLineHandle","getLineNumber","getLineHandleVisualStart","lineCount","listSelections","setCursor","extendSelectionsBy","setSelections","addSelection","getSelections","replaceSelection","dup","replaceSelections","newSel","hint","oldPrev","newPrev","computeReplacedSel","undo","redo","undoSelection","redoSelection","setExtending","getExtending","historySize","markClean","changeGeneration","forceSplit","isClean","gen","getHistory","setHistory","histData","setGutterMarker","gutterID","clearGutter","lineInfo","addLineClass","removeLineClass","addLineWidget","insertAt","aboveVisible","removeLineWidget","setBookmark","realOpts","findMarksAt","getAllMarks","posFromIndex","sepSize","indexFromPos","copyHistory","linkedDoc","mFrom","mTo","subMark","copySharedMarkers","unlinkDoc","CodeMirror","splitIds","iterLinkedDocs","setDirection","eachLine","lastDrop","onDrop","clearDragCursor","files","dataTransfer","isReadOnly","FileReader","File","read","markAsReadAndPasteIfAllFilesAreRead","readTextFromFile","file","allowDropFileTypes","reader","onerror","onload","readAsText","text$1","dragCursor","forEachCodeMirror","byClass","editors","globalsRegistered","ensureGlobalHandlers","resizeTimer","onResize","setSize","keyNames","3","8","9","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","44","45","46","59","61","91","92","93","106","107","109","110","111","145","173","186","187","188","189","190","191","192","219","220","221","222","224","63232","63233","63234","63235","63272","63273","63275","63276","63277","63302","keyMap","normalizeKeyName","alt","ctrl","cmd","normalizeKeyMap","keymap","keyname","lookupKey","getKeyMap","fallthrough","isModifierKey","addModifierNames","noShift","altKey","metaKey","shiftKey","keyName","altGraphKey","deleteNearSelection","compute","kill","toKill","replaced","moveCharLogically","moveLogically","endOfLine","visually","prep","targetTop","basic","pcDefault","emacsy","macDefault","commands","singleSelection","killLine","deleteLine","delLineLeft","delWrappedLineLeft","delWrappedLineRight","rightPos","goDocStart","goDocEnd","goLineStart","goLineStartSmart","lineStartSmart","goLineEnd","visualLineEnd","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","execCommand","transposeChars","newlineAndIndent","sels","indentLine","openLine","toggleOverwrite","firstNonWS","inWS","doHandleBinding","dropShift","ensurePolled","prevShift","stopSeq","dispatchKey","seq","keySeq","dispatchKeyInner","keyMaps","extraKeys","lookupKeyForEditor","handleKeyBinding","motion","lastStoppedKey","onKeyDown","getField","handled","up","showCrossHair","onKeyUp","onKeyPress","charCode","handleCharBinding","lastClick","lastDoubleClick","DOUBLECLICK_DELAY","PastClick","onMouseDown","supportsTouch","clickInGutter","repeat","compare","clickRepeat","selectingText","handleMappedButton","contained","addNew","moveOnDrag","configureMouse","dragDrop","moved","dragEnd","mouseMove","dragStart","preventScroll","e2","leftButtonStartDrag","ourRange","ourIndex","startSel","rangeForUnit","lastPos","extendTo","startCol","posCol","leftPos","oldRange","ranges$1","anchorLine","boundary","headIndex","usePart","bidiSimplify","editorSize","buttons","curCount","leftButtonSelect","leftButtonDown","onContextMenu","findWordAt","gutterEvent","prevent","mX","mY","lineBox","g","contextMenuInGutter","themeChanged","theme","Init","optionHandlers","dragDropChanged","funcs","dragFunctions","enter","over","leave","wrappingChanged","inputStyles","inputStyle","pasteIncoming","cutIncoming","autofocus","word","touchFinished","prevTouch","finishTouch","farAway","touch","radiusX","radiusY","isMouseLikeTouchEvent","pageX","pageY","frag","onDragOver","effectAllowed","setDragImage","img","_top","onDragStart","inp","registerEventHandlers","finishInit","initHooks","textRendering","how","aggressive","indent","curSpace","curSpaceString","indentUnit","indentString","indentWithTabs","pos$1","defineInitHook","lastCopied","setLastCopied","newLastCopied","applyTextInput","inserted","deleted","recent","paste","textLines","multiPaste","pasteLinesPerSelection","lineWise","changeEvent","triggerElectric","handlePaste","pasted","clipboardData","disableInput","electricChars","smartIndent","getModeAt","electricInput","copyableRanges","lineRange","disableBrowserMagic","field","spellcheck","autocorrect","autocapitalize","hiddenTextarea","border","findPosH","origDir","lineDir","moveOnce","boundToLine","astral","bidi","mv","getWrappedLineExtent","moveInStorageOrder","searchInVisualLine","getRes","nextCh","moveVisually","sawType","getHelper","hitSide","findPosV","pageSize","moveAmount","ContentEditableInput","lastAnchorNode","lastAnchorOffset","lastFocusNode","lastFocusOffset","polling","composing","gracePeriod","readDOMTimeout","posToDOM","badPos","bad","domToPos","lineNode","locateNodeInLineView","textNode","topNode","nodeValue","curNode","previousSibling","dist$1","belongsToInput","onCopyCut","lineWiseCopyCut","clearData","kludge","hadFocus","showPrimarySelection","updateFromDOM","readFromDOMSoon","forceCompositionEnd","screenReaderLabelChanged","showMultipleSelections","curAnchor","curFocus","rng","rangeCount","getRangeAt","startGracePeriod","rememberSelection","selectionInEditor","commonAncestorContainer","blur","pollSelection","pollInterval","poll","scan","isInGutter","triggerOnKeyDown","pollContent","fromNode","toNode","toIndex","newText","closing","extraLinebreak","addText","walk","cmText","markerID","isBlock","domTextBetween","oldText","cutFront","cutEnd","oldTop","maxCutFront","newBot","oldBot","maxCutEnd","chFrom","chTo","contentEditable","readOnlyChanged","resetPosition","TextareaInput","prevInput","pollingFast","createField","textarea","prepareCopyCut","fastPoll","Event","_display","moveInputWithCursor","headPos","wrapOff","lineOff","teTop","teLeft","drawn","contextMenuPending","slowPoll","missed","same","resetSelectionOnContextMenu","oldScrollY","oldCSS","oldWrapperCSS","wrapperBox","scrollY","rehide","detectingSelectAll","prepareSelectAllHack","mouseup","extval","deflt","notOnInit","defineOption","newBreaks","refresh","getInputField","attach","integer","defineOptions","helpers","setOption","getDoc","addKeyMap","removeKeyMap","addOverlay","score","priority","insertSorted","modeSpec","removeOverlay","newRanges","getTokenAt","getLineTokens","getTokenTypeAt","getHelpers","help","_global","getStateAfter","defaultTextHeight","defaultCharWidth","getViewport","addWidget","vspace","hspace","triggerOnKeyPress","triggerOnKeyUp","triggerOnMouseDown","amount","rtlMoveVisually","goalColumn","goals","startChar","getScrollInfo","scrollToRange","interpret","swapDoc","phrase","phraseText","phrases","getWrapperElement","getScrollerElement","getGutterElement","registerHelper","registerGlobalHelper","addEditorMethods","dontDelegate","defineMIME","mime","defineExtension","defineDocExtension","fromTextArea","tabindex","realSubmit","form","leaveSubmitMethodAlone","submit","wrappedSubmit","getTextArea","toTextArea","cmpPos","addLegacyProps","version","mousedown","handleClick","Canvas","getFrameEl","calibrated","DomainViews","itemView","ToolbarButtonView","ToolbarButton","showOffsets","enable","frameOff","canvasOff","adjScroll","startSelectComponent","toggleSelectComponent","getSelected","onSelect","stopSelectComponent","listenToEl","getContainer","onFrameUpdated","onContainerChange","onHovered","updateGlobalPos","_upToolbar","updateAttached","getFrames","getWindow","getBody","onHover","onOut","onClick","onFrameScroll","trg","currentDoc","setHovered","updateLocalPos","getElementPos","updateToolsLocal","elHovered","canvas","getToolsEl","toggleToolsEl","currentFrame","elSelected","updateToolsGlobal","initResize","getElSelected","getElHovered","showElementOffset","elPos","hideElementOffset","stopCommand","showFixedElementOffset","hideFixedElementOffset","hideHighlighter","getHighlighter","updateBadge","badge","getBadge","posOnly","clsBadge","customeLabel","customBadgeLabel","badgeLabel","un","bStyle","badgeH","posTop","topOff","leftOff","showHighlighter","modelToStyle","resizeClass","toggleBodyClass","docs","onStart","resizer","keyHeight","keyWidth","currentUnit","keepAutoHeight","keepAutoWidth","getModelToStyle","toggleFramesEvents","computedStyle","modelStyle","currentWidth","autoWidth","currentHeight","autoHeight","startDim","unitHeight","unitWidth","onMove","onEnd","updateTarget","store","selectedHandler","onlyHeight","onlyWidth","en","bodyw","addStyle","updateEvent","eventToListen","noEmit","updateToolbar","toolbarEl","getToolbarEl","toolbarStyle","showToolbar","Toolbar","toolbarView","ToolbarView","updateToolbarPos","getCanvasPosition","getPosition","getBadgeEl","updateTools","isCompSelected","isHoverEn","isNewEl","lastHovered","badgeOpts","canvasRectOffset","lastSelected","targetToElem","getTargetToElementFixed","canvasOffsetTop","canvasOffsetLeft","refreshCanvas","hideBadge","cleanPrevious","getContentWindow","sender","preserveSelected","setSelected","Constructor","_defineProperties","descriptor","Dragger","onDrag","setPosition","guidesStatic","guidesTarget","snapOffset","scale","getDocumentEl","getContainerEl","getWindowEl","drag","keyHandle","handleScroll","lastScroll","actualScroll","scrollDiff","lastScrollDiff","toggleDrag","startPointer","getPointerPos","startPosition","getStartPosition","globScrollDiff","currentPos","glDiff","lockedAxis","detectAxisLock","moveDelta","co","deltaPre","currentPointer","snapGuides","newDelta","trgX","trgY","stat","isY","axs","trgPoint","statPoint","deltaPoint","trgGuide","isPointIn","trgValue","setGuideLock","lock","ofst","guide","trgName","cancelled","xPos","yPos","parentWindow","getPos","getPointerPosition","pEv","relX","relY","absX","absY","holderClass","inputClass","handleModelChange","elementUpdated","getInputEl","fromInput","inputEl","plh","propTarget","onChange","onInputRender","customValue","addTo","typeView","rendered","updateVisibility","clearItems","itemsView","itemType","autoAdd","items","itemViewNotFound","warn","logWarning","reuseView","typeField","getIdsToKeep","getNewIds","onAdd","resetChildren","newIds","allByID","rules","canRemoveStyle","rulesRemoved","getSelectors","hasSign","optStyle","it","um","df","parseString","parsed","parseHtml","addCollection","nodes","isMult","processDef","__firstAdd","mdl","processor","modelPr","$$typeof","parserHtml","splitPropsFromAttr","getType","setClassRule","__onAddEnd","editorModel","hoverClass","badgeClass","plhClass","freezClass","getCanvas","$canvas","canvasTool","getCanvasTools","getCanvasBody","getCanvasWrapper","getWrapperEl","callRun","callStop","ParserHtml","extendStyle","propNew","removeStyle","imp","important","propPrv","getSelectorsString","selectorsToString","Property","functionName","fixedValues","toRequire","requires","requiresParent","callInit","clearValue","complete","parseValue","valueStr","numeric","num","splitValues","separator","cl","curr","getDefaultValue","getFullValue","hasValue","fnParameter","callParentInit","skipInit","detached","Properties","require","updateValues","getSplitSeparator","defaultProps","getPropertyAt","preview","prp","onPropAdd","Layer","onReset","noIncrement","getSeparator","getLayersFromValue","layers","cleaned","layerValue","getLayersFromStyle","styleObj","propModel","layer","propertyObj","layerProprs","propertyName","getPropertyValues","defValue","layerSeparator","layersColl","Layers","getLayers","getCurrentLayer","getValueFromStyle","getValueFromTarget","validStyles","getLayersFromTarget","clearProp","templateLabel","templateInput","inputHolderId","sector","__destroyFn","modelValueChanged","_getClbOpts","updatedCls","computedCls","labelEl","clearStyleEl","getClearEl","clearStyle","clearProperties","clearEl","getTarget","getTargetModel","getTargets","targets","getFirstTarget","getHelperModel","inputValueChanged","emit","getInputValue","setStatus","emitUpdateTarget","_getTargetData","targetValue","ignoreDefault","computedValue","getComputedValue","highlightChanged","showComputed","highlightComputed","fromLayer","checkVisibility","targetData","_emitUpdate","addData","_getEventData","propertyView","hideNotStylable","isTargetStylable","isComponentStylable","show","hide","customFetchValue","ignoreCustomValue","computedDef","computedDefault","avoid","avoidComputed","notToSkip","__updateTarget","getSelectedAll","fromParent","updateTargetStyle","__","stylableReq","sectors","parentEl","setRawValue","__update","cleanValue","clearCached","$input","__change","__updateStyle","setProps","createdEl","PropertyView","propView","$props","console","propsView","PropertiesView","getPropsConfig","that","mIndex","valueOnIndex","click","stackModel","sorter","propsConfig","customPreview","onPreview","updatePreview","initSorter","startSort","removeItem","stackIndex","resultObj","valueInt","previewEl","getPreviewEl","prvStr","getPropertiesWrapper","propsWrapEl","wrapEl","propsEl","deselectAll","utils","Sorter","ignoreViewChildren","containerSel","itemSel","addToCollection","fragmentEl","LayerView","cssGen","CssGenerator","PropertyCompositeView","indexChanged","LayersView","refreshLayers","addLayer","deepClone","getLayerValues","_getClassRule","skipAdd","targetAlt","useClasses","_getParentTarget","targetsDevice","getAtRule","mapSorted","sortMediaObject","sortedRules","currIndex","rulesToCheck","resultValue","targetAltDevice","valueTargetAlt","valueTrgAltDvc","layersObj","valueComput","updateOpts","hasDetachedStyle","parentOpts","valueTrg","subModel","subProp","defVal","fieldEl","modal","am","$preview","$previewBox","componentValue","setPreviewView","setPreview","pv","spreadUrl","removeFile","openAssetManager","accept","onDblClick","asset","inputInst","unitEl","$unit","PropertyIntegerView","InputColor","$color","colorEl","onOptionChange","getOptions","addOption","updateOptions","optionsStr","styleAttr","inputH","itemCls","clsInput","inputStr","labelTxt","titleAttr","inputHld","inputChk","getCheckedEl","inputIn","units","InputNumber","validateInputValue","deepCheck","showInput","getSliderEl","slider","inputValueChangedSoft","TypeableCollection","extendViewApi","PropertyStack","PropertyStackView","isType","PropertyComposite","PropertyFileView","PropertyColorView","PropertySelect","PropertySelectView","PropertyRadio","PropertyRadioView","PropertySlider","PropertySliderView","PropertyInteger","objectWithoutPropertiesLoose","excluded","getOwnPropertySymbols","sourceSymbolKeys","startSelectPosition","isPointed","placer","getPlacerEl","wmargin","nested","canvasRelative","getZoomDecimal","getOffsetDim","stopSelectPosition","posTargetCollection","posIndex","posMethod","cDim","endMove","posIsLastEl","posTargetEl","outsideElem","posTargetModel","nearFloat","isLast","$wrapper","Promise","rej","req","XMLHttpRequest","withCredentials","credentials","headers","statusText","resolve","responseText","upload","onProgress","onprogress","send","modelAttrStart","compTypes","modelAttr","valueLen","valStr","firstChar","lastChar","decls","decl","parseClass","parseNode","attrsLen","nodePrev","nodeChild","ct","compType","keepEmptyTextNodes","allTxt","foundTextNode","ci","cType","textTags","parserCss","scripts","allowScripts","styleStr","resHtml","returnArray","baseType","getBaseType","typeFound","recognizeType","getTypes","addType","definition","ModelInst","ViewInst","maxValue","MAX_VALUE","compCls","buildFromModel","wrapperIsBody","isWrapper","clearStyles","atRules","dump","atRule","mRules","buildFromRule","rulesStr","ruleStr","selectorStrNoAdd","selectorsAdd","singleAtRule","keepUnusedStyles","getDeclaration","getQueryLength","mediaQuery","itemsArr","isMobFirst","mquery","Input","keydown","contClass","valid","validObj","handleUnitChange","getUnitEl","handleKeyDown","upArrowClick","downArrowClick","normalizeValue","downIncrement","moveIncrement","upIncrement","prValue","limitlessMax","limitlessMin","fixed","regFixed","valCopy","uN","CssRule","onRemove","ensureSelectors","parseCss","CSS","mediaText","atRuleType","condition","typeStr","addSelector","isBody","selOpts","stateStr","skipState","ruleProps","wd","re","triggerAdd","compView","sameFrameView","dt","viewObject","logError","ItemsView","inputProp","clsNoEdit","hidable","countChildren","clsNoChild","clsTitle","clsTitleC","clsCaret","inputNameCls","gut","clsBase","clsCount","clsMove","clsChildren","onInit","parentView","checkChildren","updateOpening","updateLayerable","clsEdit","viewLayer","__render","getVisibilityEl","eyeEl","hClass","toggleVisibility","prevDspKey","prevDisplay","handleEdit","getInputName","setEditing","handleEditEnd","inputName","opened","chvDown","getCaret","toggleOpening","stopImmediatePropagation","handleSelect","fromLayers","scrollCanvas","handleHover","showHover","handleHoverOut","onMoveClb","freeze","unfreeze","ComponentView","highlightHover","cnt","isCountable","hideTextnode","caret","setRoot","getWrapper","showWrapper","toTrack","CssRuleView","getBlockId","renderStarted","atRuleEl","styleEl","CssGroupRuleView","appendData","clsName","defaultBlockId","blockId","getMediaWidth","contRules","prs","defaultOpts","beforeShow","color","flat","allowEmpty","showButtons","clickoutFiresChange","showInitial","showPalette","showPaletteOnly","hideAfterPaletteSelect","togglePaletteOnly","showSelectionPalette","localStorageKey","maxSelectionSize","cancelText","chooseText","togglePaletteMoreText","togglePaletteLessText","clearText","noColorSelectedText","preferredFormat","containerClassName","replacerClassName","showAlpha","palette","selectionPalette","spectrums","IE","rgbaSupport","backgroundColor","replaceInput","markup","gradientFix","paletteTemplate","tiny","tinycolor","toHsl","formattedString","swatchStyle","toRgbString","toFilter","spectrum","callbackContext","instanceOptions","resize","reflow","throttler","isDragging","dragWidth","dragHeight","dragHelperHeight","slideHeight","alphaWidth","alphaSlideHelperWidth","slideHelperHeight","currentHue","currentSaturation","currentValue","currentAlpha","paletteArray","paletteLookup","draggingClass","shiftMovementDirection","boundElement","pickerContainer","dragger","dragHelper","slideHelper","alphaSliderInner","alphaSlider","alphaSlideHelper","textInput","paletteContainer","initialColorContainer","cancelButton","clearButton","chooseButton","toggleButton","isInput","isInputTypeColor","inputTypeColorSupport","shouldReplace","replacer","offsetElement","previewElement","initialColor","colorOnShow","currentPreferredFormat","applyOptions","rgb","updateSelectionPaletteFromStorage","localStorage","oldPalette","addColorToSelectionPalette","inArray","drawPalette","currentColor","getUniqueSelectionPalette","drawInitial","dragStop","setFromTextInput","updateOriginalInput","isDefaultPrevented","hideAll","$doc","onkeydown","clickout","updateUI","revert","ignoreFormatChange","newColor","newHsv","toHsv","getFormat","fromRatio","format","updateHelperLocations","flatColor","toHexString","realColor","displayColor","realHex","realRgb","alpha","toRgb","realAlpha","gradient","gradientType","dragX","dragY","alphaX","slideY","fireCallback","picker","extraY","dpWidth","outerWidth","dpHeight","outerHeight","inputHeight","docElem","cW","cH","scL","scT","getOffset","disable","paletteElementClick","ignore","oldDragX","oldDragY","furtherFromX","paletteEvent","spect","optionName","optionValue","coord","onmove","onstart","onstop","dragging","maxHeight","maxWidth","hasTouch","duringDragEvents","t0","rightclick","dataID","extra","load","loadOpts","_cachedResult","colorInput","localization","palettes","processNativeColorInputs","colorInputs","trimLeft","trimRight","tinyCounter","math","mathRound","mathMin","mathMax","mathRandom","named","matchers","rgba","hsl","hsla","hsv","hsva","hex8","parseIntFromHex","hex6","hex3","stringInputToObject","bound01","convertToPercentage","q","hsvToRgb","hue2rgb","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_b","_a","_roundA","_format","_gradientType","_ok","_tc_id","rgbToHsl","rgbToHsv","rgbToHex","allow3Char","hex","pad2","rgbaToHex","desaturate","clamp01","saturate","greyscale","lighten","brighten","darken","spin","hue","complement","triad","tetrad","splitcomplement","analogous","slices","ret","monochromatic","modification","isDark","getBrightness","isLight","getOriginalInput","getAlpha","setAlpha","toHsvString","toHslString","toHex","toHex8","toHex8String","toPercentageRgb","toPercentageRgbString","toName","hexNames","secondColor","hex8String","secondHex8String","formatSet","hasAlpha","_applyModification","_applyCombination","color1","color2","mix","w1","rgb1","rgb2","w2","readability","c1","c2","brightnessA","brightnessB","colorDiff","brightness","isReadable","mostReadable","baseColor","colorList","bestColor","bestScore","bestIsReadable","readable","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","isOnePointZero","processPercent","isPercentage","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","ColorPicker","getColorEl","valueClr","noneColor","previousColor","cpStyle","elToAppend","colorPickerConfig","getColor","_mods","_scope","_MODIFIERS","control","_MAP","backspace","tab","esc","down","del","home","pageup","pagedown","'","_downKeys","compareArray","modifierMap","updateModifierKey","assignKey","scope","mods","getKeys","getMods","shortcut","getScope","mi","modifiersMatch","dispatch","previousKey","setScope","deleteScope","isPressed","getPressedKeyCodes","multipleKeys","setTimeoutFunc","_state","_handled","_deferreds","doResolve","deferred","_immediateFn","onFulfilled","onRejected","promise","then","finale","_unhandledRejectionFn","Handler","reason","ex","prom","promiseFinally","allSettled","race","setImmediate","err","togglable","runDefaultCommand","stopDefaultCommand","Buttons","Button","deactivateAllExceptOne","except","deactivateAll","fromCollection","disableAllButtons","disableAllButtonsExceptOne","arr2","arrayLikeToArray","minLen","keySet","parserConfig","inline","propertyKeywords","tokenHooks","documentTypes","mediaTypes","mediaFeatures","mediaValueKeywords","nonStandardPropertyKeywords","fontProperties","counterDescriptors","colorKeywords","valueKeywords","allowNested","lineComment","supportsAtComponent","highlightNonStandardPropertyKeywords","tp","tokenBase","tokenize","tokenString","tokenParenthesized","quote","escaped","pushContext","popContext","states","popAndPass","wordAsValue","stateArg","_stream","atBlock","textAfter","cx","blockCommentStart","blockCommentEnd","blockCommentContinue","fold","documentTypes_","mediaTypes_","mediaFeatures_","mediaValueKeywords_","propertyKeywords_","nonStandardPropertyKeywords_","colorKeywords_","valueKeywords_","allWords","tokenCComment","maybeEnd","DomComponents","CssComposer","canvasModel","toggleMove","disableDragger","enableDragger","toggleDragger","methodCls","methodEv","methodsEv","toSelect","evName","setupGuides","isTran","guidesContainer","getGuidesContainer","getGuidesTarget","getGuidesStatic","drg","getEventOpts","guides","guidesEl","elInfoX","elInfoY","guideContent","getGlobalToolsEl","elGuideInfoX","elGuideInfoY","elGuideInfoContentX","elGuideInfoContentY","updateGuides","debug","renderGuide","getElementGuides","lastEl","getGuidePosUpdate","originRect","guideSize","numEl","noScroll","getTranslate","transform","itemStr","setTranslate","adds","_getDragData","center","getMouseRelativeCanvas","guidesInfo","renderGuideInfo","hideGuidesInfo","rectOrigin","origEdge1","origEdge1Raw","origEdge2","origEdge2Raw","elGuideInfo","elGuideInfoCnt","guideInfoStyle","statEdge2","isEdge1","statEdge1","statEdge1Raw","statEdge2Raw","posFirst","posSecond","pos2","sizeRaw","matched","snd","dc","toClear","SelectComponent","mouseover","startDelete","mouseout","stopDelete","onDelete","$this","attachBadge","removeBadge","clean","updateBadgeLabel","Modal","CodeManager","$editors","oHtmlEd","buildEditor","oCsslEd","htmlEditor","cssEditor","textViewCode","setContent","getHtml","getCss","codeName","codeMirror","getViewer","EditorView","isEnabled","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","fsChanged","targetEl","SelectPosition","noSelClass","getHighlighterEl","wp","toggleClipboard","cacheEl","frameEl","onEndMove","rollback","initSorterFromModel","onEndMoveFromModel","initSorterFromModels","lastModel","toMove","$badge","$hl","AssetManager","amContainer","modalTitle","assets","uploadEl","bm","BlockManager","pn","Panels","blocks","panels","getPanel","addPanel","lm","LayerManager","$cn","$cn2","dvm","DeviceManager","showDevices","SelectorManager","StyleManager","$header","panel","toggleSm","componentFirst","selectedAll","Config","TraitManager","tmView","getTraitsViewer","confTm","toggleTm","clp","cop","cmdVis","getPanels","preventDrag","tglEffects","mthEv","tlb","elP","shouldRunSwVisibility","Commands","isActive","stopDefault","editorEl","onclick","canvasS","runDefault","canvasResizer","canvasView","getResizerEl","posFetcher","mousePosFetcher","getMouseRelativePos","forceNew","Utils","Resizer","getOffsetMethod","zoom","showOffsetsSelected","stateVar","offsetViewer","marginT","marginB","marginL","marginR","padT","padB","padL","padR","stateLow","marginName","paddingName","marginV","paddingV","paddingEls","fullMargName","fullPadName","marginLeftSt","marginRightSt","marginRight","marginTopSt","marginBottomSt","mtStyle","mbStyle","mlStyle","mrStyle","ptStyle","pbStyle","plStyle","prStyle","posLeft","widthEl","marginSideH","marginSideT","padTop","padBot","padSideH","padSideT","padRight","toggleVis","scrollLayers","onLoad","ItemView","componentChanged","elTo","getRoot","core_slice","hasKeys","callstackWasIndexed","magicFusionIndex","getMagicFusionIndex","ObjectRegistry","registeredObjects","cidIndexes","onoff","objects","objectRegistry","register","unregister","actionUndoRedo","action","undoTypes","managerUndoRedo","manager","stack","magic","everything","isCurrentlyUndoRedoing","pointer","actions","isUndo","addToStack","track","undoTypesType","validateUndoActionCreation","maximumStackLength","isRegistered","UndoTypes","unsetData","afterAttributes","keysAfter","keysPrevious","OwnedUndoTypes","manipulateUndoType","manipType","undoType","fns","undoTypesInstance","Action","UndoStack","setMaxLength","UndoManager","startTracking","stopTracking","isTracking","_addToStack","unregisterAll","undoAll","redoAll","isAvailable","undoManager","addUndoType","changeUndoType","removeUndoType","defaultAttributes","finallyConstructor","arrayWithHoles","iterableToArrayLimit","nonIterableRest","keymaps","configDef","keymaster","defKeys","pk","isEditing","isInputFocused","removeAll","beforeCache","hasSkip","noUndo","customUndoType","bf","af","entity","hasUndo","hasRedo","getStack","getStackGroup","getPointer","getInstance","Timeout","clearFn","_id","_clearFn","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","getPrototypeOf","process","nextTick","runIfPresent","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","onreadystatechange","task","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","Item","browser","env","argv","versions","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","binding","cwd","chdir","umask","sourceKeys","defaultTags","attrRegexpCache","getAttrValue","regexp","getAttrRegexp","getTagRegexp","anchored","addTags","htmlMode","multilineTagIndentFactor","multilineTagIndentPastTag","allowMissingTagName","tags","configTags","configScript","scriptTypes","htmlState","inTag","tagInfo","tagText","findMatchingMode","endTagA","endTag","localState","localMode","pat","maybeBackup","local","htmlConfig","autoSelfClosers","implicitlyClosed","contextGrabbers","doNotIndent","allowUnquoted","allowMissing","caseFold","xmlConfig","editorConf","config_","inText","parser","inBlock","doctype","closure","baseState","tagStart","isInAttribute","stringStartCol","terminator","startOfLine","noIndent","maybePopContext","nextTagName","parentTagName","tagNameState","closeTagNameState","attrState","matchClosing","closeState","closeStateErr","attrEqState","attrValueState","attrContinuedState","isInText","baseIndent","fullLine","alignCDATA","tagAfter","grabbers","configuration","skipAttribute","xmlCurrentTag","xmlCurrentContext","statementIndent","jsonldMode","jsonld","jsonMode","json","isTS","typescript","wordRE","wordCharacters","keywords","kw","A","B","C","D","operator","atom","isOperatorChar","isJsonldKeyword","cont","tokenComment","expressionAllowed","inSet","readRegexp","tokenQuasi","lexical","lastType","brackets","findFatArrow","fatArrowAt","arrow","sawSomething","bracket","atomicTypes","JSLexical","inScope","varname","localVars","vars","marked","inList","newContext","registerVarScoped","Var","globalVars","isModifier","defaultVars","pushcontext","pushblockcontext","popcontext","pushlex","lex","poplex","expect","wanted","exp","statement","vardef","parenExpr","maybeexpression","maybeelse","functiondef","forspec","enumdef","typename","typeexpr","expression","maybelabel","maybeCatchBinding","afterExport","afterImport","funarg","expressionInner","expressionNoComma","noComma","arrowBodyNoComma","arrowBody","commasep","maybeop","maybeoperatorNoComma","maybeoperatorComma","classExpression","arrayLiteral","contCommasep","objprop","quasi","targetNoComma","maybeTypeArgs","maybeTarget","expr","continueQuasi","getterSetter","afterprop","maybetype","what","sep","proceed","maybetypeOrIn","mayberettype","isKW","afterType","typeprops","typearg","maybeReturnType","typeprop","functiondecl","typeparam","maybeTypeDefault","maybeAssign","vardefCont","eltpattern","proppattern","_type","forspec1","forspec2","classNameAfter","classBody","classfield","maybeFrom","exportField","importSpec","maybeMoreImports","maybeAs","enummember","basecolumn","parseJS","isContinuedStatement","doubleIndentSwitch","closeBrackets","skipExpression","commentStart","commentEnd","newlineAfterToken","inlineElements","isComment","curMode","selText","endIndex","cmInstance","atSol","newline","_arr","_n","_d","_s","_i","sortContainer","created","srcModel","getSourceModel","forceChange","avoidSelectOnEnd","webpackContext","webpackContextResolve","wrapperId","wrapperName","storeWrapper","columns","rows","rowsToAdd","columnsToAdd","ComponentTableBody","svgAttrs","ratioDefault","cmdName","hasButtonBool","getSrcResult","btoa","isDefaultSrc","parseUri","uri","qrs","pair","hostname","protocol","port","mapUrl","mapType","frameborder","OComponent","parseFromSrc","updateSrc","getMapUrl","addr","qr","z","dblclick","classEmpty","fetchFile","FileUploader","uploadFile","srcExists","onError","noDrag","getIframe","ifrm","frameBorder","onmousedown","compProt","disableEditing","updateContentText","syncContent","rte","fromDisable","rteEnabled","activeRte","toggleEvents","getContent","contentOpt","customRte","onInput","evPfx","disablePropagation","mixins","elDocs","ComponentLinkView","yt","vi","ytnc","videoId","provider","ytUrl","ytncUrl","viUrl","poster","muted","autoplay","controls","modestbranding","sources","allowfullscreen","updateTraits","getYoutubeTraits","getVimeoTraits","getSourceTraits","prov","getYoutubeSrc","getYoutubeNoCookieSrc","getVimeoSrc","getProviderTrait","getAutoplayTrait","getLoopTrait","getControlsTrait","isYtProv","isYtncProv","isViProv","isExtProv","OComponentView","updateProvider","updateVideo","renderByProvider","videoEl","renderYoutube","renderYoutubeNoCookie","renderVimeo","renderSource","initVideoEl","scriptCount","svar","svarNext","customName","SVGElement","createElementNS","createComment","componentView","ComponentTableCell","ComponentTableCellView","ComponentTableRow","ComponentTableRowView","ComponentTable","ComponentTableView","ComponentTableHead","ComponentTableHeadView","ComponentTableBodyView","ComponentTableFoot","ComponentTableFootView","ComponentMap","ComponentMapView","ComponentLink","ComponentLabel","ComponentLabelView","ComponentVideo","ComponentVideoView","ComponentImage","ComponentImageView","ComponentScript","ComponentScriptView","ComponentSvgIn","ComponentSvgView","ComponentSvg","ComponentComment","ComponentCommentView","ComponentTextNode","ComponentTextNodeView","ComponentText","ComponentTextView","ComponentWrapper","storageKey","smc","stm","storeHtml","storeComponents","componentHovered","selectAdd","selectRemove","setComponents","postLoad","handleChanges","handleUpdates","handleChangesColl","handleRemoves","evn","els","getCacheLoad","isObj","getComponents","noStore","toStore","getComponent","addComponent","extendView","extendFn","extendFnView","extendType","extendViewType","typeToExtend","modelToExt","viewToExt","getExtendedObj","srcToExt","parentFn","removeType","Droppable","rootEl","toggleEffects","handleDragEnter","handleDragOver","handleDrop","handleDragLeave","updateCounter","endDrop","dragContent","inAbsoluteMode","handleDragEnd","setDropContent","getContentByData","autoscrollLimit","notTextable","modOpts","CssRules","getHead","setHead","addHeadItem","getHeadByAttr","removeHeadByAttr","addLink","removeLink","addScript","removeScript","_emitUpdated","itemLoaded","loadedItems","itemsToLoad","listenToLoadItems","listenToLoad","frames","rulers","Frame","Frames","onZoomChange","updateDevice","device","getDeviceModel","getCurrentFrameModel","updateHead","headEl","getJsContainer","jsContainer","frameWrapView","elTools","_getTool","getOffsetViewerEl","getRect","scrollRight","toolsEl","_toggleEffects","startAutoscroll","lastMaxHeight","_toggleAutoscrollFx","requestAnimationFrame","autoscroll","lastClientY","actualTop","limitTop","limitBottom","nextTop","showGlobalTools","updateClientY","stopAutoscroll","mt","renderScripts","renderContent","renderBody","appendScript","scriptEl","conf","extStyles","_isEditor","baseCss","canvasCss","protectedCss","CssRulesView","cv","FrameView","classAnim","frameLoaded","updatePos","updateSize","setupDragger","getZoomMultiplier","posOpts","startDrag","updateOffset","updateDim","currW","currH","newW","newH","noChanges","newDims","onScroll","onscroll","toolsWrapper","elTop","elRight","elBottom","elLeft","frameWrapperView","FrameWrapView","timerZoom","wheel","clearOff","FramesView","checkSelected","updateFrames","toggleListeners","currFrame","frm","onCanvasMove","onWheel","getZoom","defOpts","mpl","framesArea","isElInViewport","frameRect","getFrameOffset","rTop","rLeft","docBody","frmOff","cvsOff","frEl","getCanvasOffset","eo","frmTop","avoidFrameOffset","frmLeft","getElementOffsets","bEl","fo","scriptFn","scriptFnStr","scriptProps","getFrameView","$frames","toolsWrp","hlEl","badgeEl","placerEl","ghostEl","resizerEl","offsetEl","fixedOffsetEl","toolsGlobEl","frms","setCurrentFrame","CanvasView","setWrapper","wrp","getFrame","getFramesEl","getDocument","_getCompFrame","_getLocalEl","globalEl","getGhostEl","getFixedOffsetViewerEl","setCustomBadgeLabel","topScroll","leftScroll","getTargetToElementDim","canvasPos","toRight","targetHeight","targetWidth","eventToTrigger","topPos","elementTop","elementLeft","elementWidth","elementHeight","canvasTop","canvasLeft","canvasWidth","canvasHeight","getFrameElFromDoc","rectOff","elToMove","cvOff","toolbarH","toolbarW","frCvOff","frameOffset","fullHeight","elIsShort","addTop","addLeft","subWinOffset","yOffset","xOffset","toIgnore","fr","getCurrentFrame","setZoom","getFrameWrapperEl","addFrame","fromElement","noticeOnUnload","forceClass","defaultCommand","devicePreviewMode","mediaCondition","jsInHtml","multipleSelection","exportWrapper","optsHtml","optsCss","avoidInlineStyle","avoidDefaults","dragMode","cssIcons","i18n","assetManager","storageManager","richTextEditor","domComponents","codeManager","cssComposer","selectorManager","deviceManager","devices","widthMedia","styleManager","buildProps","blockManager","traitManager","multiFrames","timedInterval","updateItr","deps","Window","ar","Extender","logs","warning","editing","clipboard","previousModel","changesCount","storables","toLoad","toLog","attrsOrig","loadModule","updateChanges","listenLog","eventFrom","eventTo","loadOnStart","canAutoload","onbeforeunload","isAutosave","getStepsBeforeSave","moduleName","Mod","cfgParent","cfg","_disable","mth","destroyed","noCount","multiple","mltSel","removeSelected","toggleSelected","clearSelection","selColl","selIndex","addSelected","getHovered","getCode","setState","getState","js","getJs","avoidProt","avoidProtected","protCss","cacheLoad","defaultRunning","tools","getCurrentMedia","getDirtyCount","destroyAll","grapesjs","msg","logNs","logInfo","initBaseColorPicker","colorPicker","varName","disableButtons","contEl","EditorModel","editorView","addComponents","getSelectedToStyle","selectToggle","setDevice","getDevice","setCustomRte","RichTextEditor","setCustomParserCss","Parser","plugins","agent","isIE","originalCreateHTMLDocument","DOMImplementation","createHTMLDocument","implementation","polyfills","plugin","defaultConfig","autorender","pluginsOpts","Editor","pluginId","plgOptions","wplg","noAssets","uploadName","multiUpload","customFetch","embedAsBase64","dropzone","openAssetsOnDrop","dropzoneContent","beforeUpload","showUrlInput","getFilename","getExtension","Asset","unitDim","AssetView","getPreview","getInfo","dim","AssetImage","AssetImageView","renderAssets","addToAsset","removedAsset","handleSubmit","getAddInput","getAssetsEl","globalCollection","inputUrl","toggleNoAssets","addAsset","assetsEl","fuRendered","fu","uploadId","disableUpload","onUploadStart","onUploadEnd","onUploadError","onUploadResponse","FormData","reqHead","fetchOpts","catch","initDrop","uploadForm","ondragover","ondragleave","ondrop","initDropzone","addedCls","edEl","dropzoneCls","cleanEditorElCls","onDragLeave","response","promises","mimeTypeMatcher","image","Image","readAsDataURL","Assets","FileUpload","AssetsView","getAllVisible","toRender","eventCapture","appendInput","getLabel","clsField","onValueChange","removeView","rerender","getClbOpts","elInput","getInputElem","onUpdate","onEvent","getValueForTarget","setInputValue","postUpdate","renderLabel","tpl","createLabel","getModelValue","i18nAttr","getElInput","renderField","inputs","createInput","hasLabel","noLabel","tmpl","TraitView","propName","resultName","valResult","getCheckedValue","valueTrue","valueFalse","toInit","inputNumber","labelButton","number","TraitNumberView","TraitSelectView","checkbox","TraitCheckboxView","TraitColorView","TraitButtonView","updatedCollection","TraitsViewer","TraitsView","appendOnClick","activate","media","category","Block","Category","dragend","endDrag","getSorter","validTarget","setDragHelper","handleDrag","oldKey","oldActive","dragResult","clsAdd","caretR","caretD","iconClass","activeClass","getIconEl","getBlocksEl","iconEl","blocksEl","categories","renderedCategories","noCatClass","blockContClass","catsClass","tac","grabbingCls","updateConfig","BlockView","ignoreCategories","catModel","catId","catView","getCategoriesEl","CategoryView","catsEl","blocksVisible","blocksView","Blocks","BlockCategories","BlocksView","getCategories","external","swv","expt","osm","otm","ola","obl","ful","prv","delayBtnsShow","btn","Panel","activeCls","disableCls","btnsVisCls","updateActive","checkActive","updateBtnsVis","updateClassName","updateDisable","$buttons","commandName","noStop","clicked","toggleActive","parentM","ButtonView","appendContent","toggleVisible","tc","cr","bc","resz","resLen","tl","bl","br","silentFrames","avoidContainerUpdate","forContainer","styleWidth","styleHeight","ButtonsView","PanelView","PanelsViewObj","PanelsView","getPanelsEl","removePanel","addButton","panelId","removeButton","getButton","ss","fonts","font","extendBuilded","builded","buildProperties","extendProperties","propsModel","moProps","pLen","mProps","isolated","mProp","mPProps","buildP","propFactory","PropertyFactory","Sector","sect","updateOpen","getPropertiesEl","$caret","renderProperties","helperCls","dummy","toggleStateCls","pt","mdToClear","helperRule","getClassRule","appendStateRule","trgs","targetIsClass","SectorView","SectView","Sectors","SectorsView","addSector","getSector","_logNoSector","removeSector","getSectors","addProperty","sectorId","getProperty","removeProperty","getProperties","cssC","smConf","hasClasses","addOpts","deviceW","createType","getEmitter","inlineCss","htmlOpts","cleanId","idRules","buildModels","beforeEach","mapModel","scrProps","mapJs","autoFormatRange","noRefresh","generators","defGenerators","viewers","defViewers","defaultViewer","gHtml","gCss","gJson","gJs","eCM","loadDefaultGenerators","loadDefaultViewers","addGenerator","generator","getGenerator","getGenerators","addViewer","viewer","getViewers","createViewer","txtarea","updateViewer","genId","checkUnit","Device","getSorted","startAdd","updateSelect","devEl","devicesEl","deviceLabel","Devices","dv","DevicesView","autosave","autoload","stepsBeforeSave","storeStyles","storeCss","checkLocal","urlStore","urlLoad","jqXHR","onComplete","contentTypeJson","fetchOptions","checkStorageEnvironment","setItem","getItem","clbErr","onResponse","request","typeJson","typeHead","bodyObj","bodyKey","eventStart","eventEnd","eventError","storages","defaultStorages","remote","RemoteStorage","LocalStorage","currentStorage","loadDefaultProviders","setCurrent","setAutosave","setStepsBeforeSave","storage","getStorages","getCurrent","keysF","itemKey","itemKeyR","getCurrentStorage","4","5","6","7","11","12","14","15","atRuleKeys","singleAtRules","singleAtRulesNames","parseSelector","stl","propValue","getPropertyPriority","parseCondition","conditionText","selectorText","createNode","selLen","lastClass","stateArr","sheet","cssRules","keyText","isSingleAtRule","subRules","lens","subRule","selsParsed","selsAdd","lastRule","len3","selsAddStr","BrowserCssParser","checkNode","classSets","classSet","pHtml","pCss","selectedName","iconAdd","iconSync","iconTagOn","iconTagOff","iconTagRemove","startEditTag","endEditTag","innerText","changeStatus","removeTag","$chk","labelInfo","labelStates","labelHead","stateInputId","stateInputC","getStyleEmitter","toList","toListCls","__handleStateChange","checkSync","renderClasses","tagRemoved","syncStyle","getCommonSelectors","ruleComponents","ruleComponent","updateStateVis","getStateOptions","addToClasses","startNewTag","$addBtn","endNewTag","onInputKeyUp","addNewTag","checkStates","statesEl","getStates","validSelectors","_commonSelectors","$btnSyncEl","getStatesC","updateSelector","elSel","__getName","idRes","stateChanged","ClassTagView","$states","$statesC","tmpOpts","renderRes","$classes","selectorTags","ClassTagsView","cname","getSelector","backdrop","updateTitle","getCollector","$collector","$content","getTitle","$title","updateAttr","currAttr","triggerEvent","ModalM","enb","ModalView","setTitle","onceClose","onceOpen","isOpen","getContentEl","elT","elL","borderOffset","freezeClass","relative","ignoreModels","offTop","offLeft","$document","dropContent","selectOnEnd","activeTextModel","getScale","getDocuments","dropModel","updateTextViewCursorPosition","targetDoc","caretRangeFromPoint","poiner","rangeParent","rangeOffset","setContentEditable","toggleSortCursor","clonedEl","moveDragHelper","posY","posX","dragHelperStyle","useBody","createPlaceholder","ins","contSel","prevTarget","eV","isTextable","isTextableActive","avoidUpdateStyle","tempModel","selectTargetModel","targetModel","dsp","eO","rY","rX","mousePos","eventMove","sourceModel","dimsFromTarget","lastDims","findPosition","disableTextable","movePlaceholder","prevTargetDim","$plh","isInFlow","styleInFlow","$parent","overflow","trgModel","dragInfo","dropInfo","targetP","validResult","getDim","cacheDimsP","getChildrenDim","cacheDims","nearBorders","targetParent","getTargetFromEl","targetPrev","nearElBorders","getCurrentPos","elOffsets","elIndex","indexEl","leftLimit","xLimit","dimRight","yLimit","xCenter","yCenter","dimDown","trgDim","marg","margI","elDim","dst","srcEl","modelToDrop","modelTemp","warns","targetCollection","viewActive","modelEl","insertHTML","errors","onUpdateContainer","minDim","maxDim","getBoundingRect","setup","hdl","createHandler","updateContainer","forceShow","handleMouseDown","getParentEl","attrName","parentRect","handlerAttr","clickedHandler","rectDim","startPos","parentDim","toggleFrames","mouseFetch","calc","updateRect","getSelectedHandler","elStyle","isHandler","deltaX","deltaY","parentW","parentH","startW","startH","ratioActive","ratio","traitInputAttr","locale","localeFallback","detectLocale","messages","inputPlh","uploadTitle","labels","comment","video","row","cell","desktop","tablet","mobileLandscape","mobilePortrait","titles","fullscreen","emptyState","hover","fileButton","general","layout","typography","decorations","flex","dimension","false","_blank","_localLang","setLocale","evObj","valuePrev","getLocale","getMessages","lang","_debug","setMessages","addMessages","deepAssign","targValue","srcValue","localeFlb","lFlb","_getMsg","_addParams","nav","language","userLanguage","msgSet","RTE_KEY","btnState","isValidAnchor","defActions","bold","italic","underline","strikethrough","setEl","updateActiveActions","settAct","actionbar","inactive","actionbarCont","actionbarContainer","addAction","styleWithCSS","syncActions","getActions","queryCommandSupported","queryCommandState","enabled","actionbarEl","deleteContents","nd","insertNode","adjustToolbar","lastElPos","globalRte","hideToolbar","initRte","updatePosition","staticRules","rulesView","sl","newSels","le","selec","modelExists","styleUpdate","setRule","atRuleParams","getRule","commandsDef","defaultCommands","CommandAbstract","selAll","nativeDrag","defComOptions","hideTlb","altMode","cmdMove","oldCmd","loadDefaultCommands","cmdObj","getActive"],"mappings":"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","file":"grapes.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"grapesjs\"] = factory();\n\telse\n\t\troot[\"grapesjs\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 94);\n","// Some functions take a variable number of arguments, or a few expected\n// arguments at the beginning and then a variable number of values to operate\n// on. This helper accumulates all remaining arguments past the function’s\n// argument length (or an explicit `startIndex`), into an array that becomes\n// the last argument. Similar to ES6’s \"rest parameter\".\nexport default function restArguments(func, startIndex) {\n startIndex = startIndex == null ? func.length - 1 : +startIndex;\n return function() {\n var length = Math.max(arguments.length - startIndex, 0),\n rest = Array(length),\n index = 0;\n for (; index < length; index++) {\n rest[index] = arguments[index + startIndex];\n }\n switch (startIndex) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, arguments[0], rest);\n case 2: return func.call(this, arguments[0], arguments[1], rest);\n }\n var args = Array(startIndex + 1);\n for (index = 0; index < startIndex; index++) {\n args[index] = arguments[index];\n }\n args[startIndex] = rest;\n return func.apply(this, args);\n };\n}\n","// Is a given variable an object?\nexport default function isObject(obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object' && !!obj;\n}\n","// Is a given value equal to null?\nexport default function isNull(obj) {\n return obj === null;\n}\n","// Is a given variable undefined?\nexport default function isUndefined(obj) {\n return obj === void 0;\n}\n","import { toString } from './_setup.js';\n\n// Is a given value a boolean?\nexport default function isBoolean(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n}\n","// Is a given value a DOM element?\nexport default function isElement(obj) {\n return !!(obj && obj.nodeType === 1);\n}\n","import { toString } from './_setup.js';\n\n// Internal function for creating a `toString`-based type tester.\nexport default function tagTester(name) {\n var tag = '[object ' + name + ']';\n return function(obj) {\n return toString.call(obj) === tag;\n };\n}\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('String');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Number');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Date');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('RegExp');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Error');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Symbol');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('ArrayBuffer');\n","import tagTester from './_tagTester.js';\nimport { root } from './_setup.js';\n\nvar isFunction = tagTester('Function');\n\n// Optimize `isFunction` if appropriate. Work around some `typeof` bugs in old\n// v8, IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).\nvar nodelist = root.document && root.document.childNodes;\nif (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') {\n isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n}\n\nexport default isFunction;\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('Object');\n","import { supportsDataView } from './_setup.js';\nimport hasObjectTag from './_hasObjectTag.js';\n\n// In IE 10 - Edge 13, `DataView` has string tag `'[object Object]'`.\n// In IE 11, the most common among them, this problem also applies to\n// `Map`, `WeakMap` and `Set`.\nexport var hasStringTagBug = (\n supportsDataView && hasObjectTag(new DataView(new ArrayBuffer(8)))\n ),\n isIE11 = (typeof Map !== 'undefined' && hasObjectTag(new Map));\n","import tagTester from './_tagTester.js';\nimport isFunction from './isFunction.js';\nimport isArrayBuffer from './isArrayBuffer.js';\nimport { hasStringTagBug } from './_stringTagBug.js';\n\nvar isDataView = tagTester('DataView');\n\n// In IE 10 - Edge 13, we need a different heuristic\n// to determine whether an object is a `DataView`.\nfunction ie10IsDataView(obj) {\n return obj != null && isFunction(obj.getInt8) && isArrayBuffer(obj.buffer);\n}\n\nexport default (hasStringTagBug ? ie10IsDataView : isDataView);\n","import { nativeIsArray } from './_setup.js';\nimport tagTester from './_tagTester.js';\n\n// Is a given value an array?\n// Delegates to ECMA5's native `Array.isArray`.\nexport default nativeIsArray || tagTester('Array');\n","import { hasOwnProperty } from './_setup.js';\n\n// Internal function to check whether `key` is an own property name of `obj`.\nexport default function has(obj, key) {\n return obj != null && hasOwnProperty.call(obj, key);\n}\n","import tagTester from './_tagTester.js';\nimport has from './_has.js';\n\nvar isArguments = tagTester('Arguments');\n\n// Define a fallback version of the method in browsers (ahem, IE < 9), where\n// there isn't any inspectable \"Arguments\" type.\n(function() {\n if (!isArguments(arguments)) {\n isArguments = function(obj) {\n return has(obj, 'callee');\n };\n }\n}());\n\nexport default isArguments;\n","import { _isFinite } from './_setup.js';\nimport isSymbol from './isSymbol.js';\n\n// Is a given object a finite number?\nexport default function isFinite(obj) {\n return !isSymbol(obj) && _isFinite(obj) && !isNaN(parseFloat(obj));\n}\n","import { _isNaN } from './_setup.js';\nimport isNumber from './isNumber.js';\n\n// Is the given value `NaN`?\nexport default function isNaN(obj) {\n return isNumber(obj) && _isNaN(obj);\n}\n","// Predicate-generating function. Often useful outside of Underscore.\nexport default function constant(value) {\n return function() {\n return value;\n };\n}\n","import { MAX_ARRAY_INDEX } from './_setup.js';\n\n// Common internal logic for `isArrayLike` and `isBufferLike`.\nexport default function createSizePropertyCheck(getSizeProperty) {\n return function(collection) {\n var sizeProperty = getSizeProperty(collection);\n return typeof sizeProperty == 'number' && sizeProperty >= 0 && sizeProperty <= MAX_ARRAY_INDEX;\n }\n}\n","// Internal helper to generate a function to obtain property `key` from `obj`.\nexport default function shallowProperty(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n}\n","import shallowProperty from './_shallowProperty.js';\n\n// Internal helper to obtain the `byteLength` property of an object.\nexport default shallowProperty('byteLength');\n","import createSizePropertyCheck from './_createSizePropertyCheck.js';\nimport getByteLength from './_getByteLength.js';\n\n// Internal helper to determine whether we should spend extensive checks against\n// `ArrayBuffer` et al.\nexport default createSizePropertyCheck(getByteLength);\n","import { supportsArrayBuffer, nativeIsView, toString } from './_setup.js';\nimport isDataView from './isDataView.js';\nimport constant from './constant.js';\nimport isBufferLike from './_isBufferLike.js';\n\n// Is a given value a typed array?\nvar typedArrayPattern = /\\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\\]/;\nfunction isTypedArray(obj) {\n // `ArrayBuffer.isView` is the most future-proof, so use it when available.\n // Otherwise, fall back on the above regular expression.\n return nativeIsView ? (nativeIsView(obj) && !isDataView(obj)) :\n isBufferLike(obj) && typedArrayPattern.test(toString.call(obj));\n}\n\nexport default supportsArrayBuffer ? isTypedArray : constant(false);\n","import shallowProperty from './_shallowProperty.js';\n\n// Internal helper to obtain the `length` property of an object.\nexport default shallowProperty('length');\n","import { nonEnumerableProps, ObjProto } from './_setup.js';\nimport isFunction from './isFunction.js';\nimport has from './_has.js';\n\n// Internal helper to create a simple lookup structure.\n// `collectNonEnumProps` used to depend on `_.contains`, but this led to\n// circular imports. `emulatedSet` is a one-off solution that only works for\n// arrays of strings.\nfunction emulatedSet(keys) {\n var hash = {};\n for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true;\n return {\n contains: function(key) { return hash[key]; },\n push: function(key) {\n hash[key] = true;\n return keys.push(key);\n }\n };\n}\n\n// Internal helper. Checks `keys` for the presence of keys in IE < 9 that won't\n// be iterated by `for key in ...` and thus missed. Extends `keys` in place if\n// needed.\nexport default function collectNonEnumProps(obj, keys) {\n keys = emulatedSet(keys);\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = isFunction(constructor) && constructor.prototype || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (has(obj, prop) && !keys.contains(prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop)) {\n keys.push(prop);\n }\n }\n}\n","import isObject from './isObject.js';\nimport { nativeKeys, hasEnumBug } from './_setup.js';\nimport has from './_has.js';\nimport collectNonEnumProps from './_collectNonEnumProps.js';\n\n// Retrieve the names of an object's own properties.\n// Delegates to **ECMAScript 5**'s native `Object.keys`.\nexport default function keys(obj) {\n if (!isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (has(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n","import getLength from './_getLength.js';\nimport isArray from './isArray.js';\nimport isString from './isString.js';\nimport isArguments from './isArguments.js';\nimport keys from './keys.js';\n\n// Is a given array, string, or object empty?\n// An \"empty\" object has no enumerable own-properties.\nexport default function isEmpty(obj) {\n if (obj == null) return true;\n // Skip the more expensive `toString`-based type checks if `obj` has no\n // `.length`.\n var length = getLength(obj);\n if (typeof length == 'number' && (\n isArray(obj) || isString(obj) || isArguments(obj)\n )) return length === 0;\n return getLength(keys(obj)) === 0;\n}\n","import keys from './keys.js';\n\n// Returns whether an object has a given set of `key:value` pairs.\nexport default function isMatch(object, attrs) {\n var _keys = keys(attrs), length = _keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = _keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n}\n","import { VERSION } from './_setup.js';\n\n// If Underscore is called as a function, it returns a wrapped object that can\n// be used OO-style. This wrapper holds altered versions of all functions added\n// through `_.mixin`. Wrapped objects may be chained.\nexport default function _(obj) {\n if (obj instanceof _) return obj;\n if (!(this instanceof _)) return new _(obj);\n this._wrapped = obj;\n}\n\n_.VERSION = VERSION;\n\n// Extracts the result from a wrapped and chained object.\n_.prototype.value = function() {\n return this._wrapped;\n};\n\n// Provide unwrapping proxies for some methods used in engine operations\n// such as arithmetic and JSON stringification.\n_.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n_.prototype.toString = function() {\n return String(this._wrapped);\n};\n","import getByteLength from './_getByteLength.js';\n\n// Internal function to wrap or shallow-copy an ArrayBuffer,\n// typed array or DataView to a new view, reusing the buffer.\nexport default function toBufferView(bufferSource) {\n return new Uint8Array(\n bufferSource.buffer || bufferSource,\n bufferSource.byteOffset || 0,\n getByteLength(bufferSource)\n );\n}\n","import _ from './underscore.js';\nimport { toString, SymbolProto } from './_setup.js';\nimport getByteLength from './_getByteLength.js';\nimport isTypedArray from './isTypedArray.js';\nimport isFunction from './isFunction.js';\nimport { hasStringTagBug } from './_stringTagBug.js';\nimport isDataView from './isDataView.js';\nimport keys from './keys.js';\nimport has from './_has.js';\nimport toBufferView from './_toBufferView.js';\n\n// We use this string twice, so give it a name for minification.\nvar tagDataView = '[object DataView]';\n\n// Internal recursive comparison function for `_.isEqual`.\nfunction eq(a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) return a !== 0 || 1 / a === 1 / b;\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) return false;\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) return b !== b;\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== 'function' && type !== 'object' && typeof b != 'object') return false;\n return deepEq(a, b, aStack, bStack);\n}\n\n// Internal recursive comparison function for `_.isEqual`.\nfunction deepEq(a, b, aStack, bStack) {\n // Unwrap any wrapped objects.\n if (a instanceof _) a = a._wrapped;\n if (b instanceof _) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n // Work around a bug in IE 10 - Edge 13.\n if (hasStringTagBug && className == '[object Object]' && isDataView(a)) {\n if (!isDataView(b)) return false;\n className = tagDataView;\n }\n switch (className) {\n // These types are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return '' + a === '' + b;\n case '[object Number]':\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case '[object Symbol]':\n return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b);\n case '[object ArrayBuffer]':\n case tagDataView:\n // Coerce to typed array so we can fall through.\n return deepEq(toBufferView(a), toBufferView(b), aStack, bStack);\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays && isTypedArray(a)) {\n var byteLength = getByteLength(a);\n if (byteLength !== getByteLength(b)) return false;\n if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) return true;\n areArrays = true;\n }\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor &&\n isFunction(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) return bStack[length] === b;\n }\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], aStack, bStack)) return false;\n }\n } else {\n // Deep compare objects.\n var _keys = keys(a), key;\n length = _keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = _keys[length];\n if (!(has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\n\n// Perform a deep comparison to check if two objects are equal.\nexport default function isEqual(a, b) {\n return eq(a, b);\n}\n","import isObject from './isObject.js';\nimport { hasEnumBug } from './_setup.js';\nimport collectNonEnumProps from './_collectNonEnumProps.js';\n\n// Retrieve all the enumerable property names of an object.\nexport default function allKeys(obj) {\n if (!isObject(obj)) return [];\n var keys = [];\n for (var key in obj) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n","import getLength from './_getLength.js';\nimport isFunction from './isFunction.js';\nimport allKeys from './allKeys.js';\n\n// Since the regular `Object.prototype.toString` type tests don't work for\n// some types in IE 11, we use a fingerprinting heuristic instead, based\n// on the methods. It's not great, but it's the best we got.\n// The fingerprint method lists are defined below.\nexport function ie11fingerprint(methods) {\n var length = getLength(methods);\n return function(obj) {\n if (obj == null) return false;\n // `Map`, `WeakMap` and `Set` have no enumerable keys.\n var keys = allKeys(obj);\n if (getLength(keys)) return false;\n for (var i = 0; i < length; i++) {\n if (!isFunction(obj[methods[i]])) return false;\n }\n // If we are testing against `WeakMap`, we need to ensure that\n // `obj` doesn't have a `forEach` method in order to distinguish\n // it from a regular `Map`.\n return methods !== weakMapMethods || !isFunction(obj[forEachName]);\n };\n}\n\n// In the interest of compact minification, we write\n// each string in the fingerprints only once.\nvar forEachName = 'forEach',\n hasName = 'has',\n commonInit = ['clear', 'delete'],\n mapTail = ['get', hasName, 'set'];\n\n// `Map`, `WeakMap` and `Set` each have slightly different\n// combinations of the above sublists.\nexport var mapMethods = commonInit.concat(forEachName, mapTail),\n weakMapMethods = commonInit.concat(mapTail),\n setMethods = ['add'].concat(commonInit, forEachName, hasName);\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, mapMethods } from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(mapMethods) : tagTester('Map');\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, weakMapMethods } from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(weakMapMethods) : tagTester('WeakMap');\n","import tagTester from './_tagTester.js';\nimport { isIE11 } from './_stringTagBug.js';\nimport { ie11fingerprint, setMethods } from './_methodFingerprint.js';\n\nexport default isIE11 ? ie11fingerprint(setMethods) : tagTester('Set');\n","import tagTester from './_tagTester.js';\n\nexport default tagTester('WeakSet');\n","import keys from './keys.js';\n\n// Retrieve the values of an object's properties.\nexport default function values(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[_keys[i]];\n }\n return values;\n}\n","import keys from './keys.js';\n\n// Convert an object into a list of `[key, value]` pairs.\n// The opposite of `_.object` with one argument.\nexport default function pairs(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [_keys[i], obj[_keys[i]]];\n }\n return pairs;\n}\n","import keys from './keys.js';\n\n// Invert the keys and values of an object. The values must be serializable.\nexport default function invert(obj) {\n var result = {};\n var _keys = keys(obj);\n for (var i = 0, length = _keys.length; i < length; i++) {\n result[obj[_keys[i]]] = _keys[i];\n }\n return result;\n}\n","import isFunction from './isFunction.js';\n\n// Return a sorted list of the function names available on the object.\nexport default function functions(obj) {\n var names = [];\n for (var key in obj) {\n if (isFunction(obj[key])) names.push(key);\n }\n return names.sort();\n}\n","// An internal function for creating assigner functions.\nexport default function createAssigner(keysFunc, defaults) {\n return function(obj) {\n var length = arguments.length;\n if (defaults) obj = Object(obj);\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n keys = keysFunc(source),\n l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (!defaults || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n}\n","import createAssigner from './_createAssigner.js';\nimport allKeys from './allKeys.js';\n\n// Extend a given object with all the properties in passed-in object(s).\nexport default createAssigner(allKeys);\n","import createAssigner from './_createAssigner.js';\nimport keys from './keys.js';\n\n// Assigns a given object with all the own properties in the passed-in\n// object(s).\n// (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\nexport default createAssigner(keys);\n","import createAssigner from './_createAssigner.js';\nimport allKeys from './allKeys.js';\n\n// Fill in a given object with default properties.\nexport default createAssigner(allKeys, true);\n","import isObject from './isObject.js';\nimport { nativeCreate } from './_setup.js';\n\n// Create a naked function reference for surrogate-prototype-swapping.\nfunction ctor() {\n return function(){};\n}\n\n// An internal function for creating a new object that inherits from another.\nexport default function baseCreate(prototype) {\n if (!isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n var Ctor = ctor();\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n}\n","import baseCreate from './_baseCreate.js';\nimport extendOwn from './extendOwn.js';\n\n// Creates an object that inherits from the given prototype object.\n// If additional properties are provided then they will be added to the\n// created object.\nexport default function create(prototype, props) {\n var result = baseCreate(prototype);\n if (props) extendOwn(result, props);\n return result;\n}\n","import isObject from './isObject.js';\nimport isArray from './isArray.js';\nimport extend from './extend.js';\n\n// Create a (shallow-cloned) duplicate of an object.\nexport default function clone(obj) {\n if (!isObject(obj)) return obj;\n return isArray(obj) ? obj.slice() : extend({}, obj);\n}\n","// Invokes `interceptor` with the `obj` and then returns `obj`.\n// The primary purpose of this method is to \"tap into\" a method chain, in\n// order to perform operations on intermediate results within the chain.\nexport default function tap(obj, interceptor) {\n interceptor(obj);\n return obj;\n}\n","import _ from './underscore.js';\nimport isArray from './isArray.js';\n\n// Normalize a (deep) property `path` to array.\n// Like `_.iteratee`, this function can be customized.\nexport default function toPath(path) {\n return isArray(path) ? path : [path];\n}\n_.toPath = toPath;\n","import _ from './underscore.js';\nimport './toPath.js';\n\n// Internal wrapper for `_.toPath` to enable minification.\n// Similar to `cb` for `_.iteratee`.\nexport default function toPath(path) {\n return _.toPath(path);\n}\n","// Internal function to obtain a nested property in `obj` along `path`.\nexport default function deepGet(obj, path) {\n var length = path.length;\n for (var i = 0; i < length; i++) {\n if (obj == null) return void 0;\n obj = obj[path[i]];\n }\n return length ? obj : void 0;\n}\n","import toPath from './_toPath.js';\nimport deepGet from './_deepGet.js';\nimport isUndefined from './isUndefined.js';\n\n// Get the value of the (deep) property on `path` from `object`.\n// If any property in `path` does not exist or if the value is\n// `undefined`, return `defaultValue` instead.\n// The `path` is normalized through `_.toPath`.\nexport default function get(object, path, defaultValue) {\n var value = deepGet(object, toPath(path));\n return isUndefined(value) ? defaultValue : value;\n}\n","import _has from './_has.js';\nimport toPath from './_toPath.js';\n\n// Shortcut function for checking if an object has a given property directly on\n// itself (in other words, not on a prototype). Unlike the internal `has`\n// function, this public version can also traverse nested properties.\nexport default function has(obj, path) {\n path = toPath(path);\n var length = path.length;\n for (var i = 0; i < length; i++) {\n var key = path[i];\n if (!_has(obj, key)) return false;\n obj = obj[key];\n }\n return !!length;\n}\n","// Keep the identity function around for default iteratees.\nexport default function identity(value) {\n return value;\n}\n","import extendOwn from './extendOwn.js';\nimport isMatch from './isMatch.js';\n\n// Returns a predicate for checking whether an object has a given set of\n// `key:value` pairs.\nexport default function matcher(attrs) {\n attrs = extendOwn({}, attrs);\n return function(obj) {\n return isMatch(obj, attrs);\n };\n}\n","import deepGet from './_deepGet.js';\nimport toPath from './_toPath.js';\n\n// Creates a function that, when passed an object, will traverse that object’s\n// properties down the given `path`, specified as an array of keys or indices.\nexport default function property(path) {\n path = toPath(path);\n return function(obj) {\n return deepGet(obj, path);\n };\n}\n","// Internal function that returns an efficient (for current engines) version\n// of the passed-in callback, to be repeatedly applied in other Underscore\n// functions.\nexport default function optimizeCb(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n // The 2-argument case is omitted because we’re not using it.\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n}\n","import identity from './identity.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isArray from './isArray.js';\nimport matcher from './matcher.js';\nimport property from './property.js';\nimport optimizeCb from './_optimizeCb.js';\n\n// An internal function to generate callbacks that can be applied to each\n// element in a collection, returning the desired result — either `_.identity`,\n// an arbitrary callback, a property matcher, or a property accessor.\nexport default function baseIteratee(value, context, argCount) {\n if (value == null) return identity;\n if (isFunction(value)) return optimizeCb(value, context, argCount);\n if (isObject(value) && !isArray(value)) return matcher(value);\n return property(value);\n}\n","import _ from './underscore.js';\nimport baseIteratee from './_baseIteratee.js';\n\n// External wrapper for our callback generator. Users may customize\n// `_.iteratee` if they want additional predicate/iteratee shorthand styles.\n// This abstraction hides the internal-only `argCount` argument.\nexport default function iteratee(value, context) {\n return baseIteratee(value, context, Infinity);\n}\n_.iteratee = iteratee;\n","import _ from './underscore.js';\nimport baseIteratee from './_baseIteratee.js';\nimport iteratee from './iteratee.js';\n\n// The function we call internally to generate a callback. It invokes\n// `_.iteratee` if overridden, otherwise `baseIteratee`.\nexport default function cb(value, context, argCount) {\n if (_.iteratee !== iteratee) return _.iteratee(value, context);\n return baseIteratee(value, context, argCount);\n}\n","import cb from './_cb.js';\nimport keys from './keys.js';\n\n// Returns the results of applying the `iteratee` to each element of `obj`.\n// In contrast to `_.map` it returns an object.\nexport default function mapObject(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = keys(obj),\n length = _keys.length,\n results = {};\n for (var index = 0; index < length; index++) {\n var currentKey = _keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n","// Predicate-generating function. Often useful outside of Underscore.\nexport default function noop(){}\n","import noop from './noop.js';\nimport get from './get.js';\n\n// Generates a function for a given object that returns a given property.\nexport default function propertyOf(obj) {\n if (obj == null) return noop;\n return function(path) {\n return get(obj, path);\n };\n}\n","import optimizeCb from './_optimizeCb.js';\n\n// Run a function **n** times.\nexport default function times(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = optimizeCb(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n}\n","// Return a random integer between `min` and `max` (inclusive).\nexport default function random(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n}\n","// A (possibly faster) way to get the current timestamp as an integer.\nexport default Date.now || function() {\n return new Date().getTime();\n};\n","import keys from './keys.js';\n\n// Internal helper to generate functions for escaping and unescaping strings\n// to/from HTML interpolation.\nexport default function createEscaper(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped.\n var source = '(?:' + keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n}\n","// Internal list of HTML entities for escaping.\nexport default {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n};\n","import createEscaper from './_createEscaper.js';\nimport escapeMap from './_escapeMap.js';\n\n// Function for escaping strings to HTML interpolation.\nexport default createEscaper(escapeMap);\n","import createEscaper from './_createEscaper.js';\nimport unescapeMap from './_unescapeMap.js';\n\n// Function for unescaping strings from HTML interpolation.\nexport default createEscaper(unescapeMap);\n","import invert from './invert.js';\nimport escapeMap from './_escapeMap.js';\n\n// Internal list of HTML entities for unescaping.\nexport default invert(escapeMap);\n","import _ from './underscore.js';\n\n// By default, Underscore uses ERB-style template delimiters. Change the\n// following template settings to use alternative delimiters.\nexport default _.templateSettings = {\n evaluate: /<%([\\s\\S]+?)%>/g,\n interpolate: /<%=([\\s\\S]+?)%>/g,\n escape: /<%-([\\s\\S]+?)%>/g\n};\n","import defaults from './defaults.js';\nimport _ from './underscore.js';\nimport './templateSettings.js';\n\n// When customizing `_.templateSettings`, if you don't want to define an\n// interpolation, evaluation or escaping regex, we need one that is\n// guaranteed not to match.\nvar noMatch = /(.)^/;\n\n// Certain characters need to be escaped so that they can be put into a\n// string literal.\nvar escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n};\n\nvar escapeRegExp = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\nfunction escapeChar(match) {\n return '\\\\' + escapes[match];\n}\n\n// JavaScript micro-templating, similar to John Resig's implementation.\n// Underscore templating handles arbitrary delimiters, preserves whitespace,\n// and correctly escapes quotes within interpolated code.\n// NB: `oldSettings` only exists for backwards compatibility.\nexport default function template(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = defaults({}, settings, _.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escapeRegExp, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offset.\n return match;\n });\n source += \"';\\n\";\n\n // If a variable is not specified, place data values in local scope.\n if (!settings.variable) source = 'with(obj||{}){\\n' + source + '}\\n';\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n var render;\n try {\n render = new Function(settings.variable || 'obj', '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n var argument = settings.variable || 'obj';\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n}\n","import isFunction from './isFunction.js';\nimport toPath from './_toPath.js';\n\n// Traverses the children of `obj` along `path`. If a child is a function, it\n// is invoked with its parent as context. Returns the value of the final\n// child, or `fallback` if any child is undefined.\nexport default function result(obj, path, fallback) {\n path = toPath(path);\n var length = path.length;\n if (!length) {\n return isFunction(fallback) ? fallback.call(obj) : fallback;\n }\n for (var i = 0; i < length; i++) {\n var prop = obj == null ? void 0 : obj[path[i]];\n if (prop === void 0) {\n prop = fallback;\n i = length; // Ensure we don't continue iterating.\n }\n obj = isFunction(prop) ? prop.call(obj) : prop;\n }\n return obj;\n}\n","// Generate a unique integer id (unique within the entire client session).\n// Useful for temporary DOM ids.\nvar idCounter = 0;\nexport default function uniqueId(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n}\n","import _ from './underscore.js';\n\n// Start chaining a wrapped Underscore object.\nexport default function chain(obj) {\n var instance = _(obj);\n instance._chain = true;\n return instance;\n}\n","import baseCreate from './_baseCreate.js';\nimport isObject from './isObject.js';\n\n// Internal function to execute `sourceFunc` bound to `context` with optional\n// `args`. Determines whether to execute a function as a constructor or as a\n// normal function.\nexport default function executeBound(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (isObject(result)) return result;\n return self;\n}\n","import restArguments from './restArguments.js';\nimport executeBound from './_executeBound.js';\nimport _ from './underscore.js';\n\n// Partially apply a function by creating a version that has had some of its\n// arguments pre-filled, without changing its dynamic `this` context. `_` acts\n// as a placeholder by default, allowing any combination of arguments to be\n// pre-filled. Set `_.partial.placeholder` for a custom placeholder argument.\nvar partial = restArguments(function(func, boundArgs) {\n var placeholder = partial.placeholder;\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n});\n\npartial.placeholder = _;\nexport default partial;\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport executeBound from './_executeBound.js';\n\n// Create a function bound to a given object (assigning `this`, and arguments,\n// optionally).\nexport default restArguments(function(func, context, args) {\n if (!isFunction(func)) throw new TypeError('Bind must be called on a function');\n var bound = restArguments(function(callArgs) {\n return executeBound(func, bound, context, this, args.concat(callArgs));\n });\n return bound;\n});\n","import createSizePropertyCheck from './_createSizePropertyCheck.js';\nimport getLength from './_getLength.js';\n\n// Internal helper for collection methods to determine whether a collection\n// should be iterated as an array or as an object.\n// Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n// Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\nexport default createSizePropertyCheck(getLength);\n","import getLength from './_getLength.js';\nimport isArrayLike from './_isArrayLike.js';\nimport isArray from './isArray.js';\nimport isArguments from './isArguments.js';\n\n// Internal implementation of a recursive `flatten` function.\nexport default function flatten(input, depth, strict, output) {\n output = output || [];\n if (!depth && depth !== 0) {\n depth = Infinity;\n } else if (depth <= 0) {\n return output.concat(input);\n }\n var idx = output.length;\n for (var i = 0, length = getLength(input); i < length; i++) {\n var value = input[i];\n if (isArrayLike(value) && (isArray(value) || isArguments(value))) {\n // Flatten current level of array or arguments object.\n if (depth > 1) {\n flatten(value, depth - 1, strict, output);\n idx = output.length;\n } else {\n var j = 0, len = value.length;\n while (j < len) output[idx++] = value[j++];\n }\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n}\n","import restArguments from './restArguments.js';\nimport flatten from './_flatten.js';\nimport bind from './bind.js';\n\n// Bind a number of an object's methods to that object. Remaining arguments\n// are the method names to be bound. Useful for ensuring that all callbacks\n// defined on an object belong to it.\nexport default restArguments(function(obj, keys) {\n keys = flatten(keys, false, false);\n var index = keys.length;\n if (index < 1) throw new Error('bindAll must be passed function names');\n while (index--) {\n var key = keys[index];\n obj[key] = bind(obj[key], obj);\n }\n return obj;\n});\n","import has from './_has.js';\n\n// Memoize an expensive function by storing its results.\nexport default function memoize(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!has(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n}\n","import restArguments from './restArguments.js';\n\n// Delays a function for the given number of milliseconds, and then calls\n// it with the arguments supplied.\nexport default restArguments(function(func, wait, args) {\n return setTimeout(function() {\n return func.apply(null, args);\n }, wait);\n});\n","import partial from './partial.js';\nimport delay from './delay.js';\nimport _ from './underscore.js';\n\n// Defers a function, scheduling it to run after the current call stack has\n// cleared.\nexport default partial(delay, _, 1);\n","import now from './now.js';\n\n// Returns a function, that, when invoked, will only be triggered at most once\n// during a given window of time. Normally, the throttled function will run\n// as much as it can, without ever going more than once per `wait` duration;\n// but if you'd like to disable the execution on the leading edge, pass\n// `{leading: false}`. To disable execution on the trailing edge, ditto.\nexport default function throttle(func, wait, options) {\n var timeout, context, args, result;\n var previous = 0;\n if (!options) options = {};\n\n var later = function() {\n previous = options.leading === false ? 0 : now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n var throttled = function() {\n var _now = now();\n if (!previous && options.leading === false) previous = _now;\n var remaining = wait - (_now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = _now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n\n throttled.cancel = function() {\n clearTimeout(timeout);\n previous = 0;\n timeout = context = args = null;\n };\n\n return throttled;\n}\n","import restArguments from './restArguments.js';\nimport delay from './delay.js';\n\n// When a sequence of calls of the returned function ends, the argument\n// function is triggered. The end of a sequence is defined by the `wait`\n// parameter. If `immediate` is passed, the argument function will be\n// triggered at the beginning of the sequence instead of at the end.\nexport default function debounce(func, wait, immediate) {\n var timeout, result;\n\n var later = function(context, args) {\n timeout = null;\n if (args) result = func.apply(context, args);\n };\n\n var debounced = restArguments(function(args) {\n if (timeout) clearTimeout(timeout);\n if (immediate) {\n var callNow = !timeout;\n timeout = setTimeout(later, wait);\n if (callNow) result = func.apply(this, args);\n } else {\n timeout = delay(later, wait, this, args);\n }\n\n return result;\n });\n\n debounced.cancel = function() {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return debounced;\n}\n","import partial from './partial.js';\n\n// Returns the first function passed as an argument to the second,\n// allowing you to adjust arguments, run code before and after, and\n// conditionally execute the original function.\nexport default function wrap(func, wrapper) {\n return partial(wrapper, func);\n}\n","// Returns a negated version of the passed-in predicate.\nexport default function negate(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n}\n","// Returns a function that is the composition of a list of functions, each\n// consuming the return value of the function that follows.\nexport default function compose() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n}\n","// Returns a function that will only be executed on and after the Nth call.\nexport default function after(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n}\n","// Returns a function that will only be executed up to (but not including) the\n// Nth call.\nexport default function before(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n}\n","import partial from './partial.js';\nimport before from './before.js';\n\n// Returns a function that will be executed at most one time, no matter how\n// often you call it. Useful for lazy initialization.\nexport default partial(before, 2);\n","import cb from './_cb.js';\nimport keys from './keys.js';\n\n// Returns the first key on an object that passes a truth test.\nexport default function findKey(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = keys(obj), key;\n for (var i = 0, length = _keys.length; i < length; i++) {\n key = _keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n}\n","import cb from './_cb.js';\nimport getLength from './_getLength.js';\n\n// Internal function to generate `_.findIndex` and `_.findLastIndex`.\nexport default function createPredicateIndexFinder(dir) {\n return function(array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n}\n","import createPredicateIndexFinder from './_createPredicateIndexFinder.js';\n\n// Returns the first index on an array-like that passes a truth test.\nexport default createPredicateIndexFinder(1);\n","import createPredicateIndexFinder from './_createPredicateIndexFinder.js';\n\n// Returns the last index on an array-like that passes a truth test.\nexport default createPredicateIndexFinder(-1);\n","import cb from './_cb.js';\nimport getLength from './_getLength.js';\n\n// Use a comparator function to figure out the smallest index at which\n// an object should be inserted so as to maintain order. Uses binary search.\nexport default function sortedIndex(array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n}\n","import getLength from './_getLength.js';\nimport { slice } from './_setup.js';\nimport isNaN from './isNaN.js';\n\n// Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions.\nexport default function createIndexFinder(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), isNaN);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n}\n","import sortedIndex from './sortedIndex.js';\nimport findIndex from './findIndex.js';\nimport createIndexFinder from './_createIndexFinder.js';\n\n// Return the position of the first occurrence of an item in an array,\n// or -1 if the item is not included in the array.\n// If the array is large and already in sort order, pass `true`\n// for **isSorted** to use binary search.\nexport default createIndexFinder(1, findIndex, sortedIndex);\n","import findLastIndex from './findLastIndex.js';\nimport createIndexFinder from './_createIndexFinder.js';\n\n// Return the position of the last occurrence of an item in an array,\n// or -1 if the item is not included in the array.\nexport default createIndexFinder(-1, findLastIndex);\n","import isArrayLike from './_isArrayLike.js';\nimport findIndex from './findIndex.js';\nimport findKey from './findKey.js';\n\n// Return the first value which passes a truth test.\nexport default function find(obj, predicate, context) {\n var keyFinder = isArrayLike(obj) ? findIndex : findKey;\n var key = keyFinder(obj, predicate, context);\n if (key !== void 0 && key !== -1) return obj[key];\n}\n","import find from './find.js';\nimport matcher from './matcher.js';\n\n// Convenience version of a common use case of `_.find`: getting the first\n// object containing specific `key:value` pairs.\nexport default function findWhere(obj, attrs) {\n return find(obj, matcher(attrs));\n}\n","import optimizeCb from './_optimizeCb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// The cornerstone for collection functions, an `each`\n// implementation, aka `forEach`.\n// Handles raw objects in addition to array-likes. Treats all\n// sparse array-likes as if they were dense.\nexport default function each(obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var _keys = keys(obj);\n for (i = 0, length = _keys.length; i < length; i++) {\n iteratee(obj[_keys[i]], _keys[i], obj);\n }\n }\n return obj;\n}\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Return the results of applying the iteratee to each element.\nexport default function map(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\nimport optimizeCb from './_optimizeCb.js';\n\n// Internal helper to create a reducing function, iterating left or right.\nexport default function createReduce(dir) {\n // Wrap code that reassigns argument variables in a separate function than\n // the one that accesses `arguments.length` to avoid a perf hit. (#1991)\n var reducer = function(obj, iteratee, memo, initial) {\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n if (!initial) {\n memo = obj[_keys ? _keys[index] : index];\n index += dir;\n }\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = _keys ? _keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n };\n\n return function(obj, iteratee, memo, context) {\n var initial = arguments.length >= 3;\n return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial);\n };\n}\n","import createReduce from './_createReduce.js';\n\n// **Reduce** builds up a single result from a list of values, aka `inject`,\n// or `foldl`.\nexport default createReduce(1);\n","import createReduce from './_createReduce.js';\n\n// The right-associative version of reduce, also known as `foldr`.\nexport default createReduce(-1);\n","import cb from './_cb.js';\nimport each from './each.js';\n\n// Return all the elements that pass a truth test.\nexport default function filter(obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n}\n","import filter from './filter.js';\nimport negate from './negate.js';\nimport cb from './_cb.js';\n\n// Return all the elements for which a truth test fails.\nexport default function reject(obj, predicate, context) {\n return filter(obj, negate(cb(predicate)), context);\n}\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Determine whether all of the elements pass a truth test.\nexport default function every(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n}\n","import cb from './_cb.js';\nimport isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Determine if at least one element in the object passes a truth test.\nexport default function some(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport indexOf from './indexOf.js';\n\n// Determine if the array or object contains a given item (using `===`).\nexport default function contains(obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return indexOf(obj, item, fromIndex) >= 0;\n}\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport map from './map.js';\nimport deepGet from './_deepGet.js';\nimport toPath from './_toPath.js';\n\n// Invoke a method (with arguments) on every item in a collection.\nexport default restArguments(function(obj, path, args) {\n var contextPath, func;\n if (isFunction(path)) {\n func = path;\n } else {\n path = toPath(path);\n contextPath = path.slice(0, -1);\n path = path[path.length - 1];\n }\n return map(obj, function(context) {\n var method = func;\n if (!method) {\n if (contextPath && contextPath.length) {\n context = deepGet(context, contextPath);\n }\n if (context == null) return void 0;\n method = context[path];\n }\n return method == null ? method : method.apply(context, args);\n });\n});\n","import map from './map.js';\nimport property from './property.js';\n\n// Convenience version of a common use case of `_.map`: fetching a property.\nexport default function pluck(obj, key) {\n return map(obj, property(key));\n}\n","import filter from './filter.js';\nimport matcher from './matcher.js';\n\n// Convenience version of a common use case of `_.filter`: selecting only\n// objects containing specific `key:value` pairs.\nexport default function where(obj, attrs) {\n return filter(obj, matcher(attrs));\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport cb from './_cb.js';\nimport each from './each.js';\n\n// Return the maximum element (or element-based computation).\nexport default function max(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed > lastComputed || computed === -Infinity && result === -Infinity) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport values from './values.js';\nimport cb from './_cb.js';\nimport each from './each.js';\n\n// Return the minimum element (or element-based computation).\nexport default function min(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value < result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed < lastComputed || computed === Infinity && result === Infinity) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n","import isArrayLike from './_isArrayLike.js';\nimport clone from './clone.js';\nimport values from './values.js';\nimport getLength from './_getLength.js';\nimport random from './random.js';\n\n// Sample **n** random values from a collection using the modern version of the\n// [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n// If **n** is not specified, returns a single random element.\n// The internal `guard` argument allows it to work with `_.map`.\nexport default function sample(obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n return obj[random(obj.length - 1)];\n }\n var sample = isArrayLike(obj) ? clone(obj) : values(obj);\n var length = getLength(sample);\n n = Math.max(Math.min(n, length), 0);\n var last = length - 1;\n for (var index = 0; index < n; index++) {\n var rand = random(index, last);\n var temp = sample[index];\n sample[index] = sample[rand];\n sample[rand] = temp;\n }\n return sample.slice(0, n);\n}\n","import sample from './sample.js';\n\n// Shuffle a collection.\nexport default function shuffle(obj) {\n return sample(obj, Infinity);\n}\n","import cb from './_cb.js';\nimport pluck from './pluck.js';\nimport map from './map.js';\n\n// Sort the object's values by a criterion produced by an iteratee.\nexport default function sortBy(obj, iteratee, context) {\n var index = 0;\n iteratee = cb(iteratee, context);\n return pluck(map(obj, function(value, key, list) {\n return {\n value: value,\n index: index++,\n criteria: iteratee(value, key, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n}\n","import cb from './_cb.js';\nimport each from './each.js';\n\n// An internal function used for aggregate \"group by\" operations.\nexport default function group(behavior, partition) {\n return function(obj, iteratee, context) {\n var result = partition ? [[], []] : {};\n iteratee = cb(iteratee, context);\n each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n}\n","import group from './_group.js';\nimport has from './_has.js';\n\n// Groups the object's values by a criterion. Pass either a string attribute\n// to group by, or a function that returns the criterion.\nexport default group(function(result, value, key) {\n if (has(result, key)) result[key].push(value); else result[key] = [value];\n});\n","import group from './_group.js';\n\n// Indexes the object's values by a criterion, similar to `_.groupBy`, but for\n// when you know that your index values will be unique.\nexport default group(function(result, value, key) {\n result[key] = value;\n});\n","import group from './_group.js';\nimport has from './_has.js';\n\n// Counts instances of an object that group by a certain criterion. Pass\n// either a string attribute to count by, or a function that returns the\n// criterion.\nexport default group(function(result, value, key) {\n if (has(result, key)) result[key]++; else result[key] = 1;\n});\n","import group from './_group.js';\n\n// Split a collection into two arrays: one whose elements all pass the given\n// truth test, and one whose elements all do not pass the truth test.\nexport default group(function(result, value, pass) {\n result[pass ? 0 : 1].push(value);\n}, true);\n","import isArray from './isArray.js';\nimport { slice } from './_setup.js';\nimport isString from './isString.js';\nimport isArrayLike from './_isArrayLike.js';\nimport map from './map.js';\nimport identity from './identity.js';\nimport values from './values.js';\n\n// Safely create a real, live array from anything iterable.\nvar reStrSymbol = /[^\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff]/g;\nexport default function toArray(obj) {\n if (!obj) return [];\n if (isArray(obj)) return slice.call(obj);\n if (isString(obj)) {\n // Keep surrogate pair characters together.\n return obj.match(reStrSymbol);\n }\n if (isArrayLike(obj)) return map(obj, identity);\n return values(obj);\n}\n","import isArrayLike from './_isArrayLike.js';\nimport keys from './keys.js';\n\n// Return the number of elements in a collection.\nexport default function size(obj) {\n if (obj == null) return 0;\n return isArrayLike(obj) ? obj.length : keys(obj).length;\n}\n","// Internal `_.pick` helper function to determine whether `key` is an enumerable\n// property name of `obj`.\nexport default function keyInObj(value, key, obj) {\n return key in obj;\n}\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport optimizeCb from './_optimizeCb.js';\nimport allKeys from './allKeys.js';\nimport keyInObj from './_keyInObj.js';\nimport flatten from './_flatten.js';\n\n// Return a copy of the object only containing the allowed properties.\nexport default restArguments(function(obj, keys) {\n var result = {}, iteratee = keys[0];\n if (obj == null) return result;\n if (isFunction(iteratee)) {\n if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]);\n keys = allKeys(obj);\n } else {\n iteratee = keyInObj;\n keys = flatten(keys, false, false);\n obj = Object(obj);\n }\n for (var i = 0, length = keys.length; i < length; i++) {\n var key = keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n});\n","import restArguments from './restArguments.js';\nimport isFunction from './isFunction.js';\nimport negate from './negate.js';\nimport map from './map.js';\nimport flatten from './_flatten.js';\nimport contains from './contains.js';\nimport pick from './pick.js';\n\n// Return a copy of the object without the disallowed properties.\nexport default restArguments(function(obj, keys) {\n var iteratee = keys[0], context;\n if (isFunction(iteratee)) {\n iteratee = negate(iteratee);\n if (keys.length > 1) context = keys[1];\n } else {\n keys = map(flatten(keys, false, false), String);\n iteratee = function(value, key) {\n return !contains(keys, key);\n };\n }\n return pick(obj, iteratee, context);\n});\n","import { slice } from './_setup.js';\n\n// Returns everything but the last entry of the array. Especially useful on\n// the arguments object. Passing **n** will return all the values in\n// the array, excluding the last N.\nexport default function initial(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n}\n","import initial from './initial.js';\n\n// Get the first element of an array. Passing **n** will return the first N\n// values in the array. The **guard** check allows it to work with `_.map`.\nexport default function first(array, n, guard) {\n if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n if (n == null || guard) return array[0];\n return initial(array, array.length - n);\n}\n","import { slice } from './_setup.js';\n\n// Returns everything but the first entry of the `array`. Especially useful on\n// the `arguments` object. Passing an **n** will return the rest N values in the\n// `array`.\nexport default function rest(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n}\n","import rest from './rest.js';\n\n// Get the last element of an array. Passing **n** will return the last N\n// values in the array.\nexport default function last(array, n, guard) {\n if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n if (n == null || guard) return array[array.length - 1];\n return rest(array, Math.max(0, array.length - n));\n}\n","import filter from './filter.js';\n\n// Trim out all falsy values from an array.\nexport default function compact(array) {\n return filter(array, Boolean);\n}\n","import _flatten from './_flatten.js';\n\n// Flatten out an array, either recursively (by default), or up to `depth`.\n// Passing `true` or `false` as `depth` means `1` or `Infinity`, respectively.\nexport default function flatten(array, depth) {\n return _flatten(array, depth, false);\n}\n","import restArguments from './restArguments.js';\nimport flatten from './_flatten.js';\nimport filter from './filter.js';\nimport contains from './contains.js';\n\n// Take the difference between one array and a number of other arrays.\n// Only the elements present in just the first array will remain.\nexport default restArguments(function(array, rest) {\n rest = flatten(rest, true, true);\n return filter(array, function(value){\n return !contains(rest, value);\n });\n});\n","import restArguments from './restArguments.js';\nimport difference from './difference.js';\n\n// Return a version of the array that does not contain the specified value(s).\nexport default restArguments(function(array, otherArrays) {\n return difference(array, otherArrays);\n});\n","import isBoolean from './isBoolean.js';\nimport cb from './_cb.js';\nimport getLength from './_getLength.js';\nimport contains from './contains.js';\n\n// Produce a duplicate-free version of the array. If the array has already\n// been sorted, you have the option of using a faster algorithm.\n// The faster algorithm will not work with an iteratee if the iteratee\n// is not a one-to-one function, so providing an iteratee will disable\n// the faster algorithm.\nexport default function uniq(array, isSorted, iteratee, context) {\n if (!isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted && !iteratee) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n}\n","import restArguments from './restArguments.js';\nimport uniq from './uniq.js';\nimport flatten from './_flatten.js';\n\n// Produce an array that contains the union: each distinct element from all of\n// the passed-in arrays.\nexport default restArguments(function(arrays) {\n return uniq(flatten(arrays, true, true));\n});\n","import getLength from './_getLength.js';\nimport contains from './contains.js';\n\n// Produce an array that contains every item shared between all the\n// passed-in arrays.\nexport default function intersection(array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = getLength(array); i < length; i++) {\n var item = array[i];\n if (contains(result, item)) continue;\n var j;\n for (j = 1; j < argsLength; j++) {\n if (!contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n}\n","import max from './max.js';\nimport getLength from './_getLength.js';\nimport pluck from './pluck.js';\n\n// Complement of zip. Unzip accepts an array of arrays and groups\n// each array's elements on shared indices.\nexport default function unzip(array) {\n var length = array && max(array, getLength).length || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = pluck(array, index);\n }\n return result;\n}\n","import restArguments from './restArguments.js';\nimport unzip from './unzip.js';\n\n// Zip together multiple lists into a single array -- elements that share\n// an index go together.\nexport default restArguments(unzip);\n","import getLength from './_getLength.js';\n\n// Converts lists into objects. Pass either a single array of `[key, value]`\n// pairs, or two parallel arrays of the same length -- one of keys, and one of\n// the corresponding values. Passing by pairs is the reverse of `_.pairs`.\nexport default function object(list, values) {\n var result = {};\n for (var i = 0, length = getLength(list); i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n}\n","// Generate an integer Array containing an arithmetic progression. A port of\n// the native Python `range()` function. See\n// [the Python documentation](https://docs.python.org/library/functions.html#range).\nexport default function range(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n if (!step) {\n step = stop < start ? -1 : 1;\n }\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n}\n","import { slice } from './_setup.js';\n\n// Chunk a single array into multiple arrays, each containing `count` or fewer\n// items.\nexport default function chunk(array, count) {\n if (count == null || count < 1) return [];\n var result = [];\n var i = 0, length = array.length;\n while (i < length) {\n result.push(slice.call(array, i, i += count));\n }\n return result;\n}\n","import _ from './underscore.js';\n\n// Helper function to continue chaining intermediate results.\nexport default function chainResult(instance, obj) {\n return instance._chain ? _(obj).chain() : obj;\n}\n","import _ from './underscore.js';\nimport each from './each.js';\nimport functions from './functions.js';\nimport { push } from './_setup.js';\nimport chainResult from './_chainResult.js';\n\n// Add your own custom functions to the Underscore object.\nexport default function mixin(obj) {\n each(functions(obj), function(name) {\n var func = _[name] = obj[name];\n _.prototype[name] = function() {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return chainResult(this, func.apply(_, args));\n };\n });\n return _;\n}\n","import _ from './underscore.js';\nimport each from './each.js';\nimport { ArrayProto } from './_setup.js';\nimport chainResult from './_chainResult.js';\n\n// Add all mutator `Array` functions to the wrapper.\neach(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n if (obj != null) {\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) {\n delete obj[0];\n }\n }\n return chainResult(this, obj);\n };\n});\n\n// Add all accessor `Array` functions to the wrapper.\neach(['concat', 'join', 'slice'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n if (obj != null) obj = method.apply(obj, arguments);\n return chainResult(this, obj);\n };\n});\n\nexport default _;\n","// Default Export\n// ==============\n// In this module, we mix our bundled exports into the `_` object and export\n// the result. This is analogous to setting `module.exports = _` in CommonJS.\n// Hence, this module is also the entry point of our UMD bundle and the package\n// entry point for CommonJS and AMD users. In other words, this is (the source\n// of) the module you are interfacing with when you do any of the following:\n//\n// ```js\n// // CommonJS\n// var _ = require('underscore');\n//\n// // AMD\n// define(['underscore'], function(_) {...});\n//\n// // UMD in the browser\n// // _ is available as a global variable\n// ```\nimport * as allExports from './index.js';\nimport { mixin } from './index.js';\n\n// Add all of the Underscore functions to the wrapper object.\nvar _ = mixin(allExports);\n// Legacy Node.js API.\n_._ = _;\n// Export the Underscore API.\nexport default _;\n","// Backbone.js 1.3.3\n\n// (c) 2010-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n// Backbone may be freely distributed under the MIT license.\n// For all details and documentation:\n// http://backbonejs.org\n\n(function(factory) {\n\n // Establish the root object, `window` (`self`) in the browser, or `global` on the server.\n // We use `self` instead of `window` for `WebWorker` support.\n var root = (typeof self == 'object' && self.self === self && self) ||\n (typeof global == 'object' && global.global === global && global);\n\n // Set up Backbone appropriately for the environment. Start with AMD.\n if (typeof define === 'function' && define.amd) {\n define(['underscore', 'jquery', 'exports'], function(_, $, exports) {\n // Export global even in AMD case in case this script is loaded with\n // others that may still expect a global Backbone.\n root.Backbone = factory(root, exports, _, $);\n });\n\n // Next for Node.js or CommonJS. jQuery may not be needed as a module.\n } else if (typeof exports !== 'undefined') {\n var _ = require('underscore'), $;\n try { $ = require('jquery'); } catch (e) {}\n factory(root, exports, _, $);\n\n // Finally, as a browser global.\n } else {\n root.Backbone = factory(root, {}, root._, (root.jQuery || root.Zepto || root.ender || root.$));\n }\n\n})(function(root, Backbone, _, $) {\n\n // Initial Setup\n // -------------\n\n // Save the previous value of the `Backbone` variable, so that it can be\n // restored later on, if `noConflict` is used.\n var previousBackbone = root.Backbone;\n\n // Create a local reference to a common array method we'll want to use later.\n var slice = Array.prototype.slice;\n\n // Current version of the library. Keep in sync with `package.json`.\n Backbone.VERSION = '1.3.3';\n\n // For Backbone's purposes, jQuery, Zepto, Ender, or My Library (kidding) owns\n // the `$` variable.\n Backbone.$ = $;\n\n // Runs Backbone.js in *noConflict* mode, returning the `Backbone` variable\n // to its previous owner. Returns a reference to this Backbone object.\n Backbone.noConflict = function() {\n root.Backbone = previousBackbone;\n return this;\n };\n\n // Turn on `emulateHTTP` to support legacy HTTP servers. Setting this option\n // will fake `\"PATCH\"`, `\"PUT\"` and `\"DELETE\"` requests via the `_method` parameter and\n // set a `X-Http-Method-Override` header.\n Backbone.emulateHTTP = false;\n\n // Turn on `emulateJSON` to support legacy servers that can't deal with direct\n // `application/json` requests ... this will encode the body as\n // `application/x-www-form-urlencoded` instead and will send the model in a\n // form param named `model`.\n Backbone.emulateJSON = false;\n\n // Proxy Backbone class methods to Underscore functions, wrapping the model's\n // `attributes` object or collection's `models` array behind the scenes.\n //\n // collection.filter(function(model) { return model.get('age') > 10 });\n // collection.each(this.addView);\n //\n // `Function#apply` can be slow so we use the method's arg count, if we know it.\n var addMethod = function(length, method, attribute) {\n switch (length) {\n case 1: return function() {\n return _[method](this[attribute]);\n };\n case 2: return function(value) {\n return _[method](this[attribute], value);\n };\n case 3: return function(iteratee, context) {\n return _[method](this[attribute], cb(iteratee, this), context);\n };\n case 4: return function(iteratee, defaultVal, context) {\n return _[method](this[attribute], cb(iteratee, this), defaultVal, context);\n };\n default: return function() {\n var args = slice.call(arguments);\n args.unshift(this[attribute]);\n return _[method].apply(_, args);\n };\n }\n };\n var addUnderscoreMethods = function(Class, methods, attribute) {\n _.each(methods, function(length, method) {\n if (_[method]) Class.prototype[method] = addMethod(length, method, attribute);\n });\n };\n\n // Support `collection.sortBy('attr')` and `collection.findWhere({id: 1})`.\n var cb = function(iteratee, instance) {\n if (_.isFunction(iteratee)) return iteratee;\n if (_.isObject(iteratee) && !instance._isModel(iteratee)) return modelMatcher(iteratee);\n if (_.isString(iteratee)) return function(model) { return model.get(iteratee); };\n return iteratee;\n };\n var modelMatcher = function(attrs) {\n var matcher = _.matches(attrs);\n return function(model) {\n return matcher(model.attributes);\n };\n };\n\n // Backbone.Events\n // ---------------\n\n // A module that can be mixed in to *any object* in order to provide it with\n // a custom event channel. You may bind a callback to an event with `on` or\n // remove with `off`; `trigger`-ing an event fires all callbacks in\n // succession.\n //\n // var object = {};\n // _.extend(object, Backbone.Events);\n // object.on('expand', function(){ alert('expanded'); });\n // object.trigger('expand');\n //\n var Events = Backbone.Events = {};\n\n // Regular expression used to split event strings.\n var eventSplitter = /\\s+/;\n\n // Iterates over the standard `event, callback` (as well as the fancy multiple\n // space-separated events `\"change blur\", callback` and jQuery-style event\n // maps `{event: callback}`).\n var eventsApi = function(iteratee, events, name, callback, opts) {\n var i = 0, names;\n if (name && typeof name === 'object') {\n // Handle event maps.\n if (callback !== void 0 && 'context' in opts && opts.context === void 0) opts.context = callback;\n for (names = _.keys(name); i < names.length ; i++) {\n events = eventsApi(iteratee, events, names[i], name[names[i]], opts);\n }\n } else if (name && eventSplitter.test(name)) {\n // Handle space-separated event names by delegating them individually.\n for (names = name.split(eventSplitter); i < names.length; i++) {\n events = iteratee(events, names[i], callback, opts);\n }\n } else {\n // Finally, standard events.\n events = iteratee(events, name, callback, opts);\n }\n return events;\n };\n\n // Bind an event to a `callback` function. Passing `\"all\"` will bind\n // the callback to all events fired.\n Events.on = function(name, callback, context) {\n return internalOn(this, name, callback, context);\n };\n\n // Guard the `listening` argument from the public API.\n var internalOn = function(obj, name, callback, context, listening) {\n obj._events = eventsApi(onApi, obj._events || {}, name, callback, {\n context: context,\n ctx: obj,\n listening: listening\n });\n\n if (listening) {\n var listeners = obj._listeners || (obj._listeners = {});\n listeners[listening.id] = listening;\n }\n\n return obj;\n };\n\n // Inversion-of-control versions of `on`. Tell *this* object to listen to\n // an event in another object... keeping track of what it's listening to\n // for easier unbinding later.\n Events.listenTo = function(obj, name, callback) {\n if (!obj) return this;\n var id = obj._listenId || (obj._listenId = _.uniqueId('l'));\n var listeningTo = this._listeningTo || (this._listeningTo = {});\n var listening = listeningTo[id];\n\n // This object is not listening to any other events on `obj` yet.\n // Setup the necessary references to track the listening callbacks.\n if (!listening) {\n var thisId = this._listenId || (this._listenId = _.uniqueId('l'));\n listening = listeningTo[id] = {obj: obj, objId: id, id: thisId, listeningTo: listeningTo, count: 0};\n }\n\n // Bind callbacks on obj, and keep track of them on listening.\n internalOn(obj, name, callback, this, listening);\n return this;\n };\n\n // The reducing API that adds a callback to the `events` object.\n var onApi = function(events, name, callback, options) {\n if (callback) {\n var handlers = events[name] || (events[name] = []);\n var context = options.context, ctx = options.ctx, listening = options.listening;\n if (listening) listening.count++;\n\n handlers.push({callback: callback, context: context, ctx: context || ctx, listening: listening});\n }\n return events;\n };\n\n // Remove one or many callbacks. If `context` is null, removes all\n // callbacks with that function. If `callback` is null, removes all\n // callbacks for the event. If `name` is null, removes all bound\n // callbacks for all events.\n Events.off = function(name, callback, context) {\n if (!this._events) return this;\n this._events = eventsApi(offApi, this._events, name, callback, {\n context: context,\n listeners: this._listeners\n });\n return this;\n };\n\n // Tell this object to stop listening to either specific events ... or\n // to every object it's currently listening to.\n Events.stopListening = function(obj, name, callback) {\n var listeningTo = this._listeningTo;\n if (!listeningTo) return this;\n\n var ids = obj ? [obj._listenId] : _.keys(listeningTo);\n\n for (var i = 0; i < ids.length; i++) {\n var listening = listeningTo[ids[i]];\n\n // If listening doesn't exist, this object is not currently\n // listening to obj. Break out early.\n if (!listening) break;\n\n listening.obj.off(name, callback, this);\n }\n\n return this;\n };\n\n // The reducing API that removes a callback from the `events` object.\n var offApi = function(events, name, callback, options) {\n if (!events) return;\n\n var i = 0, listening;\n var context = options.context, listeners = options.listeners;\n\n // Delete all events listeners and \"drop\" events.\n if (!name && !callback && !context) {\n var ids = _.keys(listeners);\n for (; i < ids.length; i++) {\n listening = listeners[ids[i]];\n delete listeners[listening.id];\n delete listening.listeningTo[listening.objId];\n }\n return;\n }\n\n var names = name ? [name] : _.keys(events);\n for (; i < names.length; i++) {\n name = names[i];\n var handlers = events[name];\n\n // Bail out if there are no events stored.\n if (!handlers) break;\n\n // Replace events if there are any remaining. Otherwise, clean up.\n var remaining = [];\n for (var j = 0; j < handlers.length; j++) {\n var handler = handlers[j];\n if (\n callback && callback !== handler.callback &&\n callback !== handler.callback._callback ||\n context && context !== handler.context\n ) {\n remaining.push(handler);\n } else {\n listening = handler.listening;\n if (listening && --listening.count === 0) {\n delete listeners[listening.id];\n delete listening.listeningTo[listening.objId];\n }\n }\n }\n\n // Update tail event if the list has any events. Otherwise, clean up.\n if (remaining.length) {\n events[name] = remaining;\n } else {\n delete events[name];\n }\n }\n return events;\n };\n\n // Bind an event to only be triggered a single time. After the first time\n // the callback is invoked, its listener will be removed. If multiple events\n // are passed in using the space-separated syntax, the handler will fire\n // once for each event, not once for a combination of all events.\n Events.once = function(name, callback, context) {\n // Map the event into a `{event: once}` object.\n var events = eventsApi(onceMap, {}, name, callback, _.bind(this.off, this));\n if (typeof name === 'string' && context == null) callback = void 0;\n return this.on(events, callback, context);\n };\n\n // Inversion-of-control versions of `once`.\n Events.listenToOnce = function(obj, name, callback) {\n // Map the event into a `{event: once}` object.\n var events = eventsApi(onceMap, {}, name, callback, _.bind(this.stopListening, this, obj));\n return this.listenTo(obj, events);\n };\n\n // Reduces the event callbacks into a map of `{event: onceWrapper}`.\n // `offer` unbinds the `onceWrapper` after it has been called.\n var onceMap = function(map, name, callback, offer) {\n if (callback) {\n var once = map[name] = _.once(function() {\n offer(name, once);\n callback.apply(this, arguments);\n });\n once._callback = callback;\n }\n return map;\n };\n\n // Trigger one or many events, firing all bound callbacks. Callbacks are\n // passed the same arguments as `trigger` is, apart from the event name\n // (unless you're listening on `\"all\"`, which will cause your callback to\n // receive the true name of the event as the first argument).\n Events.trigger = function(name) {\n if (!this._events) return this;\n\n var length = Math.max(0, arguments.length - 1);\n var args = Array(length);\n for (var i = 0; i < length; i++) args[i] = arguments[i + 1];\n\n eventsApi(triggerApi, this._events, name, void 0, args);\n return this;\n };\n\n // Handles triggering the appropriate event callbacks.\n var triggerApi = function(objEvents, name, callback, args) {\n if (objEvents) {\n var events = objEvents[name];\n var allEvents = objEvents.all;\n if (events && allEvents) allEvents = allEvents.slice();\n if (events) triggerEvents(events, args);\n if (allEvents) triggerEvents(allEvents, [name].concat(args));\n }\n return objEvents;\n };\n\n // A difficult-to-believe, but optimized internal dispatch function for\n // triggering events. Tries to keep the usual cases speedy (most internal\n // Backbone events have 3 arguments).\n var triggerEvents = function(events, args) {\n var ev, i = -1, l = events.length, a1 = args[0], a2 = args[1], a3 = args[2];\n switch (args.length) {\n case 0: while (++i < l) (ev = events[i]).callback.call(ev.ctx); return;\n case 1: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1); return;\n case 2: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2); return;\n case 3: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2, a3); return;\n default: while (++i < l) (ev = events[i]).callback.apply(ev.ctx, args); return;\n }\n };\n\n // Aliases for backwards compatibility.\n Events.bind = Events.on;\n Events.unbind = Events.off;\n\n // Allow the `Backbone` object to serve as a global event bus, for folks who\n // want global \"pubsub\" in a convenient place.\n _.extend(Backbone, Events);\n\n // Backbone.Model\n // --------------\n\n // Backbone **Models** are the basic data object in the framework --\n // frequently representing a row in a table in a database on your server.\n // A discrete chunk of data and a bunch of useful, related methods for\n // performing computations and transformations on that data.\n\n // Create a new model with the specified attributes. A client id (`cid`)\n // is automatically generated and assigned for you.\n var Model = Backbone.Model = function(attributes, options) {\n var attrs = attributes || {};\n options || (options = {});\n this.cid = _.uniqueId(this.cidPrefix);\n this.attributes = {};\n if (options.collection) this.collection = options.collection;\n if (options.parse) attrs = this.parse(attrs, options) || {};\n var defaults = _.result(this, 'defaults');\n attrs = _.defaults(_.extend({}, defaults, attrs), defaults);\n this.set(attrs, options);\n this.changed = {};\n this.initialize.apply(this, arguments);\n };\n\n // Attach all inheritable methods to the Model prototype.\n _.extend(Model.prototype, Events, {\n\n // A hash of attributes whose current and previous value differ.\n changed: null,\n\n // The value returned during the last failed validation.\n validationError: null,\n\n // The default name for the JSON `id` attribute is `\"id\"`. MongoDB and\n // CouchDB users may want to set this to `\"_id\"`.\n idAttribute: 'id',\n\n // The prefix is used to create the client id which is used to identify models locally.\n // You may want to override this if you're experiencing name clashes with model ids.\n cidPrefix: 'c',\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Return a copy of the model's `attributes` object.\n toJSON: function(options) {\n return _.clone(this.attributes);\n },\n\n // Proxy `Backbone.sync` by default -- but override this if you need\n // custom syncing semantics for *this* particular model.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Get the value of an attribute.\n get: function(attr) {\n return this.attributes[attr];\n },\n\n // Get the HTML-escaped value of an attribute.\n escape: function(attr) {\n return _.escape(this.get(attr));\n },\n\n // Returns `true` if the attribute contains a value that is not null\n // or undefined.\n has: function(attr) {\n return this.get(attr) != null;\n },\n\n // Special-cased proxy to underscore's `_.matches` method.\n matches: function(attrs) {\n return !!_.iteratee(attrs, this)(this.attributes);\n },\n\n // Set a hash of model attributes on the object, firing `\"change\"`. This is\n // the core primitive operation of a model, updating the data and notifying\n // anyone who needs to know about the change in state. The heart of the beast.\n set: function(key, val, options) {\n if (key == null) return this;\n\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n var attrs;\n if (typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options || (options = {});\n\n // Run validation.\n if (!this._validate(attrs, options)) return false;\n\n // Extract attributes and options.\n var unset = options.unset;\n var silent = options.silent;\n var changes = [];\n var changing = this._changing;\n this._changing = true;\n\n if (!changing) {\n this._previousAttributes = _.clone(this.attributes);\n this.changed = {};\n }\n\n var current = this.attributes;\n var changed = this.changed;\n var prev = this._previousAttributes;\n\n // For each `set` attribute, update or delete the current value.\n for (var attr in attrs) {\n val = attrs[attr];\n if (!_.isEqual(current[attr], val)) changes.push(attr);\n if (!_.isEqual(prev[attr], val)) {\n changed[attr] = val;\n } else {\n delete changed[attr];\n }\n unset ? delete current[attr] : current[attr] = val;\n }\n\n // Update the `id`.\n if (this.idAttribute in attrs) this.id = this.get(this.idAttribute);\n\n // Trigger all relevant attribute changes.\n if (!silent) {\n if (changes.length) this._pending = options;\n for (var i = 0; i < changes.length; i++) {\n this.trigger('change:' + changes[i], this, current[changes[i]], options);\n }\n }\n\n // You might be wondering why there's a `while` loop here. Changes can\n // be recursively nested within `\"change\"` events.\n if (changing) return this;\n if (!silent) {\n while (this._pending) {\n options = this._pending;\n this._pending = false;\n this.trigger('change', this, options);\n }\n }\n this._pending = false;\n this._changing = false;\n return this;\n },\n\n // Remove an attribute from the model, firing `\"change\"`. `unset` is a noop\n // if the attribute doesn't exist.\n unset: function(attr, options) {\n return this.set(attr, void 0, _.extend({}, options, {unset: true}));\n },\n\n // Clear all attributes on the model, firing `\"change\"`.\n clear: function(options) {\n var attrs = {};\n for (var key in this.attributes) attrs[key] = void 0;\n return this.set(attrs, _.extend({}, options, {unset: true}));\n },\n\n // Determine if the model has changed since the last `\"change\"` event.\n // If you specify an attribute name, determine if that attribute has changed.\n hasChanged: function(attr) {\n if (attr == null) return !_.isEmpty(this.changed);\n return _.has(this.changed, attr);\n },\n\n // Return an object containing all the attributes that have changed, or\n // false if there are no changed attributes. Useful for determining what\n // parts of a view need to be updated and/or what attributes need to be\n // persisted to the server. Unset attributes will be set to undefined.\n // You can also pass an attributes object to diff against the model,\n // determining if there *would be* a change.\n changedAttributes: function(diff) {\n if (!diff) return this.hasChanged() ? _.clone(this.changed) : false;\n var old = this._changing ? this._previousAttributes : this.attributes;\n var changed = {};\n for (var attr in diff) {\n var val = diff[attr];\n if (_.isEqual(old[attr], val)) continue;\n changed[attr] = val;\n }\n return _.size(changed) ? changed : false;\n },\n\n // Get the previous value of an attribute, recorded at the time the last\n // `\"change\"` event was fired.\n previous: function(attr) {\n if (attr == null || !this._previousAttributes) return null;\n return this._previousAttributes[attr];\n },\n\n // Get all of the attributes of the model at the time of the previous\n // `\"change\"` event.\n previousAttributes: function() {\n return _.clone(this._previousAttributes);\n },\n\n // Fetch the model from the server, merging the response with the model's\n // local attributes. Any changed attributes will trigger a \"change\" event.\n fetch: function(options) {\n options = _.extend({parse: true}, options);\n var model = this;\n var success = options.success;\n options.success = function(resp) {\n var serverAttrs = options.parse ? model.parse(resp, options) : resp;\n if (!model.set(serverAttrs, options)) return false;\n if (success) success.call(options.context, model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Set a hash of model attributes, and sync the model to the server.\n // If the server returns an attributes hash that differs, the model's\n // state will be `set` again.\n save: function(key, val, options) {\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n var attrs;\n if (key == null || typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options = _.extend({validate: true, parse: true}, options);\n var wait = options.wait;\n\n // If we're not waiting and attributes exist, save acts as\n // `set(attr).save(null, opts)` with validation. Otherwise, check if\n // the model will be valid when the attributes, if any, are set.\n if (attrs && !wait) {\n if (!this.set(attrs, options)) return false;\n } else if (!this._validate(attrs, options)) {\n return false;\n }\n\n // After a successful server-side save, the client is (optionally)\n // updated with the server-side state.\n var model = this;\n var success = options.success;\n var attributes = this.attributes;\n options.success = function(resp) {\n // Ensure attributes are restored during synchronous saves.\n model.attributes = attributes;\n var serverAttrs = options.parse ? model.parse(resp, options) : resp;\n if (wait) serverAttrs = _.extend({}, attrs, serverAttrs);\n if (serverAttrs && !model.set(serverAttrs, options)) return false;\n if (success) success.call(options.context, model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n\n // Set temporary attributes if `{wait: true}` to properly find new ids.\n if (attrs && wait) this.attributes = _.extend({}, attributes, attrs);\n\n var method = this.isNew() ? 'create' : (options.patch ? 'patch' : 'update');\n if (method === 'patch' && !options.attrs) options.attrs = attrs;\n var xhr = this.sync(method, this, options);\n\n // Restore attributes.\n this.attributes = attributes;\n\n return xhr;\n },\n\n // Destroy this model on the server if it was already persisted.\n // Optimistically removes the model from its collection, if it has one.\n // If `wait: true` is passed, waits for the server to respond before removal.\n destroy: function(options) {\n options = options ? _.clone(options) : {};\n var model = this;\n var success = options.success;\n var wait = options.wait;\n\n var destroy = function() {\n model.stopListening();\n model.trigger('destroy', model, model.collection, options);\n };\n\n options.success = function(resp) {\n if (wait) destroy();\n if (success) success.call(options.context, model, resp, options);\n if (!model.isNew()) model.trigger('sync', model, resp, options);\n };\n\n var xhr = false;\n if (this.isNew()) {\n _.defer(options.success);\n } else {\n wrapError(this, options);\n xhr = this.sync('delete', this, options);\n }\n if (!wait) destroy();\n return xhr;\n },\n\n // Default URL for the model's representation on the server -- if you're\n // using Backbone's restful methods, override this to change the endpoint\n // that will be called.\n url: function() {\n var base =\n _.result(this, 'urlRoot') ||\n _.result(this.collection, 'url') ||\n urlError();\n if (this.isNew()) return base;\n var id = this.get(this.idAttribute);\n return base.replace(/[^\\/]$/, '$&/') + encodeURIComponent(id);\n },\n\n // **parse** converts a response into the hash of attributes to be `set` on\n // the model. The default implementation is just to pass the response along.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new model with identical attributes to this one.\n clone: function() {\n return new this.constructor(this.attributes);\n },\n\n // A model is new if it has never been saved to the server, and lacks an id.\n isNew: function() {\n return !this.has(this.idAttribute);\n },\n\n // Check if the model is currently in a valid state.\n isValid: function(options) {\n return this._validate({}, _.extend({}, options, {validate: true}));\n },\n\n // Run validation against the next complete set of model attributes,\n // returning `true` if all is well. Otherwise, fire an `\"invalid\"` event.\n _validate: function(attrs, options) {\n if (!options.validate || !this.validate) return true;\n attrs = _.extend({}, this.attributes, attrs);\n var error = this.validationError = this.validate(attrs, options) || null;\n if (!error) return true;\n this.trigger('invalid', this, error, _.extend(options, {validationError: error}));\n return false;\n }\n\n });\n\n // Underscore methods that we want to implement on the Model, mapped to the\n // number of arguments they take.\n var modelMethods = {keys: 1, values: 1, pairs: 1, invert: 1, pick: 0,\n omit: 0, chain: 1, isEmpty: 1};\n\n // Mix in each Underscore method as a proxy to `Model#attributes`.\n addUnderscoreMethods(Model, modelMethods, 'attributes');\n\n // Backbone.Collection\n // -------------------\n\n // If models tend to represent a single row of data, a Backbone Collection is\n // more analogous to a table full of data ... or a small slice or page of that\n // table, or a collection of rows that belong together for a particular reason\n // -- all of the messages in this particular folder, all of the documents\n // belonging to this particular author, and so on. Collections maintain\n // indexes of their models, both in order, and for lookup by `id`.\n\n // Create a new **Collection**, perhaps to contain a specific type of `model`.\n // If a `comparator` is specified, the Collection will maintain\n // its models in sort order, as they're added and removed.\n var Collection = Backbone.Collection = function(models, options) {\n options || (options = {});\n if (options.model) this.model = options.model;\n if (options.comparator !== void 0) this.comparator = options.comparator;\n this._reset();\n this.initialize.apply(this, arguments);\n if (models) this.reset(models, _.extend({silent: true}, options));\n };\n\n // Default options for `Collection#set`.\n var setOptions = {add: true, remove: true, merge: true};\n var addOptions = {add: true, remove: false};\n\n // Splices `insert` into `array` at index `at`.\n var splice = function(array, insert, at) {\n at = Math.min(Math.max(at, 0), array.length);\n var tail = Array(array.length - at);\n var length = insert.length;\n var i;\n for (i = 0; i < tail.length; i++) tail[i] = array[i + at];\n for (i = 0; i < length; i++) array[i + at] = insert[i];\n for (i = 0; i < tail.length; i++) array[i + length + at] = tail[i];\n };\n\n // Define the Collection's inheritable methods.\n _.extend(Collection.prototype, Events, {\n\n // The default model for a collection is just a **Backbone.Model**.\n // This should be overridden in most cases.\n model: Model,\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // The JSON representation of a Collection is an array of the\n // models' attributes.\n toJSON: function(options) {\n return this.map(function(model) { return model.toJSON(options); });\n },\n\n // Proxy `Backbone.sync` by default.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Add a model, or list of models to the set. `models` may be Backbone\n // Models or raw JavaScript objects to be converted to Models, or any\n // combination of the two.\n add: function(models, options) {\n return this.set(models, _.extend({merge: false}, options, addOptions));\n },\n\n // Remove a model, or a list of models from the set.\n remove: function(models, options) {\n options = _.extend({}, options);\n var singular = !_.isArray(models);\n models = singular ? [models] : models.slice();\n var removed = this._removeModels(models, options);\n if (!options.silent && removed.length) {\n options.changes = {added: [], merged: [], removed: removed};\n this.trigger('update', this, options);\n }\n return singular ? removed[0] : removed;\n },\n\n // Update a collection by `set`-ing a new list of models, adding new ones,\n // removing models that are no longer present, and merging models that\n // already exist in the collection, as necessary. Similar to **Model#set**,\n // the core operation for updating the data contained by the collection.\n set: function(models, options) {\n if (models == null) return;\n\n options = _.extend({}, setOptions, options);\n if (options.parse && !this._isModel(models)) {\n models = this.parse(models, options) || [];\n }\n\n var singular = !_.isArray(models);\n models = singular ? [models] : models.slice();\n\n var at = options.at;\n if (at != null) at = +at;\n if (at > this.length) at = this.length;\n if (at < 0) at += this.length + 1;\n\n var set = [];\n var toAdd = [];\n var toMerge = [];\n var toRemove = [];\n var modelMap = {};\n\n var add = options.add;\n var merge = options.merge;\n var remove = options.remove;\n\n var sort = false;\n var sortable = this.comparator && at == null && options.sort !== false;\n var sortAttr = _.isString(this.comparator) ? this.comparator : null;\n\n // Turn bare objects into model references, and prevent invalid models\n // from being added.\n var model, i;\n for (i = 0; i < models.length; i++) {\n model = models[i];\n\n // If a duplicate is found, prevent it from being added and\n // optionally merge it into the existing model.\n var existing = this.get(model);\n if (existing) {\n if (merge && model !== existing) {\n var attrs = this._isModel(model) ? model.attributes : model;\n if (options.parse) attrs = existing.parse(attrs, options);\n existing.set(attrs, options);\n toMerge.push(existing);\n if (sortable && !sort) sort = existing.hasChanged(sortAttr);\n }\n if (!modelMap[existing.cid]) {\n modelMap[existing.cid] = true;\n set.push(existing);\n }\n models[i] = existing;\n\n // If this is a new, valid model, push it to the `toAdd` list.\n } else if (add) {\n model = models[i] = this._prepareModel(model, options);\n if (model) {\n toAdd.push(model);\n this._addReference(model, options);\n modelMap[model.cid] = true;\n set.push(model);\n }\n }\n }\n\n // Remove stale models.\n if (remove) {\n for (i = 0; i < this.length; i++) {\n model = this.models[i];\n if (!modelMap[model.cid]) toRemove.push(model);\n }\n if (toRemove.length) this._removeModels(toRemove, options);\n }\n\n // See if sorting is needed, update `length` and splice in new models.\n var orderChanged = false;\n var replace = !sortable && add && remove;\n if (set.length && replace) {\n orderChanged = this.length !== set.length || _.some(this.models, function(m, index) {\n return m !== set[index];\n });\n this.models.length = 0;\n splice(this.models, set, 0);\n this.length = this.models.length;\n } else if (toAdd.length) {\n if (sortable) sort = true;\n splice(this.models, toAdd, at == null ? this.length : at);\n this.length = this.models.length;\n }\n\n // Silently sort the collection if appropriate.\n if (sort) this.sort({silent: true});\n\n // Unless silenced, it's time to fire all appropriate add/sort/update events.\n if (!options.silent) {\n for (i = 0; i < toAdd.length; i++) {\n if (at != null) options.index = at + i;\n model = toAdd[i];\n model.trigger('add', model, this, options);\n }\n if (sort || orderChanged) this.trigger('sort', this, options);\n if (toAdd.length || toRemove.length || toMerge.length) {\n options.changes = {\n added: toAdd,\n removed: toRemove,\n merged: toMerge\n };\n this.trigger('update', this, options);\n }\n }\n\n // Return the added (or merged) model (or models).\n return singular ? models[0] : models;\n },\n\n // When you have more items than you want to add or remove individually,\n // you can reset the entire set with a new list of models, without firing\n // any granular `add` or `remove` events. Fires `reset` when finished.\n // Useful for bulk operations and optimizations.\n reset: function(models, options) {\n options = options ? _.clone(options) : {};\n for (var i = 0; i < this.models.length; i++) {\n this._removeReference(this.models[i], options);\n }\n options.previousModels = this.models;\n this._reset();\n models = this.add(models, _.extend({silent: true}, options));\n if (!options.silent) this.trigger('reset', this, options);\n return models;\n },\n\n // Add a model to the end of the collection.\n push: function(model, options) {\n return this.add(model, _.extend({at: this.length}, options));\n },\n\n // Remove a model from the end of the collection.\n pop: function(options) {\n var model = this.at(this.length - 1);\n return this.remove(model, options);\n },\n\n // Add a model to the beginning of the collection.\n unshift: function(model, options) {\n return this.add(model, _.extend({at: 0}, options));\n },\n\n // Remove a model from the beginning of the collection.\n shift: function(options) {\n var model = this.at(0);\n return this.remove(model, options);\n },\n\n // Slice out a sub-array of models from the collection.\n slice: function() {\n return slice.apply(this.models, arguments);\n },\n\n // Get a model from the set by id, cid, model object with id or cid\n // properties, or an attributes object that is transformed through modelId.\n get: function(obj) {\n if (obj == null) return void 0;\n return this._byId[obj] ||\n this._byId[this.modelId(obj.attributes || obj)] ||\n obj.cid && this._byId[obj.cid];\n },\n\n // Returns `true` if the model is in the collection.\n has: function(obj) {\n return this.get(obj) != null;\n },\n\n // Get the model at the given index.\n at: function(index) {\n if (index < 0) index += this.length;\n return this.models[index];\n },\n\n // Return models with matching attributes. Useful for simple cases of\n // `filter`.\n where: function(attrs, first) {\n return this[first ? 'find' : 'filter'](attrs);\n },\n\n // Return the first model with matching attributes. Useful for simple cases\n // of `find`.\n findWhere: function(attrs) {\n return this.where(attrs, true);\n },\n\n // Force the collection to re-sort itself. You don't need to call this under\n // normal circumstances, as the set will maintain sort order as each item\n // is added.\n sort: function(options) {\n var comparator = this.comparator;\n if (!comparator) throw new Error('Cannot sort a set without a comparator');\n options || (options = {});\n\n var length = comparator.length;\n if (_.isFunction(comparator)) comparator = _.bind(comparator, this);\n\n // Run sort based on type of `comparator`.\n if (length === 1 || _.isString(comparator)) {\n this.models = this.sortBy(comparator);\n } else {\n this.models.sort(comparator);\n }\n if (!options.silent) this.trigger('sort', this, options);\n return this;\n },\n\n // Pluck an attribute from each model in the collection.\n pluck: function(attr) {\n return this.map(attr + '');\n },\n\n // Fetch the default set of models for this collection, resetting the\n // collection when they arrive. If `reset: true` is passed, the response\n // data will be passed through the `reset` method instead of `set`.\n fetch: function(options) {\n options = _.extend({parse: true}, options);\n var success = options.success;\n var collection = this;\n options.success = function(resp) {\n var method = options.reset ? 'reset' : 'set';\n collection[method](resp, options);\n if (success) success.call(options.context, collection, resp, options);\n collection.trigger('sync', collection, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Create a new instance of a model in this collection. Add the model to the\n // collection immediately, unless `wait: true` is passed, in which case we\n // wait for the server to agree.\n create: function(model, options) {\n options = options ? _.clone(options) : {};\n var wait = options.wait;\n model = this._prepareModel(model, options);\n if (!model) return false;\n if (!wait) this.add(model, options);\n var collection = this;\n var success = options.success;\n options.success = function(m, resp, callbackOpts) {\n if (wait) collection.add(m, callbackOpts);\n if (success) success.call(callbackOpts.context, m, resp, callbackOpts);\n };\n model.save(null, options);\n return model;\n },\n\n // **parse** converts a response into a list of models to be added to the\n // collection. The default implementation is just to pass it through.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new collection with an identical list of models as this one.\n clone: function() {\n return new this.constructor(this.models, {\n model: this.model,\n comparator: this.comparator\n });\n },\n\n // Define how to uniquely identify models in the collection.\n modelId: function(attrs) {\n return attrs[this.model.prototype.idAttribute || 'id'];\n },\n\n // Private method to reset all internal state. Called when the collection\n // is first initialized or reset.\n _reset: function() {\n this.length = 0;\n this.models = [];\n this._byId = {};\n },\n\n // Prepare a hash of attributes (or other model) to be added to this\n // collection.\n _prepareModel: function(attrs, options) {\n if (this._isModel(attrs)) {\n if (!attrs.collection) attrs.collection = this;\n return attrs;\n }\n options = options ? _.clone(options) : {};\n options.collection = this;\n var model = new this.model(attrs, options);\n if (!model.validationError) return model;\n this.trigger('invalid', this, model.validationError, options);\n return false;\n },\n\n // Internal method called by both remove and set.\n _removeModels: function(models, options) {\n var removed = [];\n for (var i = 0; i < models.length; i++) {\n var model = this.get(models[i]);\n if (!model) continue;\n\n var index = this.indexOf(model);\n this.models.splice(index, 1);\n this.length--;\n\n // Remove references before triggering 'remove' event to prevent an\n // infinite loop. #3693\n delete this._byId[model.cid];\n var id = this.modelId(model.attributes);\n if (id != null) delete this._byId[id];\n\n if (!options.silent) {\n options.index = index;\n model.trigger('remove', model, this, options);\n }\n\n removed.push(model);\n this._removeReference(model, options);\n }\n return removed;\n },\n\n // Method for checking whether an object should be considered a model for\n // the purposes of adding to the collection.\n _isModel: function(model) {\n return model instanceof Model;\n },\n\n // Internal method to create a model's ties to a collection.\n _addReference: function(model, options) {\n this._byId[model.cid] = model;\n var id = this.modelId(model.attributes);\n if (id != null) this._byId[id] = model;\n model.on('all', this._onModelEvent, this);\n },\n\n // Internal method to sever a model's ties to a collection.\n _removeReference: function(model, options) {\n delete this._byId[model.cid];\n var id = this.modelId(model.attributes);\n if (id != null) delete this._byId[id];\n if (this === model.collection) delete model.collection;\n model.off('all', this._onModelEvent, this);\n },\n\n // Internal method called every time a model in the set fires an event.\n // Sets need to update their indexes when models change ids. All other\n // events simply proxy through. \"add\" and \"remove\" events that originate\n // in other collections are ignored.\n _onModelEvent: function(event, model, collection, options) {\n if (model) {\n if ((event === 'add' || event === 'remove') && collection !== this) return;\n if (event === 'destroy') this.remove(model, options);\n if (event === 'change') {\n var prevId = this.modelId(model.previousAttributes());\n var id = this.modelId(model.attributes);\n if (prevId !== id) {\n if (prevId != null) delete this._byId[prevId];\n if (id != null) this._byId[id] = model;\n }\n }\n }\n this.trigger.apply(this, arguments);\n }\n\n });\n\n // Underscore methods that we want to implement on the Collection.\n // 90% of the core usefulness of Backbone Collections is actually implemented\n // right here:\n var collectionMethods = {forEach: 3, each: 3, map: 3, collect: 3, reduce: 0,\n foldl: 0, inject: 0, reduceRight: 0, foldr: 0, find: 3, detect: 3, filter: 3,\n select: 3, reject: 3, every: 3, all: 3, some: 3, any: 3, include: 3, includes: 3,\n contains: 3, invoke: 0, max: 3, min: 3, toArray: 1, size: 1, first: 3,\n head: 3, take: 3, initial: 3, rest: 3, tail: 3, drop: 3, last: 3,\n without: 0, difference: 0, indexOf: 3, shuffle: 1, lastIndexOf: 3,\n isEmpty: 1, chain: 1, sample: 3, partition: 3, groupBy: 3, countBy: 3,\n sortBy: 3, indexBy: 3, findIndex: 3, findLastIndex: 3};\n\n // Mix in each Underscore method as a proxy to `Collection#models`.\n addUnderscoreMethods(Collection, collectionMethods, 'models');\n\n // Backbone.View\n // -------------\n\n // Backbone Views are almost more convention than they are actual code. A View\n // is simply a JavaScript object that represents a logical chunk of UI in the\n // DOM. This might be a single item, an entire list, a sidebar or panel, or\n // even the surrounding frame which wraps your whole app. Defining a chunk of\n // UI as a **View** allows you to define your DOM events declaratively, without\n // having to worry about render order ... and makes it easy for the view to\n // react to specific changes in the state of your models.\n\n // Creating a Backbone.View creates its initial element outside of the DOM,\n // if an existing element is not provided...\n var View = Backbone.View = function(options) {\n this.cid = _.uniqueId('view');\n _.extend(this, _.pick(options, viewOptions));\n this._ensureElement();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regex to split keys for `delegate`.\n var delegateEventSplitter = /^(\\S+)\\s*(.*)$/;\n\n // List of view options to be set as properties.\n var viewOptions = ['model', 'collection', 'el', 'id', 'attributes', 'className', 'tagName', 'events'];\n\n // Set up all inheritable **Backbone.View** properties and methods.\n _.extend(View.prototype, Events, {\n\n // The default `tagName` of a View's element is `\"div\"`.\n tagName: 'div',\n\n // jQuery delegate for element lookup, scoped to DOM elements within the\n // current view. This should be preferred to global lookups where possible.\n $: function(selector) {\n return this.$el.find(selector);\n },\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // **render** is the core function that your view should override, in order\n // to populate its element (`this.el`), with the appropriate HTML. The\n // convention is for **render** to always return `this`.\n render: function() {\n return this;\n },\n\n // Remove this view by taking the element out of the DOM, and removing any\n // applicable Backbone.Events listeners.\n remove: function() {\n this._removeElement();\n this.stopListening();\n return this;\n },\n\n // Remove this view's element from the document and all event listeners\n // attached to it. Exposed for subclasses using an alternative DOM\n // manipulation API.\n _removeElement: function() {\n this.$el.remove();\n },\n\n // Change the view's element (`this.el` property) and re-delegate the\n // view's events on the new element.\n setElement: function(element) {\n this.undelegateEvents();\n this._setElement(element);\n this.delegateEvents();\n return this;\n },\n\n // Creates the `this.el` and `this.$el` references for this view using the\n // given `el`. `el` can be a CSS selector or an HTML string, a jQuery\n // context or an element. Subclasses can override this to utilize an\n // alternative DOM manipulation API and are only required to set the\n // `this.el` property.\n _setElement: function(el) {\n this.$el = el instanceof Backbone.$ ? el : Backbone.$(el);\n this.el = this.$el[0];\n },\n\n // Set callbacks, where `this.events` is a hash of\n //\n // *{\"event selector\": \"callback\"}*\n //\n // {\n // 'mousedown .title': 'edit',\n // 'click .button': 'save',\n // 'click .open': function(e) { ... }\n // }\n //\n // pairs. Callbacks will be bound to the view, with `this` set properly.\n // Uses event delegation for efficiency.\n // Omitting the selector binds the event to `this.el`.\n delegateEvents: function(events) {\n events || (events = _.result(this, 'events'));\n if (!events) return this;\n this.undelegateEvents();\n for (var key in events) {\n var method = events[key];\n if (!_.isFunction(method)) method = this[method];\n if (!method) continue;\n var match = key.match(delegateEventSplitter);\n this.delegate(match[1], match[2], _.bind(method, this));\n }\n return this;\n },\n\n // Add a single event listener to the view's element (or a child element\n // using `selector`). This only works for delegate-able events: not `focus`,\n // `blur`, and not `change`, `submit`, and `reset` in Internet Explorer.\n delegate: function(eventName, selector, listener) {\n this.$el.on(eventName + '.delegateEvents' + this.cid, selector, listener);\n return this;\n },\n\n // Clears all callbacks previously bound to the view by `delegateEvents`.\n // You usually don't need to use this, but may wish to if you have multiple\n // Backbone views attached to the same DOM element.\n undelegateEvents: function() {\n if (this.$el) this.$el.off('.delegateEvents' + this.cid);\n return this;\n },\n\n // A finer-grained `undelegateEvents` for removing a single delegated event.\n // `selector` and `listener` are both optional.\n undelegate: function(eventName, selector, listener) {\n this.$el.off(eventName + '.delegateEvents' + this.cid, selector, listener);\n return this;\n },\n\n // Produces a DOM element to be assigned to your view. Exposed for\n // subclasses using an alternative DOM manipulation API.\n _createElement: function(tagName) {\n return document.createElement(tagName);\n },\n\n // Ensure that the View has a DOM element to render into.\n // If `this.el` is a string, pass it through `$()`, take the first\n // matching element, and re-assign it to `el`. Otherwise, create\n // an element from the `id`, `className` and `tagName` properties.\n _ensureElement: function() {\n if (!this.el) {\n var attrs = _.extend({}, _.result(this, 'attributes'));\n if (this.id) attrs.id = _.result(this, 'id');\n if (this.className) attrs['class'] = _.result(this, 'className');\n this.setElement(this._createElement(_.result(this, 'tagName')));\n this._setAttributes(attrs);\n } else {\n this.setElement(_.result(this, 'el'));\n }\n },\n\n // Set attributes from a hash on this view's element. Exposed for\n // subclasses using an alternative DOM manipulation API.\n _setAttributes: function(attributes) {\n this.$el.attr(attributes);\n }\n\n });\n\n // Backbone.sync\n // -------------\n\n // Override this function to change the manner in which Backbone persists\n // models to the server. You will be passed the type of request, and the\n // model in question. By default, makes a RESTful Ajax request\n // to the model's `url()`. Some possible customizations could be:\n //\n // * Use `setTimeout` to batch rapid-fire updates into a single request.\n // * Send up the models as XML instead of JSON.\n // * Persist models via WebSockets instead of Ajax.\n //\n // Turn on `Backbone.emulateHTTP` in order to send `PUT` and `DELETE` requests\n // as `POST`, with a `_method` parameter containing the true HTTP method,\n // as well as all requests with the body as `application/x-www-form-urlencoded`\n // instead of `application/json` with the model in a param named `model`.\n // Useful when interfacing with server-side languages like **PHP** that make\n // it difficult to read the body of `PUT` requests.\n Backbone.sync = function(method, model, options) {\n var type = methodMap[method];\n\n // Default options, unless specified.\n _.defaults(options || (options = {}), {\n emulateHTTP: Backbone.emulateHTTP,\n emulateJSON: Backbone.emulateJSON\n });\n\n // Default JSON-request options.\n var params = {type: type, dataType: 'json'};\n\n // Ensure that we have a URL.\n if (!options.url) {\n params.url = _.result(model, 'url') || urlError();\n }\n\n // Ensure that we have the appropriate request data.\n if (options.data == null && model && (method === 'create' || method === 'update' || method === 'patch')) {\n params.contentType = 'application/json';\n params.data = JSON.stringify(options.attrs || model.toJSON(options));\n }\n\n // For older servers, emulate JSON by encoding the request into an HTML-form.\n if (options.emulateJSON) {\n params.contentType = 'application/x-www-form-urlencoded';\n params.data = params.data ? {model: params.data} : {};\n }\n\n // For older servers, emulate HTTP by mimicking the HTTP method with `_method`\n // And an `X-HTTP-Method-Override` header.\n if (options.emulateHTTP && (type === 'PUT' || type === 'DELETE' || type === 'PATCH')) {\n params.type = 'POST';\n if (options.emulateJSON) params.data._method = type;\n var beforeSend = options.beforeSend;\n options.beforeSend = function(xhr) {\n xhr.setRequestHeader('X-HTTP-Method-Override', type);\n if (beforeSend) return beforeSend.apply(this, arguments);\n };\n }\n\n // Don't process data on a non-GET request.\n if (params.type !== 'GET' && !options.emulateJSON) {\n params.processData = false;\n }\n\n // Pass along `textStatus` and `errorThrown` from jQuery.\n var error = options.error;\n options.error = function(xhr, textStatus, errorThrown) {\n options.textStatus = textStatus;\n options.errorThrown = errorThrown;\n if (error) error.call(options.context, xhr, textStatus, errorThrown);\n };\n\n // Make the request, allowing the user to override any Ajax options.\n var xhr = options.xhr = Backbone.ajax(_.extend(params, options));\n model.trigger('request', model, xhr, options);\n return xhr;\n };\n\n // Map from CRUD to HTTP for our default `Backbone.sync` implementation.\n var methodMap = {\n 'create': 'POST',\n 'update': 'PUT',\n 'patch': 'PATCH',\n 'delete': 'DELETE',\n 'read': 'GET'\n };\n\n // Set the default implementation of `Backbone.ajax` to proxy through to `$`.\n // Override this if you'd like to use a different library.\n Backbone.ajax = function() {\n return Backbone.$.ajax.apply(Backbone.$, arguments);\n };\n\n // Backbone.Router\n // ---------------\n\n // Routers map faux-URLs to actions, and fire events when routes are\n // matched. Creating a new one sets its `routes` hash, if not set statically.\n var Router = Backbone.Router = function(options) {\n options || (options = {});\n if (options.routes) this.routes = options.routes;\n this._bindRoutes();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regular expressions for matching named param parts and splatted\n // parts of route strings.\n var optionalParam = /\\((.*?)\\)/g;\n var namedParam = /(\\(\\?)?:\\w+/g;\n var splatParam = /\\*\\w+/g;\n var escapeRegExp = /[\\-{}\\[\\]+?.,\\\\\\^$|#\\s]/g;\n\n // Set up all inheritable **Backbone.Router** properties and methods.\n _.extend(Router.prototype, Events, {\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Manually bind a single named route to a callback. For example:\n //\n // this.route('search/:query/p:num', 'search', function(query, num) {\n // ...\n // });\n //\n route: function(route, name, callback) {\n if (!_.isRegExp(route)) route = this._routeToRegExp(route);\n if (_.isFunction(name)) {\n callback = name;\n name = '';\n }\n if (!callback) callback = this[name];\n var router = this;\n Backbone.history.route(route, function(fragment) {\n var args = router._extractParameters(route, fragment);\n if (router.execute(callback, args, name) !== false) {\n router.trigger.apply(router, ['route:' + name].concat(args));\n router.trigger('route', name, args);\n Backbone.history.trigger('route', router, name, args);\n }\n });\n return this;\n },\n\n // Execute a route handler with the provided parameters. This is an\n // excellent place to do pre-route setup or post-route cleanup.\n execute: function(callback, args, name) {\n if (callback) callback.apply(this, args);\n },\n\n // Simple proxy to `Backbone.history` to save a fragment into the history.\n navigate: function(fragment, options) {\n Backbone.history.navigate(fragment, options);\n return this;\n },\n\n // Bind all defined routes to `Backbone.history`. We have to reverse the\n // order of the routes here to support behavior where the most general\n // routes can be defined at the bottom of the route map.\n _bindRoutes: function() {\n if (!this.routes) return;\n this.routes = _.result(this, 'routes');\n var route, routes = _.keys(this.routes);\n while ((route = routes.pop()) != null) {\n this.route(route, this.routes[route]);\n }\n },\n\n // Convert a route string into a regular expression, suitable for matching\n // against the current location hash.\n _routeToRegExp: function(route) {\n route = route.replace(escapeRegExp, '\\\\$&')\n .replace(optionalParam, '(?:$1)?')\n .replace(namedParam, function(match, optional) {\n return optional ? match : '([^/?]+)';\n })\n .replace(splatParam, '([^?]*?)');\n return new RegExp('^' + route + '(?:\\\\?([\\\\s\\\\S]*))?$');\n },\n\n // Given a route, and a URL fragment that it matches, return the array of\n // extracted decoded parameters. Empty or unmatched parameters will be\n // treated as `null` to normalize cross-browser behavior.\n _extractParameters: function(route, fragment) {\n var params = route.exec(fragment).slice(1);\n return _.map(params, function(param, i) {\n // Don't decode the search params.\n if (i === params.length - 1) return param || null;\n return param ? decodeURIComponent(param) : null;\n });\n }\n\n });\n\n // Backbone.History\n // ----------------\n\n // Handles cross-browser history management, based on either\n // [pushState](http://diveintohtml5.info/history.html) and real URLs, or\n // [onhashchange](https://developer.mozilla.org/en-US/docs/DOM/window.onhashchange)\n // and URL fragments. If the browser supports neither (old IE, natch),\n // falls back to polling.\n var History = Backbone.History = function() {\n this.handlers = [];\n this.checkUrl = _.bind(this.checkUrl, this);\n\n // Ensure that `History` can be used outside of the browser.\n if (typeof window !== 'undefined') {\n this.location = window.location;\n this.history = window.history;\n }\n };\n\n // Cached regex for stripping a leading hash/slash and trailing space.\n var routeStripper = /^[#\\/]|\\s+$/g;\n\n // Cached regex for stripping leading and trailing slashes.\n var rootStripper = /^\\/+|\\/+$/g;\n\n // Cached regex for stripping urls of hash.\n var pathStripper = /#.*$/;\n\n // Has the history handling already been started?\n History.started = false;\n\n // Set up all inheritable **Backbone.History** properties and methods.\n _.extend(History.prototype, Events, {\n\n // The default interval to poll for hash changes, if necessary, is\n // twenty times a second.\n interval: 50,\n\n // Are we at the app root?\n atRoot: function() {\n var path = this.location.pathname.replace(/[^\\/]$/, '$&/');\n return path === this.root && !this.getSearch();\n },\n\n // Does the pathname match the root?\n matchRoot: function() {\n var path = this.decodeFragment(this.location.pathname);\n var rootPath = path.slice(0, this.root.length - 1) + '/';\n return rootPath === this.root;\n },\n\n // Unicode characters in `location.pathname` are percent encoded so they're\n // decoded for comparison. `%25` should not be decoded since it may be part\n // of an encoded parameter.\n decodeFragment: function(fragment) {\n return decodeURI(fragment.replace(/%25/g, '%2525'));\n },\n\n // In IE6, the hash fragment and search params are incorrect if the\n // fragment contains `?`.\n getSearch: function() {\n var match = this.location.href.replace(/#.*/, '').match(/\\?.+/);\n return match ? match[0] : '';\n },\n\n // Gets the true hash value. Cannot use location.hash directly due to bug\n // in Firefox where location.hash will always be decoded.\n getHash: function(window) {\n var match = (window || this).location.href.match(/#(.*)$/);\n return match ? match[1] : '';\n },\n\n // Get the pathname and search params, without the root.\n getPath: function() {\n var path = this.decodeFragment(\n this.location.pathname + this.getSearch()\n ).slice(this.root.length - 1);\n return path.charAt(0) === '/' ? path.slice(1) : path;\n },\n\n // Get the cross-browser normalized URL fragment from the path or hash.\n getFragment: function(fragment) {\n if (fragment == null) {\n if (this._usePushState || !this._wantsHashChange) {\n fragment = this.getPath();\n } else {\n fragment = this.getHash();\n }\n }\n return fragment.replace(routeStripper, '');\n },\n\n // Start the hash change handling, returning `true` if the current URL matches\n // an existing route, and `false` otherwise.\n start: function(options) {\n if (History.started) throw new Error('Backbone.history has already been started');\n History.started = true;\n\n // Figure out the initial configuration. Do we need an iframe?\n // Is pushState desired ... is it available?\n this.options = _.extend({root: '/'}, this.options, options);\n this.root = this.options.root;\n this._wantsHashChange = this.options.hashChange !== false;\n this._hasHashChange = 'onhashchange' in window && (document.documentMode === void 0 || document.documentMode > 7);\n this._useHashChange = this._wantsHashChange && this._hasHashChange;\n this._wantsPushState = !!this.options.pushState;\n this._hasPushState = !!(this.history && this.history.pushState);\n this._usePushState = this._wantsPushState && this._hasPushState;\n this.fragment = this.getFragment();\n\n // Normalize root to always include a leading and trailing slash.\n this.root = ('/' + this.root + '/').replace(rootStripper, '/');\n\n // Transition from hashChange to pushState or vice versa if both are\n // requested.\n if (this._wantsHashChange && this._wantsPushState) {\n\n // If we've started off with a route from a `pushState`-enabled\n // browser, but we're currently in a browser that doesn't support it...\n if (!this._hasPushState && !this.atRoot()) {\n var rootPath = this.root.slice(0, -1) || '/';\n this.location.replace(rootPath + '#' + this.getPath());\n // Return immediately as browser will do redirect to new url\n return true;\n\n // Or if we've started out with a hash-based route, but we're currently\n // in a browser where it could be `pushState`-based instead...\n } else if (this._hasPushState && this.atRoot()) {\n this.navigate(this.getHash(), {replace: true});\n }\n\n }\n\n // Proxy an iframe to handle location events if the browser doesn't\n // support the `hashchange` event, HTML5 history, or the user wants\n // `hashChange` but not `pushState`.\n if (!this._hasHashChange && this._wantsHashChange && !this._usePushState) {\n this.iframe = document.createElement('iframe');\n this.iframe.src = 'javascript:0';\n this.iframe.style.display = 'none';\n this.iframe.tabIndex = -1;\n var body = document.body;\n // Using `appendChild` will throw on IE < 9 if the document is not ready.\n var iWindow = body.insertBefore(this.iframe, body.firstChild).contentWindow;\n iWindow.document.open();\n iWindow.document.close();\n iWindow.location.hash = '#' + this.fragment;\n }\n\n // Add a cross-platform `addEventListener` shim for older browsers.\n var addEventListener = window.addEventListener || function(eventName, listener) {\n return attachEvent('on' + eventName, listener);\n };\n\n // Depending on whether we're using pushState or hashes, and whether\n // 'onhashchange' is supported, determine how we check the URL state.\n if (this._usePushState) {\n addEventListener('popstate', this.checkUrl, false);\n } else if (this._useHashChange && !this.iframe) {\n addEventListener('hashchange', this.checkUrl, false);\n } else if (this._wantsHashChange) {\n this._checkUrlInterval = setInterval(this.checkUrl, this.interval);\n }\n\n if (!this.options.silent) return this.loadUrl();\n },\n\n // Disable Backbone.history, perhaps temporarily. Not useful in a real app,\n // but possibly useful for unit testing Routers.\n stop: function() {\n // Add a cross-platform `removeEventListener` shim for older browsers.\n var removeEventListener = window.removeEventListener || function(eventName, listener) {\n return detachEvent('on' + eventName, listener);\n };\n\n // Remove window listeners.\n if (this._usePushState) {\n removeEventListener('popstate', this.checkUrl, false);\n } else if (this._useHashChange && !this.iframe) {\n removeEventListener('hashchange', this.checkUrl, false);\n }\n\n // Clean up the iframe if necessary.\n if (this.iframe) {\n document.body.removeChild(this.iframe);\n this.iframe = null;\n }\n\n // Some environments will throw when clearing an undefined interval.\n if (this._checkUrlInterval) clearInterval(this._checkUrlInterval);\n History.started = false;\n },\n\n // Add a route to be tested when the fragment changes. Routes added later\n // may override previous routes.\n route: function(route, callback) {\n this.handlers.unshift({route: route, callback: callback});\n },\n\n // Checks the current URL to see if it has changed, and if it has,\n // calls `loadUrl`, normalizing across the hidden iframe.\n checkUrl: function(e) {\n var current = this.getFragment();\n\n // If the user pressed the back button, the iframe's hash will have\n // changed and we should use that for comparison.\n if (current === this.fragment && this.iframe) {\n current = this.getHash(this.iframe.contentWindow);\n }\n\n if (current === this.fragment) return false;\n if (this.iframe) this.navigate(current);\n this.loadUrl();\n },\n\n // Attempt to load the current URL fragment. If a route succeeds with a\n // match, returns `true`. If no defined routes matches the fragment,\n // returns `false`.\n loadUrl: function(fragment) {\n // If the root doesn't match, no routes can match either.\n if (!this.matchRoot()) return false;\n fragment = this.fragment = this.getFragment(fragment);\n return _.some(this.handlers, function(handler) {\n if (handler.route.test(fragment)) {\n handler.callback(fragment);\n return true;\n }\n });\n },\n\n // Save a fragment into the hash history, or replace the URL state if the\n // 'replace' option is passed. You are responsible for properly URL-encoding\n // the fragment in advance.\n //\n // The options object can contain `trigger: true` if you wish to have the\n // route callback be fired (not usually desirable), or `replace: true`, if\n // you wish to modify the current URL without adding an entry to the history.\n navigate: function(fragment, options) {\n if (!History.started) return false;\n if (!options || options === true) options = {trigger: !!options};\n\n // Normalize the fragment.\n fragment = this.getFragment(fragment || '');\n\n // Don't include a trailing slash on the root.\n var rootPath = this.root;\n if (fragment === '' || fragment.charAt(0) === '?') {\n rootPath = rootPath.slice(0, -1) || '/';\n }\n var url = rootPath + fragment;\n\n // Strip the hash and decode for matching.\n fragment = this.decodeFragment(fragment.replace(pathStripper, ''));\n\n if (this.fragment === fragment) return;\n this.fragment = fragment;\n\n // If pushState is available, we use it to set the fragment as a real URL.\n if (this._usePushState) {\n this.history[options.replace ? 'replaceState' : 'pushState']({}, document.title, url);\n\n // If hash changes haven't been explicitly disabled, update the hash\n // fragment to store history.\n } else if (this._wantsHashChange) {\n this._updateHash(this.location, fragment, options.replace);\n if (this.iframe && fragment !== this.getHash(this.iframe.contentWindow)) {\n var iWindow = this.iframe.contentWindow;\n\n // Opening and closing the iframe tricks IE7 and earlier to push a\n // history entry on hash-tag change. When replace is true, we don't\n // want this.\n if (!options.replace) {\n iWindow.document.open();\n iWindow.document.close();\n }\n\n this._updateHash(iWindow.location, fragment, options.replace);\n }\n\n // If you've told us that you explicitly don't want fallback hashchange-\n // based history, then `navigate` becomes a page refresh.\n } else {\n return this.location.assign(url);\n }\n if (options.trigger) return this.loadUrl(fragment);\n },\n\n // Update the hash location, either replacing the current entry, or adding\n // a new one to the browser history.\n _updateHash: function(location, fragment, replace) {\n if (replace) {\n var href = location.href.replace(/(javascript:|#).*$/, '');\n location.replace(href + '#' + fragment);\n } else {\n // Some browsers require that `hash` contains a leading #.\n location.hash = '#' + fragment;\n }\n }\n\n });\n\n // Create the default Backbone.history.\n Backbone.history = new History;\n\n // Helpers\n // -------\n\n // Helper function to correctly set up the prototype chain for subclasses.\n // Similar to `goog.inherits`, but uses a hash of prototype properties and\n // class properties to be extended.\n var extend = function(protoProps, staticProps) {\n var parent = this;\n var child;\n\n // The constructor function for the new subclass is either defined by you\n // (the \"constructor\" property in your `extend` definition), or defaulted\n // by us to simply call the parent constructor.\n if (protoProps && _.has(protoProps, 'constructor')) {\n child = protoProps.constructor;\n } else {\n child = function(){ return parent.apply(this, arguments); };\n }\n\n // Add static properties to the constructor function, if supplied.\n _.extend(child, parent, staticProps);\n\n // Set the prototype chain to inherit from `parent`, without calling\n // `parent`'s constructor function and add the prototype properties.\n child.prototype = _.create(parent.prototype, protoProps);\n child.prototype.constructor = child;\n\n // Set a convenience property in case the parent's prototype is needed\n // later.\n child.__super__ = parent.prototype;\n\n return child;\n };\n\n // Set up inheritance for the model, collection, router, view and history.\n Model.extend = Collection.extend = Router.extend = View.extend = History.extend = extend;\n\n // Throw an error when a URL is needed, and none is supplied.\n var urlError = function() {\n throw new Error('A \"url\" property or function must be specified');\n };\n\n // Wrap an optional error callback with a fallback error event.\n var wrapError = function(model, options) {\n var error = options.error;\n options.error = function(resp) {\n if (error) error.call(options.context, model, resp, options);\n model.trigger('error', model, resp, options);\n };\n };\n\n return Backbone;\n});\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","import { keys, isUndefined, isElement, isArray } from 'underscore';\n\nconst elProt = window.Element.prototype;\nconst matches =\n elProt.matches ||\n elProt.webkitMatchesSelector ||\n elProt.mozMatchesSelector ||\n elProt.msMatchesSelector;\n\n/**\n * Import styles asynchronously\n * @param {String|Array} styles\n */\nconst appendStyles = (styles, opts = {}) => {\n const stls = isArray(styles) ? [...styles] : [styles];\n\n if (stls.length) {\n const href = stls.shift();\n\n if (\n href &&\n (!opts.unique || !document.querySelector(`link[href=\"${href}\"]`))\n ) {\n const { head } = document;\n const link = document.createElement('link');\n link.href = href;\n link.rel = 'stylesheet';\n\n if (opts.prepand) {\n head.insertBefore(link, head.firstChild);\n } else {\n head.appendChild(link);\n }\n }\n\n appendStyles(stls);\n }\n};\n\n/**\n * Returns shallow diff between 2 objects\n * @param {Object} objOrig\n * @param {Objec} objNew\n * @return {Object}\n * @example\n * var a = {foo: 'bar', baz: 1, faz: 'sop'};\n * var b = {foo: 'bar', baz: 2, bar: ''};\n * shallowDiff(a, b);\n * // -> {baz: 2, faz: null, bar: ''};\n */\nconst shallowDiff = (objOrig, objNew) => {\n const result = {};\n const keysNew = keys(objNew);\n\n for (let prop in objOrig) {\n if (objOrig.hasOwnProperty(prop)) {\n const origValue = objOrig[prop];\n const newValue = objNew[prop];\n\n if (keysNew.indexOf(prop) >= 0) {\n if (origValue !== newValue) {\n result[prop] = newValue;\n }\n } else {\n result[prop] = null;\n }\n }\n }\n\n for (let prop in objNew) {\n if (objNew.hasOwnProperty(prop)) {\n if (isUndefined(objOrig[prop])) {\n result[prop] = objNew[prop];\n }\n }\n }\n\n return result;\n};\n\nconst on = (el, ev, fn) => {\n ev = ev.split(/\\s+/);\n el = el instanceof Array ? el : [el];\n\n for (let i = 0; i < ev.length; ++i) {\n el.forEach(elem => elem.addEventListener(ev[i], fn));\n }\n};\n\nconst off = (el, ev, fn) => {\n ev = ev.split(/\\s+/);\n el = el instanceof Array ? el : [el];\n\n for (let i = 0; i < ev.length; ++i) {\n el.forEach(elem => elem.removeEventListener(ev[i], fn));\n }\n};\n\nconst getUnitFromValue = value => {\n return value.replace(parseFloat(value), '');\n};\n\nconst upFirst = value => value[0].toUpperCase() + value.toLowerCase().slice(1);\n\nconst camelCase = value => {\n const values = value.split('-').filter(String);\n return values[0].toLowerCase() + values.slice(1).map(upFirst);\n};\n\nconst normalizeFloat = (value, step = 1, valueDef = 0) => {\n let stepDecimals = 0;\n if (isNaN(value)) return valueDef;\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\nconst hasDnd = em => {\n return (\n 'draggable' in document.createElement('i') &&\n (em ? em.get('Config').nativeDnD : 1)\n );\n};\n\n/**\n * Ensure to fetch the element from the input argument\n * @param {HTMLElement|Component} el Component or HTML element\n * @return {HTMLElement}\n */\nconst getElement = el => {\n if (isElement(el) || isTextNode(el)) {\n return el;\n } else if (el && el.getEl) {\n return el.getEl();\n }\n};\n\n/**\n * Check if element is a text node\n * @param {HTMLElement} el\n * @return {Boolean}\n */\nconst isTextNode = el => el && el.nodeType === 3;\n\n/**\n * Check if element is a comment node\n * @param {HTMLElement} el\n * @return {Boolean}\n */\nexport const isCommentNode = el => el && el.nodeType === 8;\n\n/**\n * Check if element is a comment node\n * @param {HTMLElement} el\n * @return {Boolean}\n */\nexport const isTaggableNode = el => el && !isTextNode(el) && !isCommentNode(el);\n\n/**\n * Ensure to fetch the model from the input argument\n * @param {HTMLElement|Component} el Component or HTML element\n * @return {Component}\n */\nconst getModel = (el, $) => {\n let model = el;\n isElement(el) && (model = $(el).data('model'));\n return model;\n};\n\nconst getElRect = el => {\n const def = {\n top: 0,\n left: 0,\n width: 0,\n height: 0\n };\n if (!el) return def;\n let rectText;\n\n if (isTextNode(el)) {\n const range = document.createRange();\n range.selectNode(el);\n rectText = range.getBoundingClientRect();\n range.detach();\n }\n\n return (\n rectText || (el.getBoundingClientRect ? el.getBoundingClientRect() : def)\n );\n};\n\n/**\n * Get cross-device pointer event\n * @param {Event} ev\n * @return {Event}\n */\nconst getPointerEvent = ev =>\n ev.touches && ev.touches[0] ? ev.touches[0] : ev;\n\n/**\n * Get cross-browser keycode\n * @param {Event} ev\n * @return {Number}\n */\nconst getKeyCode = ev => ev.which || ev.keyCode;\nconst getKeyChar = ev => String.fromCharCode(getKeyCode(ev));\nconst isEscKey = ev => getKeyCode(ev) === 27;\nconst isObject = val =>\n val !== null && !Array.isArray(val) && typeof val === 'object';\nconst isEmptyObj = val => Object.keys(val).length <= 0;\n\nconst capitalize = str => str && str.charAt(0).toUpperCase() + str.substring(1);\nconst isComponent = obj => obj && obj.toHTML;\nconst isRule = obj => obj && obj.toCSS;\n\nconst getViewEl = el => el.__gjsv;\nconst setViewEl = (el, view) => {\n el.__gjsv = view;\n};\n\nexport {\n on,\n off,\n hasDnd,\n upFirst,\n matches,\n getModel,\n getElRect,\n camelCase,\n isTextNode,\n getKeyCode,\n getKeyChar,\n isEscKey,\n getElement,\n shallowDiff,\n normalizeFloat,\n getPointerEvent,\n getUnitFromValue,\n capitalize,\n getViewEl,\n setViewEl,\n appendStyles,\n isObject,\n isEmptyObj,\n isComponent,\n isRule\n};\n","// Current version.\nexport var VERSION = '1.12.0';\n\n// Establish the root object, `window` (`self`) in the browser, `global`\n// on the server, or `this` in some virtual machines. We use `self`\n// instead of `window` for `WebWorker` support.\nexport var root = typeof self == 'object' && self.self === self && self ||\n typeof global == 'object' && global.global === global && global ||\n Function('return this')() ||\n {};\n\n// Save bytes in the minified (but not gzipped) version:\nexport var ArrayProto = Array.prototype, ObjProto = Object.prototype;\nexport var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;\n\n// Create quick reference variables for speed access to core prototypes.\nexport var push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n// Modern feature detection.\nexport var supportsArrayBuffer = typeof ArrayBuffer !== 'undefined',\n supportsDataView = typeof DataView !== 'undefined';\n\n// All **ECMAScript 5+** native function implementations that we hope to use\n// are declared here.\nexport var nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeCreate = Object.create,\n nativeIsView = supportsArrayBuffer && ArrayBuffer.isView;\n\n// Create references to these builtin functions because we override them.\nexport var _isNaN = isNaN,\n _isFinite = isFinite;\n\n// Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\nexport var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\nexport var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n// The largest integer that can be represented exactly.\nexport var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n","import Backbone from 'backbone';\nimport { isUndefined } from 'underscore';\n\nexport default Backbone.Model.extend({\n defaults: {\n type: 'text', // text, number, range, select\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\n initialize() {\n const target = this.get('target');\n const name = this.get('name');\n const changeProp = this.get('changeProp');\n !this.get('id') && this.set('id', name);\n\n if (target) {\n this.target = target;\n this.unset('target');\n const targetEvent = changeProp\n ? `change:${name}`\n : `change:attributes:${name}`;\n this.listenTo(target, targetEvent, this.targetUpdated);\n }\n },\n\n /**\n * Return all the propeties\n * @returns {Object}\n */\n props() {\n return this.attributes;\n },\n\n targetUpdated() {\n const value = this.getTargetValue();\n this.set({ value }, { fromTarget: 1 });\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 /**\n * Get the initial value of the trait\n * @return {string}\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","import Backbone from 'backbone';\nimport { isString, isArray } from 'underscore';\nimport Trait from './Trait';\nimport TraitFactory from './TraitFactory';\n\nexport default Backbone.Collection.extend({\n model: Trait,\n\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 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 Backbone.Collection.prototype.add.apply(this, [models, opt]);\n }\n});\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 isObject,\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 } from 'utils/mixins';\nimport Styleable from 'domain_abstract/model/Styleable';\nimport Backbone 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 keySymbol2w = '__symbol2w';\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 * @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} [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. Default: `true`\n * @property {Boolean|String} [droppable=true] Indicates if it's possible to drop other components inside. You can use\n * a query string as with `draggable`. 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 {Array} [style-signature=''] This option comes handy when you need to remove or export strictly component-specific rules. Be default, if this option is not empty, the editor will remove rules when there are no components, of that type, in the canvas. Eg. '['.navbar', '[navbar-']'. 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 {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