').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(){\n".concat(i,"\n;}"),a=JSON.stringify(e.__getScriptProps());r.innerHTML="\n setTimeout(function() {\n var item = document.getElementById('".concat(n,"');\n if (!item) return;\n (").concat(o,".bind(item))(").concat(a,")\n }, 1);"),setTimeout((function(){var e=t.scriptContainer;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(){\\n${mapType.code}\\n}.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","isEnterKey","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","handleEditKey","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 isEnterKey = ev => getKeyCode(ev) === 13;\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 isEnterKey,\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