').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["s"])(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["w"],off:tt["v"]},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["w"],off:s["v"]},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["w"])(u,'click',(function(t){return t&&'A'==t.target.tagName&&t.preventDefault()})),Object(s["w"])(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["w"]:s["v"])(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["w"])(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["w"]:s["v"])(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["s"])(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 attributes() {\n return this.model.get('attributes');\n },\n\n initialize(o = {}, config = {}) {\n this.config = config;\n const pfx = config.pStylePrefix || '';\n this.em = config.em;\n this.pfx = pfx;\n this.caretR = 'fa fa-caret-right';\n this.caretD = 'fa fa-caret-down';\n this.iconClass = `${pfx}caret-icon`;\n this.activeClass = `${pfx}open`;\n this.className = `${pfx}block-category`;\n this.events[`click .${pfx}title`] = 'toggle';\n this.listenTo(this.model, 'change:open', this.updateVisibility);\n this.delegateEvents();\n this.model.view = this;\n },\n\n updateVisibility() {\n if (this.model.get('open')) this.open();\n else this.close();\n },\n\n open() {\n this.$el.addClass(this.activeClass);\n this.getIconEl().className = `${this.iconClass} ${this.caretD}`;\n this.getBlocksEl().style.display = '';\n },\n\n close() {\n this.$el.removeClass(this.activeClass);\n this.getIconEl().className = `${this.iconClass} ${this.caretR}`;\n this.getBlocksEl().style.display = 'none';\n },\n\n toggle() {\n var model = this.model;\n model.set('open', !model.get('open'));\n },\n\n getIconEl() {\n if (!this.iconEl) {\n this.iconEl = this.el.querySelector('.' + this.iconClass);\n }\n\n return this.iconEl;\n },\n\n getBlocksEl() {\n if (!this.blocksEl) {\n this.blocksEl = this.el.querySelector('.' + this.pfx + 'blocks-c');\n }\n\n return this.blocksEl;\n },\n\n append(el) {\n this.getBlocksEl().appendChild(el);\n },\n\n render() {\n const { em, el, $el, model } = 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.addClass(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/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/canvas/model/Frame.js","webpack://grapesjs/./src/canvas/model/Frames.js","webpack://grapesjs/./src/pages/model/Page.js","webpack://grapesjs/./src/pages/model/Pages.js","webpack://grapesjs/./src/pages/index.js","webpack://grapesjs/./src/panels/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/.-cli/node_modules/timers-browserify/main.js","webpack://grapesjs/.-cli/node_modules/setimmediate/setImmediate.js","webpack://grapesjs/.-cli/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/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/canvas/config/config.js","webpack://grapesjs/./src/canvas/model/Canvas.js","webpack://grapesjs/./src/utils/Droppable.js","webpack://grapesjs/./src/canvas/view/FrameView.js","webpack://grapesjs/./src/canvas/view/FrameWrapView.js","webpack://grapesjs/./src/canvas/view/FramesView.js","webpack://grapesjs/./src/canvas/view/CanvasView.js","webpack://grapesjs/./src/canvas/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/css_composer/config/config.js","webpack://grapesjs/./src/css_composer/model/CssRule.js","webpack://grapesjs/./src/css_composer/model/CssRules.js","webpack://grapesjs/./src/css_composer/index.js","webpack://grapesjs/./src/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/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","createId","chars","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","keyUpdate","keyUpdateInside","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","initClasses","initTraits","initComponents","initToolbar","initScriptProps","scriptUpdated","tagUpdated","attrUpdated","_idUpdated","__emitUpdateTlb","__onChange","__propToParent","views","trim","emitUpdate","temporary","__postAdd","__isSymbolOrInst","__initSymb","um","comps","components","__hasUm","recursive","__postRemove","__changesUp","__propSelfToParent","component","md","changesUp","is","setDragMode","query","$els","findType","closest","closestType","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","prevColl","__getSymbTop","__upSymbCls","__upSymbComps","optUp","toUpOpts","isTemp","addedInstances","isMainSymb","addSymb","symbTop","toAppend","addedInst","addedTop","symbolInv","append","toUpInst","inst","newMods","mod","attrCls","toListen","clsArr","normalizeClasses","Selectors","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","fromUndo","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","dm","componentsById","checkId","sel","modelOpt","draggableComponents","pfx","stylePrefix","pStylePrefix","updateStyle","renderAttributes","updateHighlight","updateStatus","updateContent","handleChange","onActive","onDisable","avoidRender","__isDraggable","dragstart","_clbObj","_innertext","editor","getEditor","frameM","cv","childrenView","scriptContainer","handleDragStart","preventDefault","stopPropagation","run","updateClasses","importClasses","renderChildren","chgArr","extHl","selectedCls","selectedParentCls","freezedCls","hoveredCls","selCls","noExtHl","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","toolsEl","canvasRectOffset","_trgToolUp","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","onRemoveBefore","onRemove","getIdsToKeep","getNewIds","onAdd","resetChildren","newIds","allByID","rules","canRemoveStyle","rulesRemoved","getSelectors","hasSign","optStyle","it","df","parseString","parsed","parseHtml","addCollection","nodes","isMult","processDef","__firstAdd","mdl","processor","modelPr","$$typeof","parserHtml","splitPropsFromAttr","getType","setClassRule","__onAddEnd","editorModel","hoverClass","badgeClass","plhClass","freezClass","getCanvas","getCanvasBody","getCanvasTools","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","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","CssRuleView","getBlockId","renderStarted","atRuleEl","styleEl","CssGroupRuleView","appendData","clsName","mediaText","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","keyAutoW","keyAutoH","changesCount","_undo","_undoexc","conf","allRules","modOpts","wrp","Wrapper","getComponent","noCount","getStyles","getHead","setHead","addHeadItem","getHeadByAttr","removeHeadByAttr","addLink","removeLink","addScript","removeScript","getPage","page","_emitUpdated","smc","storeHtml","getHtml","storeCss","getCss","itemLoaded","loadedItems","itemsToLoad","listenToLoadItems","listenToLoad","frames","defFrame","frms","Frames","getMainFrame","getMainComponent","Page","evAll","evPfx","evPageSelect","evPageSelectBefore","evPageUpdate","evPageAdd","evPageAddBefore","evPageRemove","evPageRemoveBefore","chnSel","typeMain","storageKey","Pages","selectBefore","addBefore","removeBefore","cnf","pages","_onPageChange","onLoad","mainPage","getMain","lm","mainComp","postLoad","_createId","pg","getAllMap","noStore","stm","pagesMap","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","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","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","mth","_upFrame","_onFramesChange","scrollLayers","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","condition","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","trackSelection","hasSkip","noUndo","getChanged","hasUndo","undoExc","chn","entity","hasRedo","getInstance","getStack","getStackGroup","__getStackRead","createItem","getPointer","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","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","__wrapper","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","storeComponents","componentHovered","selectAdd","selectRemove","setComponents","getCacheLoad","isObj","getComponents","toStore","addComponent","extendView","extendFn","extendFnView","extendType","extendViewType","typeToExtend","modelToExt","viewToExt","getExtendedObj","srcToExt","parentFn","removeType","fromElement","noticeOnUnload","forceClass","baseCss","protectedCss","canvasCss","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","storables","toLoad","device","pageManager","toLog","attrsOrig","loadModule","updateChanges","_checkReady","listenLog","eventFrom","eventTo","loadOnStart","canAutoload","onbeforeunload","isAutosave","getStepsBeforeSave","moduleName","Mod","cfgParent","cfg","_disable","destroyed","handleUpdates","multiple","els","mltSel","removeSelected","toggleSelected","clearSelection","selColl","selIndex","addSelected","getHovered","getCode","setState","getState","js","getJs","avoidProt","avoidProtected","protCss","cacheLoad","getDeviceModel","defaultRunning","tools","getCurrentMedia","setCurrentFrame","getCurrentFrame","getCurrentFrameModel","getDirtyCount","getZoomMultiplier","inAbsoluteMode","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","setDropContent","validTarget","startDrag","setDragHelper","handleDrag","handleDragEnd","oldKey","oldActive","dragResult","dragContent","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","listen","activeCls","disableCls","btnsVisCls","updateActive","checkActive","updateBtnsVis","updateClassName","updateDisable","chnOpt","fromListen","$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","autoscrollLimit","notTextable","rulers","onZoomChange","updateDevice","_pageUpdated","Droppable","rootEl","toggleEffects","handleDragEnter","handleDragOver","handleDrop","handleDragLeave","updateCounter","endDrop","getContentByData","updateHead","headEl","getJsContainer","jsContainer","frameWrapView","elTools","_getTool","getOffsetViewerEl","getRect","scrollRight","_toggleEffects","startAutoscroll","lastMaxHeight","_toggleAutoscrollFx","requestAnimationFrame","autoscroll","lastClientY","actualTop","limitTop","limitBottom","nextTop","showGlobalTools","updateClientY","stopAutoscroll","mt","renderScripts","renderContent","renderBody","appendScript","scriptEl","extStyles","_isEditor","CssRulesView","FrameView","classAnim","frameLoaded","updatePos","updateSize","setupDragger","posOpts","updateOffset","updateDim","__handleSize","noChanges","onScroll","onscroll","currW","currH","newW","newH","twrp","toolsWrapper","elTop","elRight","elBottom","elLeft","frameWrapperView","FrameWrapView","timerZoom","wheel","_initFrames","clearOff","checkSelected","updateFrames","_onFramesUpdate","toggleListeners","_renderFrames","FramesView","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","mainFrame","$frames","toolsWrp","hlEl","badgeEl","placerEl","ghostEl","resizerEl","offsetEl","fixedOffsetEl","toolsGlobEl","CanvasView","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","setZoom","addFrame","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","stateStr","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","checkLocal","urlStore","urlLoad","jqXHR","onComplete","contentTypeJson","fetchOptions","checkStorageEnvironment","setItem","getItem","clbErr","onResponse","request","typeJson","typeHead","bodyObj","bodyKey","eventStart","eventAfter","eventEnd","eventError","storages","defaultStorages","remote","RemoteStorage","LocalStorage","currentStorage","loadDefaultProviders","setCurrent","setAutosave","setStepsBeforeSave","storage","getStorages","getCurrent","onAfter","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","atRuleType","sheet","cssRules","keyText","isSingleAtRule","subRules","lens","subRule","selsParsed","selsAdd","lastRule","len3","selsAddStr","BrowserCssParser","checkNode","classSets","classSet","pHtml","pCss","parseCss","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","addSelector","cname","getSelector","backdrop","updateTitle","getCollector","$collector","$content","getTitle","$title","updateAttr","currAttr","triggerEvent","ModalM","enb","ModalView","setTitle","onceClose","onceOpen","isOpen","getContentEl","staticRules","CSS","ensureSelectors","typeStr","isBody","selOpts","skipState","ruleProps","wd","re","CssRule","rulesView","elStyle","CssRules","hasPages","sl","newSels","le","selec","modelExists","avoidUpdateStyle","styleUpdate","setRule","atRuleParams","getRule","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","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","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","eventsUp","hideToolbar","initRte","updatePosition","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 = 92);\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\nconst createId = (length = 16) => {\n let result = '';\n const chars =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n const len = chars.length;\n for (let i = 0; i < length; i++) {\n result += chars.charAt(Math.floor(Math.random() * len));\n }\n return result;\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 createId,\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';\nexport const keyUpdate = 'component:update';\nexport const keyUpdateInside = `${keyUpdate}-inside`;\n\n/**\n * The Component object represents a single node of our template structure, so when you update its properties the changes are\n * immediately reflected on the canvas and in the code to export (indeed, when you ask to export the code we just go through all\n * the tree of nodes).\n * An example on how to update properties:\n * ```js\n * component.set({\n * tagName: 'span',\n * attributes: { ... },\n * removable: false,\n * });\n * component.get('tagName');\n * // -> 'span'\n * ```\n *\n * @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